Rob Browning
b6125a0def
NEWS: add some missing 3.0.11 entries
2024-08-03 14:25:10 -05:00
Rob Browning
bce91cebed
Merge conversion of srfi-1.c to srfi-1.scm
...
Rewrite the srfi-1 C functions in Scheme and remove srfi-1.c as
planned (see the comments at the top of srfi-1.c).
The previous C code mutated intermediate results in some cases, even for
non-! functions (e.g. set-cdr! to build the result without stack growth
or a reverse!); some of the conversions preserve that approach for now.
Simple testing via https://github.com/ecraven/r7rs-benchmarks/ didn't
reveal any substantial performance regressions.
Thanks to David Thompson for reviewing the changes and suggesting
improvements.
2024-07-30 19:40:48 -05:00
Rob Browning
6338459159
Drop libguile srfi-1
...
...now that all of the C code has been migrated to Scheme.
* libguile/Makefile.am (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES):
remove srfi-1.c.
(DOC_X_FILES): Remove srfi-1.x.
(DOT_DOC_FILES): Remove srfi-1.doc.
(modinclude_HEADERS): Remove srfi-1.h.
* libguile/init.c (scm_i_init_guile): Don't call scm_register_srfi_1.
* libguile/srfi-1.c: Remove.
* libguile/srfi-1.h: Remove.
* module/srfi/srfi-1.scm: Don't load srfi-1 from libguile.
2024-07-30 19:39:32 -05:00
Rob Browning
51b7021de1
srfi-1 delete-duplicates: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
a94b4406b7
srfi-1 delete-duplicates!: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
51e15d448f
srfi-1 lset-difference: use remove
...
* 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-30 19:28:37 -05:00
Rob Browning
945c97b14d
srfi-1 lset-difference!: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
3eb6afe738
srfi-1 partition!: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
925faf1f01
srfi-1 partition: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
58246aee24
srfi-1 count: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
372a52e6aa
srfi-1 length+: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
3cb6309f62
srfi-1 append-reverse!: move from C to Scheme
...
* 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-30 19:28:37 -05:00
Rob Browning
17281519df
srfi-1 append-reverse: move from C to Scheme
...
* 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-30 19:11:34 -05:00
Rob Browning
c62d2962d4
srfi-1 concatenate concatenate!: move from C to Scheme
...
* 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-30 18:54:45 -05:00
Rob Browning
a816b2484b
srfi-1 delete delete!: move from C to Scheme
...
* 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-30 18:54:45 -05:00
Rob Browning
c5f26d4c27
srfi-1 remove!: move from C to Scheme
...
* 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-30 18:54:45 -05:00
Rob Browning
03d4a3b5df
srfi-1 remove: move from C to Scheme
...
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-30 18:54:45 -05:00
Rob Browning
aa44035ee8
srfi-1 list-copy: move from C to Scheme
...
* 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-30 18:54:45 -05:00
Andy Wingo
6c5cdd73c9
refactor pcc. no functional change
2024-07-29 11:31:52 +02:00
Andy Wingo
22f5b44330
Docs docs
2024-07-27 22:34:43 +02:00
Andy Wingo
50e90a026a
Docs docs
2024-07-27 22:33:56 +02:00
Andy Wingo
3ce0899729
Docs docs
2024-07-27 22:32:08 +02:00
Andy Wingo
9b2677a57b
Docs docs
2024-07-27 22:30:42 +02:00
Andy Wingo
cc6b1c1fb5
typos
2024-07-27 22:28:55 +02:00
Andy Wingo
ab5071f97a
Rework docs
2024-07-27 22:26:24 +02:00
Rob Browning
6bd70136d9
Ensure GUILE-VERSION changes propagate to .version and Makefiles
...
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-26 16:37:41 -05:00
Andy Wingo
3d4d4d047c
Fix BDW finalization; ensure pending set is marked
2024-07-24 10:01:16 +02:00
Andy Wingo
c7309a9657
Ensure fired finalizers are traced
2024-07-24 09:54:15 +02:00
Andy Wingo
068e0e5cdf
Add benchmark for finalizers
...
Doesn't quite work on BDW yet.
2024-07-24 09:51:56 +02:00
Andy Wingo
f6057184e1
Add finalizers
2024-07-23 22:33:29 +02:00
Richard Sent
8535682dda
doc: Mention how to remove namespaces in xml->sxml.
...
* 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-23 08:23:43 +02:00
Ludovic Courtès
15a656a77a
guix: Run one cross-compilation build out-of-tree.
...
* .guix/manifest.scm (out-of-source-tree): New procedure.
(cross-builds): Use it.
2024-07-17 00:02:24 +02:00
Ludovic Courtès
c117f8edc4
build: Fix in-tree cross-compilation build.
...
Commit 57a889b728
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-17 00:00:00 +02:00
Rob Browning
ad1f56675b
test-hashing: support 32-bit
...
* test-suite/standalone/test-hashing.c (test_hashing): add expected
value for 32-bit architectures.
2024-07-12 17:49:45 -05:00
Rob Browning
d99ae68f88
define-meta-command: mention effects of a missing category
...
module/system/repl/command.scm: add comment.
2024-07-12 17:49:45 -05:00
Andy Wingo
9167dbb5f6
Fix returning partially allocated blocks that are actually full
2024-07-12 09:06:26 +02:00
Andy Wingo
64c7d73fa2
Add partially allocated block list.
...
Stopping a mutator or evacuator adds to this list.
2024-07-11 22:15:59 +02:00
Andy Wingo
c556dedb56
Add pcc collector to docs
2024-07-11 21:07:26 +02:00
Andy Wingo
d5ef140dfe
Add parallel copying collector
2024-07-11 15:54:15 +02:00
Andy Wingo
c226570a81
Fix parallel tracer to force workers to be stopped during pauses
2024-07-11 15:54:15 +02:00
Andy Wingo
5084730471
Add parallel root-tracing phase
2024-07-11 15:54:11 +02:00
Andy Wingo
ff1e1b1d44
whippet: avoid an atomic load when visiting already-marked objects
2024-07-10 11:50:08 +02:00
Andy Wingo
d50455ed1b
Add new gc_atomic_forward_object_size API
...
Also remove an unused function in whippet.c
2024-07-10 11:50:05 +02:00
Andy Wingo
247f9432a4
Tighten up typing of trace workers and trace worker data
2024-07-08 18:44:24 +02:00
Andy Wingo
5ff78f01c8
Add gc_trace_worker_call_with_data
...
Goal is to pass thread-local evacuation buffers.
2024-07-08 18:10:18 +02:00
Andy Wingo
ac5d546481
Remove heap_tracer; get to heap from tracer directly
2024-07-08 17:35:58 +02:00
Andy Wingo
ba9459ce56
Rework tracer API to pass tracer to all functions
2024-07-08 17:29:24 +02:00
Andy Wingo
921c012b51
Add gc_ prefix to tracer API
2024-07-08 17:15:00 +02:00
Andy Wingo
b4543ad641
Factor out tracer interface to own file
2024-07-08 14:38:15 +02:00
Andy Wingo
82afee8693
Break simple serial worklist out to its own file
2024-07-08 11:49:47 +02:00