1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 13:30:26 +02:00
Commit graph

20171 commits

Author SHA1 Message Date
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
Ludovic Courtès
7c17655cd3 Fix incorrect allocation size in 'make-vtable-vtable'.
Fixes <https://bugs.gnu.org/39266>.
Thanks to <https://rr-project.org/> for its help!

* libguile/struct.c (set_vtable_access_fields): Fix first argument to
'scm_gc_malloc_pointerless'.
2020-03-09 15:22:53 +01:00
Ludovic Courtès
c01a81e8a2 GNU Guile 3.0.1.
* GUILE-VERSION (GUILE_MICRO_VERSION): Increment.
(LIBGUILE_INTERFACE_CURRENT): Increment.
(LIBGUILE_INTERFACE_REVISION): Reset.
(LIBGUILE_INTERFACE_AGE): Increment.  This accounts for commit
228ae549ca, which adds new symbols to the ABI.
2020-03-08 15:57:36 +01:00
Ludovic Courtès
d18bcf4ea8 Update NEWS.
* NEWS: Update.
2020-03-08 15:57:14 +01:00
Ludovic Courtès
fb052c4bda Update NEWS.
* NEWS: Update.
2020-03-07 16:56:34 +01:00
Ludovic Courtès
11924412ff README mentions development dependencies.
Reported by Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org>.

* README: Mention packages needed when building from Git.
2020-03-07 16:53:28 +01:00
Ludovic Courtès
6cfa410c9b README no longer says it's a prerelease.
Reported by Jean-Christophe Helary <jean.christophe.helary@traduction-libre.org>.

* README: Remove mention of a prerelease.
2020-03-07 16:49:14 +01:00
Nguyễn Thái Ngọc Duy
cefbfac520 Accept .sld as scheme extensions in r7rs
This is similar to 0bb980f12 (New function: install-r6rs!, 2019-09-25)
which accepts .sls extension for r6rs. In r7rs, most portable libraries
use .sld.

* module/ice-9/boot-9.scm (install-r7rs!): Update %load-extensions.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2020-03-07 16:14:23 +01:00
Ludovic Courtès
cacf690d91 Update NEWS.
* NEWS: Update.
2020-03-07 16:03:44 +01:00
Ludovic Courtès
100257ec3e Actually run '00-repl-server.test'.
This is a followup to ddcab06f20.  Until
now the tests would always be marked as unresolved because TMPDIR was
removed before the client and server had been started.

* test-suite/tests/00-repl-server.test (call-with-repl-server): Remove
initial call to 'rmdir'.  Add calls to 'delete-file' and 'rmdir' in the
unwind handler.
2020-03-07 16:03:44 +01:00
Ludovic Courtès
d3a775ff10 psyntax: Preserve source location information for top-level references.
Fixes <https://bugs.gnu.org/38388>.

* module/ice-9/psyntax.scm (expand-expr): In 'build-global-reference'
call, pass S when (source-annotation (car e)) returns #f.
* module/ice-9/psyntax-pp.scm: Regenerate.
2020-03-07 15:50:22 +01:00
Ludovic Courtès
076276c4f5 web: Client treats TLS "premature termination" error as EOF.
Fixes <https://bugs.gnu.org/39800>.
Reported by <franco.rcr@gmail.com>.

* module/web/client.scm (tls-wrap)[read!]: Catch 'gnutls-error around
'get-bytevector-some' call.
2020-03-06 23:04:12 +01:00
Ludovic Courtès
8a25546a94 Remove extra 'error' call in 'make-record-type'.
* module/ice-9/boot-9.scm (make-record-type)[computed-fields]: Remove
extra 'error' call.
2020-03-06 18:07:06 +01:00
Ludovic Courtès
d49453259b Fix expansion of 'error' primitive with a non-constant argument.
Fixes <https://bugs.gnu.org/39509>.
Reported by Klaus Stehle <klaus.stehle@uni-tuebingen.de>.

* module/language/tree-il/primitives.scm (error): Remove extra "?"
argument when the first argument is not a constant.
* test-suite/tests/tree-il.test ("primitives")["error"]: New test
prefix.
2020-03-06 18:06:51 +01:00
Ludovic Courtès
5d96e42158 Add 'hash' test for keywords.
This is a followup to 8b3cad6183.

* test-suite/tests/hash.test ("hash")["keyword"]: New test prefix.
2020-03-06 17:17:41 +01:00