summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-07-30srfi-1 delete-duplicates: move from C to SchemeRob Browning3-140/+46
* libguile/srfi-1.c (scm_srfi1_delete-duplicates): delete. * libguile/srfi-1.h (scm_srfi1_delete-duplicates): delete. * module/srfi/srfi-1.scm: add delete-duplicates.
2024-07-30srfi-1 delete-duplicates!: move from C to SchemeRob Browning3-84/+39
* libguile/srfi-1.c (scm_srfi1_delete-duplicates_x): delete. * libguile/srfi-1.h (scm_srfi1_delete-duplicates_x): delete. * module/srfi/srfi-1.scm: add delete-duplicates!.
2024-07-30srfi-1 lset-difference: use removeRob Browning1-11/+25
* module/srfi/srfi-1.scm (lset-difference): rely on remove like lset-difference!; in addition to being simpler, this allows sharing a common tail.
2024-07-30srfi-1 lset-difference!: move from C to SchemeRob Browning4-123/+79
* libguile/srfi-1.c (scm_srfi1_lset-difference_x): delete. * libguile/srfi-1.h (scm_srfi1_lset-difference_x): delete. * module/srfi/srfi-1.scm: add lset-difference!. * test-suite/tests/srfi-1.test: extend lset-difference! tests to cover lset-difference.
2024-07-30srfi-1 partition!: move from C to SchemeRob Browning3-54/+21
* libguile/srfi-1.c (scm_srfi1_partition_x): delete. * libguile/srfi-1.h (scm_srfi1_partition_x): delete. * module/srfi/srfi-1.scm: add partition!.
2024-07-30srfi-1 partition: move from C to SchemeRob Browning3-43/+22
* libguile/srfi-1.c (scm_srfi1_partition): delete. * libguile/srfi-1.h (scm_srfi1_partition): delete. * module/srfi/srfi-1.scm: add partition.
2024-07-30srfi-1 count: move from C to SchemeRob Browning3-100/+21
* libguile/srfi-1.c (scm_srfi1_count): delete. * libguile/srfi-1.h (scm_srfi1_count): delete. * module/srfi/srfi-1.scm: add count.
2024-07-30srfi-1 length+: move from C to SchemeRob Browning4-52/+34
* libguile/srfi-1.c (scm_srfi1_length_plus): delete. * libguile/srfi-1.h (scm_srfi1_length_plus): delete. * module/srfi/srfi-1.scm: add length+.
2024-07-30srfi-1 append-reverse!: move from C to SchemeRob Browning3-34/+22
* libguile/srfi-1.c (scm_srfi1_append_reverse_x): delete. * libguile/srfi-1.h (scm_srfi1_append_reverse_x): delete. * module/srfi/srfi-1.scm: add append-reverse!.
2024-07-30srfi-1 append-reverse: move from C to SchemeRob Browning3-26/+17
* libguile/srfi-1.c (scm_srfi1_append_reverse): delete. * libguile/srfi-1.h (scm_srfi1_append_reverse): delete. * module/srfi/srfi-1.scm: add append-reverse.
2024-07-30srfi-1 concatenate concatenate!: move from C to SchemeRob Browning4-39/+21
* libguile/srfi-1.c (scm_srfi1_concatenate, scm_srfi1_concatenate_x): delete. * libguile/srfi-1.h (scm_srfi1_concatenate, scm_srfi1_concatenate_x): delete. * module/srfi/srfi-1.scm: add concatenate and concatenate!.
2024-07-30srfi-1 delete delete!: move from C to SchemeRob Browning3-113/+35
* libguile/srfi-1.c (scm_srfi1_delete, scm_srfi1_delete_x): delete. * libguile/srfi-1.h (scm_srfi1_delete, scm_srfi1_delete_x): delete. * module/srfi/srfi-1.scm: add delete and delete!.
2024-07-30srfi-1 remove!: move from C to SchemeRob Browning3-30/+21
* libguile/srfi-1.c (scm_srfi1_remove_x): delete. * libguile/srfi-1.h (scm_srfi1_remove_x): delete. * module/srfi/srfi-1.scm: add remove!.
2024-07-30srfi-1 remove: move from C to SchemeRob Browning3-32/+47
The Scheme implementation is an adapted version of the approach used by delete-duplicates, which allows sharing any common tail. * libguile/srfi-1.c (scm_srfi1_remove): delete. * libguile/srfi-1.h (scm_srfi1_remove): delete. * module/srfi/srfi-1.scm: add remove.
2024-07-30srfi-1 list-copy: move from C to SchemeRob Browning4-35/+26
* libguile/srfi-1.c (scm_srfi1_list_copy): delete. * libguile/srfi-1.h (scm_srfi1_list_copy): delete. * module/srfi/srfi-1.scm: add list-copy. * test-suite/tests/srfi-1.test: ensure copied spine is independent.
2024-07-26Ensure GUILE-VERSION changes propagate to .version and MakefilesRob Browning2-3/+2
Have .version depend on the Makefile, and move our CONFIG_STATUS_DEPENDENCIES setting to an AC_SUBST, as recommended by the automake info pages "Rebuilding Makefiles" section, so that changes to GUILE-VERSION will update the VERSION, etc. in the generated Makefiles. * Makefile.am (CONFIG_STATUS_DEPENDENCIES): drop. ($(top_srcdir/.version)): depend on Makefile. * configure: add GUILE-VERSION to CONFIG_STATUS_DEPENDENCIES via AC_SUBST.
2024-07-23doc: Mention how to remove namespaces in xml->sxml.Richard Sent1-1/+2
* doc/ref/sxml.texi (Reading and Writing XML): Document behavior of #f namespace prefix. This documents behavior discussed in https://lists.gnu.org/archive/html/guile-user/2024-07/msg00013.html.
2024-07-17guix: Run one cross-compilation build out-of-tree.Ludovic Courtès1-3/+16
* .guix/manifest.scm (out-of-source-tree): New procedure. (cross-builds): Use it.
2024-07-17build: Fix in-tree cross-compilation build.Ludovic Courtès1-5/+4
Commit 57a889b7282dab303c4cdc49cccbbe22f961bd1c fixed out-of-tree cross-compilation builds but broke in-tree cross-compilation builds. With this change, we should have both. * libguile/Makefile.am (gen-scmconfig.$(OBJEXT)): Use ‘-iquote’ instead of ‘-I’.
2024-07-12test-hashing: support 32-bitRob Browning1-1/+7
* test-suite/standalone/test-hashing.c (test_hashing): add expected value for 32-bit architectures.
2024-07-12define-meta-command: mention effects of a missing categoryRob Browning1-0/+2
module/system/repl/command.scm: add comment.
2024-07-01bug#71304: [PATCH] Add support for 'else' clause in R7RS cond-expand.Maxim Cournoyer1-1/+3
* module/ice-9/r7rs-libraries.scm (define-library) <handle-cond-expand>: Add a pattern to match an 'else' clause. Series-to: bug-guile@gnu.org
2024-06-23Fix distcheck problems with parallel testsv3.0.10Andy Wingo1-3/+4
* test-suite/Makefile.am (EXTRA_DIST): Add (test-lib lib automake) (TEST_LOG_DRIVER): Use srcdir.
2024-06-23Bump version to 3.0.10.Andy Wingo1-3/+3
* GUILE-VERSION (GUILE_MICRO_VERSION): (LIBGUILE_INTERFACE_CURRENT): (LIBGUILE_INTERFACE_AGE): Bump.
2024-06-23Add NEWS note about parallel testsAndy Wingo1-0/+8
* NEWS: Add note.
2024-06-23Fix parallel test bug in r6rs-ports.testAndy Wingo1-2/+2
* test-suite/tests/r6rs-ports.test (test-file): Use different file from ports.test, to avoid problems during parallel tests.
2024-06-23Fix race in check-guile to make needless guile-procedures symlinkAndy Wingo3-91/+94
* check-guile.in (top_srcdir): Don't try to make guile-procedures.tx, as this races with multiple checkers, and it's gross. * meta/uninstalled-env.in (GUILE_DOCSTRINGS_PATH): Instead when uninstalled, use this variable. * module/ice-9/documentation.scm (documentation-files): Remove the current directory from the search path for documentation files; this was always a hack. Instead allow GUILE_DOCSTRINGS_PATH to override the built-in search path.
2024-06-21Ensure the signal-delivery thread is completely stopped before forkAndy Wingo3-31/+89
* libguile/scmsigs.c: Use raw pthread_create / pthread_join instead of Guile's scm_spawn_thread, to ensure that the thread is entirely stopped before a fork. * libguile/scmsigs.h (scm_i_is_signal_delivery_thread): New internal procedure, replacing a manual check against scm_i_signal_delivery_thread. * libguile/threads.c: Use the new procedure. Based on a patch by Rob Browning. Thanks!
2024-06-20Document wait-condition-variable's spurious returnsRob Browning1-3/+4
2024-06-20Avoid stompling user TESTS_ENVIRONMENT varAndy Wingo1-2/+2
* test-suite/standalone/Makefile.am (top_srcdir): Use AM_TESTS_ENVIRONMENT.
2024-06-20Switch to the preferred parallel automake test harnessRob Browning5-18/+74
Automake "strongly discourages" use of the serial driver, and switching to the preferred parallel driver allows make -j4 check to run in about half the time on a four core (not thread) host. * Makefile.am (TESTS, TESTS_ENVIRONMENT): run ./check-guile from test-suite/, not here. * check-guile.in: let test harness handle progress output. * configure.ac (AM_INIT_AUTOMAKE): allow parallel testing. * test-suite/Makefile.am (SCM_TESTS): remove non-tests. (EXTRA_DIST): move non-tests here. (TESTS): include SCM_TESTS (now driven from here). (TEST_EXTENSIONS): allow customization for .scm and .test. (TESTS_ENVIRONMENT): stop defining (user only). (AM_TESTS_ENVIRONMENT): replaces TESTS_ENVIRONMENT; drop guile. (SCM_LOG_COMPILER): run .scm tests via meta/guile. (AM_SCM_LOG_FLAGS): keep --no-auto-compile for .scm tests. (TEST_LOG_DRIVER): run .test tests via custom automake ./driver. * test-suite/driver: add automake test driver.
2024-06-20guile-test: support automake parallel test harness via --trs-fileRob Browning3-9/+93
Support an optional --trs-file PATH argument that causes guile-test to write the status information expected by the automake parallel test harness to PATH. In addition, when --trs-file is specified, suppress the final test summary (via print-counts) since it would be repeated per-test-file when running in parallel, the automake harness prints its own summary. cf. https://www.gnu.org/software/automake/manual/html_node/API-for-Custom-Test-Drivers.html * test-suite/guile-test (main): support --trs-file and --log-file. * test-suite/test-suite/lib.scm: add count-summary-line. * test-suite/test-suite/lib/automake.scm: add automake custom test driver.
2024-06-20check-guile.in: exit 2 on errors and direct output to stderrRob Browning1-2/+2
Return 2 rather than 1 for errors so that 1 will be available for any future boolean tests (as with say grep). Direct error message to stderr rather than stdout. * check-guile.in: send error message to stderr and exit 2 (not 1).
2024-06-20Attempt to fix distcheckAndy Wingo1-2/+3
* libguile/Makefile.am (install-data-hook): Remove temp GDB file.
2024-06-20Add thanks for v3.0.10Andy Wingo1-7/+7
* NEWS: Update.
2024-06-20Add link to foreign functions from gsubr docAndy Wingo1-0/+3
* doc/ref/api-procedures.texi (Primitive Procedures): Add link.
2024-06-20Update NEWSAndy Wingo1-1/+133
* NEWS: Update.
2024-06-20Add documentation on embedded procedure propertiesAndy Wingo1-36/+59
* doc/ref/api-procedures.texi (Procedure Properties): Document inline procedure properties.
2024-06-20Remove dead code in resolve-interfaceAndy Wingo1-4/+2
* module/ice-9/boot-9.scm (resolve-interface): Remove dead code.
2024-06-18build: Use PKG_INSTALL_DIRArsen Arsenović2-1/+1
This allows users to adjust their pkg-config install location. * configure.ac: Call PKG_INSTALLDIR. * meta/Makefile.am (pkgconfigdir): Remove. It will be defined automatically by the PKG_INSTALLDIR invocation.
2024-06-18bug#71303: [PATCH] doc: Fix typo in PEG example.Maxim Cournoyer1-1/+1
* doc/ref/api-peg.texi (PEG API Reference): Fix typo in PEG example.
2024-06-16Rewrite ‘get-bytevector-all’ in Scheme.Ludovic Courtès3-50/+49
* libguile/r6rs-ports.c (get_bytevector_all_var): New variable. (init_bytevector_io_vars): New function. (scm_get_bytevector_all): Rewrite as a proxy to ‘get-bytevector-all’ from (ice-9 binary-port). * module/ice-9/binary-ports.scm (get-bytevector-all): New procedure. * NEWS: Update. Reported-by: Christopher Baines <mail@cbaines.net>
2024-06-01wisp: Use uninterned symbols instead of UUIDs.Ludovic Courtès1-36/+45
As suggested in <https://lists.gnu.org/archive/html/guile-devel/2023-06/msg00008.html>. * module/language/wisp.scm (wisp-uuid): Remove. (repr-quote, repr-unquote, repr-quasiquote, repr-unquote-splicing) (repr-syntax, repr-unsyntax, repr-quasisyntax, repr-unsyntax-splicing): Turn into uninterned symbols. (line-continues?, chunk-ends-with-period, line-code-replace-inline-colons): Adjust comparisons accordingly. (wisp-replace-paren-quotation-repr)[pred]: New procedure. Use it to compare against the various ‘repr-’ values. (wisp-make-improper)[dot?]: New procedure. Use it to compare against ‘repr-dot’.
2024-06-01Update NEWS.Ludovic Courtès1-0/+7
2024-06-01Add language/wisp, Wisp tests, and SRFI-119 documentationArne Babenhauserheide6-1/+1922
* doc/ref/srfi-modules.texi (srfi-119): add node * module/language/wisp.scm: New file. * module/language/wisp/spec.scm: New file. * test-suite/tests/srfi-119.test: New file. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2024-06-01Don’t rely on integer wrapping in ‘scm_gc_register_allocation’.Ludovic Courtès1-2/+2
* libguile/gc.c (scm_gc_register_allocation): Simplify condition.
2024-05-17make-foreign-object-type: add #:super to provide superclassesRob Browning3-6/+14
* module/system/foreign-object.scm (make-foreign-object-type): allow specification of superclasses via #:super.
2024-05-13Update NEWS.Daniel Llorens1-0/+2
2024-05-06guix: Use non-deprecated package name.Ludovic Courtès1-2/+2
* .guix/modules/guile-package.scm (guile)[native-inputs]: Use ‘texlive-scheme-basic’ instead of the deprecated ‘texlive-base’.
2024-05-06Second argument of ‘unread-string’ is optional.Juliana Sims4-5/+7
Fixes <https://bugs.gnu.org/67063>. * doc/ref/api-io.texi (Venerable Port Interfaces): Bring unread-string procedure documentation in line with other procedures in the section. * libguile/ports.c (scm_unread_string): Make port argument optional. * test-suite/tests/ports.test: Test unread-char and unread-string without ports. * NEWS: Update. Signed-off-by: Ludovic Courtès <ludo@gnu.org>