1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/module
Ludovic Courtès 041f11b353 linker, assembler: Avoid intermediate bytevectors.
This reduces the amount of memory used during linking and reduces the
number of copies to be done between bytevectors.

* module/system/vm/linker.scm (<linker-object>): Remove 'bv' field and
add 'size' and 'writer'.
(make-linker-object): Adjust accordingly.
(string-table-size): New procedure.
(link-string-table!): Remove.
(string-table-writer): New procedure.
(allocate-segment): Adjust 'make-linker-object' call.
(find-shstrndx): Call the 'linker-object-writer' of O.
(add-elf-objects): Adjust 'make-linker-object' call.  Remove
'make-bytevector' allocations and move serialization to lazy 'writer'
procedures.  Define 'segments' and 'add-header-segment!'.  Return the
latter as the first value.
* module/system/vm/assembler.scm (make-object): Remove 'bv' parameter
and add 'size' and 'writer'.
(link-data): Remove 'make-bytevector' call and move serialization to
a lazy 'writer' procedure.
(link-text-object): Likewise.
(link-frame-maps): Likewise.
(link-dynamic-section): Likewise.
(link-shstrtab): Likewise.
(link-symtab): Likewise.
(link-arities): Likewise, and remove 'bytevector-append'.
(link-docstrs): Likewise.
(link-procprops): Likewise.
(link-debug): Likewise, and define 'copy-writer'.
* test-suite/tests/linker.test (link-elf-with-one-main-section): Adjust
accordingly.
2023-01-17 17:49:05 +01:00
..
ice-9 Bump user-visible copyright years to 2023. 2023-01-13 16:15:07 +01:00
language Do not expand 'make-vector' primcall with wrong number of arguments. 2023-01-16 15:33:18 +01:00
oop goops: Preserve all slot options in redefinable classes. 2021-03-19 21:45:53 +01:00
rnrs Add 'bytevector-slice'. 2023-01-14 16:14:17 +01:00
scheme Add function vector-copy! to core 2021-08-06 17:13:21 +02:00
scripts Bump user-visible copyright years to 2023. 2023-01-13 16:15:07 +01:00
srfi srfi-35: Fix expansion of 'condition' for compound conditions. 2022-10-01 18:04:16 +02:00
sxml sxml: Make parser thread-safe. 2021-10-22 13:52:40 +02:00
system linker, assembler: Avoid intermediate bytevectors. 2023-01-17 17:49:05 +01:00
texinfo texinfo: Add basic support for @w{...}. 2020-06-18 00:30:30 +02:00
web web: 'tls-wrap' retries handshake upon non-fatal errors. 2022-08-04 15:59:23 +02:00
Makefile.am Rework bootstrap to be reproducible 2022-02-01 14:50:40 +01:00
rnrs.scm Define top-level bindings for aux syntax: else, =>, _, ... 2019-09-12 21:50:51 +02:00
statprof.scm Statprof reports primitive names 2020-06-04 11:46:34 +02:00
texinfo.scm texinfo: Add basic support for @w{...}. 2020-06-18 00:30:30 +02:00