* libguile/load.c (scm_primitive_load_path): Don't canonicalize the
filename unless we need to look in the fallback path. Fixes a stat
explosion; see http://savannah.gnu.org/bugs/?33815.
* libguile/scmsigs.c (GC_get_suspend_signal): Fix the back-compatibility
shim for this function to work on some other cases; I hadn't realized
that gcconfig.h could set SIG_SUSPEND. Thanks to Aleix Conchillo
Flaqué for the report.
* meta/guild.in (display-version): Display the version, not the
effective version.
* module/scripts/help.scm (list-commands)[help]: Add proper footer, as
per the GCS.
* doc/ref/scheme-using.texi (Using Guile Tools): Remove redundant
footnote introduced in e108c961fe.
Mention the version where the new name was introduced.
* meta/guild.in (display-version): Use (ice-9 command-line)'s
version-etc.
(main): Dispatch --help to guild help.
* module/scripts/help.scm: New file, a copy of list.scm, but with a
better name.
* module/Makefile.am: Add help.scm to the list.
* module/scripts/list.scm: Change to be an alias to "help".
(list-scripts): Restore this API.
* module/scripts/: Add %summary entries, and in many cases,
%include-in-guild-list entries to inhibit a script from appearing in
"guild list". Update list.scm to respect this new variable.
* module/scripts/PROGRAM.scm: Remove this useless template, which was
cluttering `guild list'. We'll perhaps cull the list a bit more in
2.2.
* module/Makefile.am: Adapt.
* module/scripts/list.scm (strip-extensions): Don't list programs
without extensions.
(main): Be prettier. Parse out a %summary from modules, for a brief
synopsis.
* libguile/Makefile.am (libpath.h): Define SCM_SITE_CCACHE_DIR. Defined
as site-ccache/ instead of site/ccache/ to indicate that we don't expect
further subdirectories, and also to avoid confusion about whether
extensions/ is a site-specific or not.
* libguile/load.c (scm_init_load_path): Add SCM_SITE_CCACHE_DIR to the
default load-compiled path.
* module/web/request.scm (build-request): Make sure that HTTP/1.1
requests have the Host header set, per RFC 2616 section 9.
* test-suite/tests/web-request.test ("example-1"): Add test.
* libguile/goops.c (fix_cpl): Fix bug in placement of debug assertion.
(create_standard_classes): Put <extended-generic> before
<generic-with-setter> in <extended-generic-with-setter>'s direct
supers, so that the slot allocation is a superset of
<generic-with-setter>, which results in the `setter' being allocated
in the same place.
Likewise fix <extended-accessor> to place <extended-generic> before
<generic-with-setter>, not just <generic>.
* libguile/modules.c (resolve_duplicate_binding): Fix unbound -> #f
conversion for the imported bindings. Pass the existing entry in the
import obarray as the resolved var (7th arg), and properly pass #f as
the value (8th arg) if there is no such binding. Fixes
merge-generics; before, the <boolean> type test (indicating no
previous value) was not being triggered. This bug has been present
since 2007 at least, though it was not in 1.8.
* test-suite/tests/modules.test ("duplicate bindings"): Add a test that
the var and val are both #f. These types are used by GOOPS.
* module/system/repl/command.scm (time): Use the high-precision timers
instead of stime(2). Changes the output format of `,time' too;
perhaps there is a better way.
* doc/ref/goops.texi (Merging Generics): Change (my-module) example to
use (oop goops) and use the right syntax for #:duplicates. Reported
by David Pirotte <david@altosw.be>.
* libguile/vm-engine.c (VM_NAME)[HAVE_LABELS_AS_VALUES]: Rename
`jump_table' to `jump_table_pointer'. Add `jump_table' as a local
variable, initialize it.
* libguile/vm-engine.h (JT_REG): New macro.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
(LIBGUILE_INTERFACE_CURRENT): Increment to account for new C function
`scm_peek_byte_or_eof'.
(LIBGUILE_INTERFACE_AGE): Increment.
This reverts commit ccb80964cd, which
introduced a race condition, with a small window during which a mutex
could be held by a thread without being part of its `mutexes' list,
thereby violating the invariant tested at line 667.
* libguile/bytevectors.c (COMPLEX_ACCESSOR_PROLOGUE, COMPLEX_NATIVE_REF,
COMPLEX_NATIVE_SET): New macros.
(bytevector_ref_c32, bytevector_ref_c64): Defined in terms of
`COMPLEX_NATIVE_REF'.
(bytevector_set_c32, bytevector_set_c64): Defined in terms of
`COMPLEX_NATIVE_SET'.
(bytevector_ref_fns): Make `static'.
* test-suite/tests/srfi-4.test ("c32 vectors")["generalized-vector-ref",
"generalized-vector-set!", "generalized-vector-ref, out-of-range",
"generalized-vector-set!, out-of-range"]: New tests.
("c64 vectors")["generalized-vector-ref", "generalized-vector-set!",
"generalized-vector-ref, out-of-range",
"generalized-vector-set!, out-of-range"]: New tests.
* libguile/bytevectors.c (bytevector_ref_c32, bytevector_ref_c64,
bytevector_set_c32, bytevector_set_c64): Use `memcpy' to avoid
unaligned accesses. This fixes SIGBUS on SPARC and possibly other
alignment-sensitive platforms.
* libguile/read.c (scm_read_sexp): Don't confuse `#{.}#' with `.' for
the purpose of reading dotted pairs. Thanks to CRLF0710 for the
report.
* test-suite/tests/reader.test ("#{}#"): Add test.