1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
Commit graph

20185 commits

Author SHA1 Message Date
Daniel Llorens
4636eb2263 Reuse SCM_ASSERT_RANGE in scm_c_vector_ref, scm_c_vector_set_x 2020-04-09 16:59:39 +02:00
Daniel Llorens
82d8f025b1 Simplify vector constructor
* libguile/vectors.c: Remove redundant list check.
2020-04-09 16:59:39 +02:00
Daniel Llorens
5a2f73faf5 Remove superfluous type check in bitvector->list 2020-04-09 16:59:39 +02:00
Daniel Llorens
3b6a2f281a Move uniform-array->bytevector from (rnrs bytevectors) to core
This is to have arrays use bytevectors and not the other way
around. Besides, it's not an RnRS function.
2020-04-09 16:59:39 +02:00
Daniel Llorens
edf9abb4a0 Remove 'contiguous' flag in arrays
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.
2020-04-09 16:59:39 +02:00
Daniel Llorens
d88d4d5558 Remove scm_from_contiguous_typed_array
This function was undocumented and not used anywhere.

libguile/arrays.h:
libguile/arrays.c: As stated.
2020-04-09 16:59:39 +02:00
Daniel Llorens
f43cf201d7 Merge generalized-arrays.[ch] in arrays.[ch]
The split was just confusing.
2020-04-09 16:59:39 +02:00
Daniel Llorens
54e676c1d2 Update branch news file 2020-04-09 16:59:39 +02:00
Daniel Llorens
68ae22eb5e Remove generalized-vectors.[hc]
* 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.
2020-04-09 16:59:39 +02:00
Daniel Llorens
26510db52c Pull generalized-vectors from under bytevectors 2020-04-09 16:59:39 +02:00
Daniel Llorens
0910fcde46 Pull generalized-vectors from under typed vectors 2020-04-09 16:59:39 +02:00
Daniel Llorens
f188424557 Pull generalized-vectors from under bitvector/string/vector
* libguile/generalized-vectors.c: Collect the register array type functions here.
* libguile/strings.c: Remove array registry code. Fix includes.
* libguile/vectors.c: Remove array registry code. Fix includes.
* libguile/bitvectors.c: Remove array registry code. Fix includes.
2020-04-09 16:59:39 +02:00
Daniel Llorens
9e785509e4 Rewrite vector-copy! using memmove
* libguile/vectors.c (vector-copy!): As stated. Provide C binding
  scm_vector_copy_x.
* module/srfi/srfi-43.scm: Re-export vector-copy! from core.
  (vector-reverse-copy!): Remove definer macro, simplify.
* doc/ref/api-data.texi: Document vector-copy!.
2020-04-09 16:59:39 +02:00
Daniel Llorens
53b9d678a6 Golf in srfi-4.h
Will make it easier to move the array_handle functions somewhere else.
2020-04-09 16:59:39 +02:00
Daniel Llorens
efe2317aff Move bitvector functions using array_handle to libguile/array-handle.[ch] 2020-04-09 16:59:39 +02:00
Daniel Llorens
88d690e15e Remove generalized vector support for vector-move-right!, vector-move-left!
This support was buggy and not advertised, so it has been removed.
2020-04-09 16:59:39 +02:00
Daniel Llorens
dbf08c3a96 Add lenp parameter back to scm_bitvector_(writable_)elements 2020-04-09 16:59:39 +02:00
Daniel Llorens
bf5b9a86bc Add lenp parameter back to scm_vector_(writable_)elements
Also fix uses.
2020-04-09 16:59:39 +02:00
Daniel Llorens
04c80519bf Simplify interfaces to scm_TYPEvector_(writable_)elements
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.
2020-04-09 16:59:39 +02:00
Daniel Llorens
e3795a39fa Fix doc for last bitvector patch 2020-04-09 16:59:39 +02:00
Daniel Llorens
ef0579492a Simplify interfaces to scm_bitvector_elements and scm_bitvector_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.
2020-04-09 16:59:39 +02:00
Daniel Llorens
eb2d2c1a41 Simplify interfaces to scm_vector_elements and scm_vector_writable_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.
2020-04-09 16:59:39 +02:00
Daniel Llorens
40dbe69be5 Simple vectors are just vectors
* doc/ref/api-data.texi: Remove references to 'simple vectors'.
* libguile/vectors.h (SCM_VECTOR_REF,SCM_VECTOR_SET, SCM_VECTOR_LENGHT):
  Renamed from SCM_SIMPLE_VECTOR_REF, SCM_SIMPLE_VECTOR_SET,
  SCM_SIMPLE_VECTOR_LENGTH.
  (scm_is_simple_vector): Remove.

Elsewhere fix uses of SCM_SIMPLE_VECTOR_xxx or scm_is_simple_vector.
2020-04-09 16:59:39 +02:00
Daniel Llorens
6c97c8108e Remove the unused argument from scm_array_p
* libguile/generalized-arrays.h:
* libguile/generalized-arrays.c: As stated.
* doc/ref/api-data.texi: Fix documentation.
* NEWS-array-fixes.txt: Document branch changes.
2020-04-09 16:59:39 +02:00
Daniel Llorens
996bbb47f2 Require vector argument to scm_vector_elements, scm_vector_writable_elements
* libguile/vectors.c (scm_vector_elements, scm_vector_writable_elements): As
  stated.
* libguile/sort.c: Fix usage of scm_vector_elements on possibly non-vector
  array.
