Was never used, so we save having to set it on various ops.
* libguile/arrays.h (SCM_I_ARRAY_FLAG_CONTIGUOUS,
SCM_SET_ARRAY_CONTIGUOUS_FLAG, SCM_CLR_ARRAY_CONTIGUOUS_FLAG,
SCM_I_ARRAY_CONTP): Remove.
* libguile/arrays.c (scm_i_ra_set_contp): Remove. Elsewhere remove all
uses of this and the other macros.
* libguile/arrays.c: Assume the registry of array element types.
* libguile/arrays.h (scm_make_generalized_vector): Last decl from
generalized-vectors.h.
* libguile/generalized-vectors.h:
* libguile/generalized-vectors.c: Remove.
Elsewhere remove references to generalized-vectors.
Nothing is lost in these since the functions already required true typed
vectors, the extra arguments didn't serve any purpose.
Changing my mind from (vec) to (vec, lenp), though. Will fix
vector/bitvector next.
* libguile/srfi-4.h: scm_TYPEvector_(writable_)elements take (vec, lenp).
* libguile/srfi-4.c: Fix implementation.
* libguile/bitvectors.c: Fix use.
* test-suite/standalone/test-srfi-4.c: Fix old test and write variant
with full array handle interface.
* doc/ref/srfi-modules.texi: Fix doc for srfi-4
scm_TYPEvector_(writable_)elements.
Doc fixes & tests TBD.
* libguile/bitvector.h: As stated.
* libguile/bitvector.c: Fix uses of scm_bitvector_elements,
scm_bitvector_writable_elements.
* libguile/array-handle.c: scm_array1_bit_elements,
scm_array1_bit_writable_elements: New functions.
* libguile/array-handle.h: Publish the new functions.
* libguile/posix.c: Fix use of scm_bitvector_elements.
* vectors.h: As stated. Don't include array-handle.h.
* vectors.c (scm_vector_elements, scm_vector_writable_elements):
Reimplement.
(vector-move-right!, vector-move-left!): Replace uses of
scm_vector_elements and scm_vector_writable_elements on array types.
* doc/ref/api-data.texi: Fix doc for scm_vector_elements and
scm_vector_writable_elements.
* libguile/sort.c (stable-sort!): Fix use of
scm_vector_writable_elements.
* doc/ref/compiler.texi (Tree-IL): for description of lambda-case
argument 'kw' added "or @code{#f} if there are no keyword arguments".
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* doc/ref/sxml-match.texi: Replace all square brackets with round
brackets in order to be consistent with the rest of the documentation.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This adds SRFI-171 (transducers) to guile.
The two guile-specific additions are powerful transducers which can be
used to generalize transducers like tsegment. They are hard to get
right, but powerful and useful enough to warrant inclusion.
* doc/ref/srfi-modules.texi: added srfi-171 section
* module/Makefile.am (SOURCES):
* module/srfi/srfi-171.scm:
* module/srfi/srfi-171/meta.scm: Add SRFI-171
* module/srfi/srfi-171/gnu.scm: Add 2 guile-specific extensions.
* test-suite/Makefile.am (SCM_TESTS):
* test-suite/tests/srfi-171.test: Add tests.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Just like in dc8dda77e0, this ensures weak
sets are vacuumed in a timely fashion. It also works around the fact
that 'vacuum_all_weak_tables' isn't getting called more than a couple of
times, for some reason.
Partly fixes <https://bugs.gnu.org/40194>.
* libguile/weak-set.c (weak_set_add_x): When 'set->items > set->upper',
call 'vacuum_weak_set'.
* libguile/vectors.c (make_vector): New function.
(scm_c_make_vector): Use it instead of 'scm_words'.
(scm_vector_copy): Use it instead of 'scm_c_make_vector'.
* module/language/cps/specialize-numbers.scm (preserve-eq?): New
helper.
(sigbits-union): Use the new helper. Fixes bugs.gnu.org/38486.
Thanks to Zack Marvel for the bug report and Matt Wette for tracking
it down.
Fixes <https://bugs.gnu.org/21076>.
* libguile/dynl.c (sysdep_dyn_link): Try plain lt_dlopen first, to
interpret fname as a literal path.
* doc/ref/api-foreign.texi: Update explanation to describe the new
behavior.
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Fixes <https://bugs.gnu.org/40075>.
Reported by Thomas Klausner <tk@giga.or.at>.
* libguile/null-threads.h: Include "libguile/scm.h".
* libguile/null-threads.c: Include "libguile/scmconfig.h".
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This avoids errors while loading the file when types are not in scope.
* libguile/libguile-3.0-gdb.scm (%gdb-memory-backend)[void*]: Turn into
a promise and adjust user accordingly.
(ip-type, fp-type, sp-type, uint-type): Remove.
(vm-frame)[ip-type, uint-type]: New variables.