* doc/ref/api-data.texi (scm_vector_elements): Remove mention of non-vector
  arrays.
2020-04-09 16:59:39 +02:00
Daniel Llorens
fa19f702f6 Require vector as argument to vector->list
* libguile/vectors.c (vector->list): As stated. Simplify.
* test-suite/tests/vectors.test: Remove shared array test.
2020-04-09 16:59:39 +02:00
Daniel Llorens
21ede682af Require vector as argument to vector-copy
* libguile/vectors.c: Require vector and simplify.
2020-04-09 16:59:39 +02:00
Daniel Llorens
2b4e45ca1b Add #:declarative? #f to (srfi srfi-64)
This is needed for test-log-to-file to work.
2020-04-09 16:58:17 +02:00
Matt Wette
e37b1fb34c doc: Improve tree-il 'lambda-case' description.
* 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>
2020-03-28 12:42:09 +01:00
Ludovic Courtès
84a61d87ea GNU Guile 3.0.2.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
(LIBGUILE_INTERFACE_REVISION): Increment.
2020-03-27 15:05:38 +01:00
Ludovic Courtès
815dab400b Update NEWS.
* NEWS: Update.
2020-03-27 14:54:40 +01:00
Mike Gran
187bfdc3e1 Update SRFI-14 tables to Unicode 13.0.0
* libguile/srfi-14.i.c (cs_lower_case_ranges, cs_upper_case_ranges)
  (cs_letter_ranges, cs_digit_ranges, cs_letter_plus_digit_ranges)
  (cs_graphic_ranges, cs_printing_ranges, cs_punctuation_ranges)
  (cs_symbol_ranges, cs_designated_ranges): updated to Unicode 13
2020-03-26 07:14:14 -07:00
Arun Isaac
b9a09f1ec3 doc: Replace square brackets with round brackets.
* 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>
2020-03-25 22:50:26 +01:00
Linus Björnstam
5f60eb6bb5 Add SRFI-171 to guile
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>
2020-03-25 22:44:27 +01:00
Ludovic Courtès
f8f8986e4a 'sort-labels-locally' uses a transient intset.
* module/language/cps/renumber.scm (sort-labels-locally): Use a
transient intset.
2020-03-23 22:49:47 +01:00
Ludovic Courtès
6111b86bdc 'resize_set' no longer allocates in a loop.
* libguile/weak-set.c (resize_set): Call 'scm_gc_malloc_pointerless'
outside the loop.
2020-03-23 22:49:47 +01:00
Ludovic Courtès
02e3dc6ab9 Ensure weak sets are occasionally vacuumed.
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'.
2020-03-23 22:49:47 +01:00
Ludovic Courtès
168ad279e6 Avoid double initialization in 'vector-copy'.
* 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'.
2020-03-23 22:49:47 +01:00
Andy Wingo
ef6f7ce70b Fix fixpoint computation in compute-significant-bits
* 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.
2020-03-23 14:49:03 +01:00
Matt Wette
b62d849d36 Deprecate 'tmpnam' and add '--disable-tmpnam' configure option.
* configure.ac: Add '--disable-tmpnam'.
* libguile/posix.c (tmpnam): Conditionalize on 'SCM_ENABLE_DEPRECATED'
and 'ENABLE_TMPNAM'.  Call 'scm_c_issue_deprecation_warning'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-22 18:00:06 +01:00
Isaac Jurado
bef5e0b393 Interpret dynamic library name as literal file name first.
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>
2020-03-22 00:27:12 +01:00
Ludovic Courtès
87bf38c93a tests: Skip web server test when thread support is missing.
* test-suite/tests/web-server.test ("GET with keep-alive"): Throw
'unresolved when not (provided? 'threads).
2020-03-21 18:26:31 +01:00
Matt Wette
865d48058e Fix compilation --without-threads.
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>
2020-03-21 18:25:52 +01:00
Ludovic Courtès
89edd1bc2d Fix race condition between 'abort-to-prompt' and stack marking.
Fixes <https://bugs.gnu.org/28211>.

* libguile/vm.c (scm_i_vm_emergency_abort, abort_to_prompt): Move
'vp->fp' assignment above 'sp[nargs]' assignments.
2020-03-17 22:57:41 +01:00
Ludovic Courtès
5d715dd467 gdb: Avoid accessing values that are optimized out.
* libguile/libguile-3.0-gdb.scm (vm-frame-function-name)[ip-in-symbol?]:
Do not access SYM's value when it's optimized out.
2020-03-17 22:57:41 +01:00
Ludovic Courtès
a0aa8f01cc gdb: Adjust 'find-vp' for Guile 3.0.
* libguile/libguile-3.0-gdb.scm (find-vp): Adjust for Guile 3.0.
2020-03-17 22:57:41 +01:00
Ludovic Courtès
62d1335a61 gdb: Use <stdint.h> types.
* libguile/libguile-3.0-gdb.scm (vm-frame): Look up stdint.h types
instead of now-deprecated "scm_t_" types.
2020-03-17 22:57:41 +01:00
Ludovic Courtès
40f9a44c1b gdb: Delay type lookups.
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.
2020-03-17 22:57:41 +01:00
Mike Gran
77f9c49eaf Add C API for hook procedures to libguile.h
* libguile.h: add hooks.h
2020-03-13 06:34:50 -07:00
Jan Synacek
18c7637640 doc: Fix typo in api-debug.texi.
* doc/ref/api-debug.texi (Debugging): Fix typo.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-11 12:14:24 +01:00