1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-06 04:00:26 +02:00
guile/module/system/vm
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
..
assembler.scm linker, assembler: Avoid intermediate bytevectors. 2023-01-17 17:49:05 +01:00
coverage.scm Add missing #:modules argument for coverage-data->lcov. 2022-06-16 10:01:06 +02:00
debug.scm Fix frame-call-representation for callees without closures 2019-11-27 15:04:55 +01:00
disassembler.scm disassembler: Show intrinsic name for 'call-' instructions. 2022-11-01 22:02:19 +01:00
dwarf.scm Rename "RTL" to "bytecode" 2013-12-02 21:31:47 +01:00
elf.scm elf: Add missing argument in 'elf-segment'. 2015-03-30 15:19:58 +02:00
frame.scm Avoid 'frame-local-ref' errors when printing backtrace. 2022-11-29 11:53:54 +01:00
inspect.scm Remove assembly language. 2013-11-08 16:45:10 +01:00
linker.scm linker, assembler: Avoid intermediate bytevectors. 2023-01-17 17:49:05 +01:00
loader.scm Rename objcodes?.{scm,c,h} to loader.{scm,c,h} 2013-11-19 21:45:07 +01:00
program.scm Add instrumentation to VM builtins 2018-08-17 08:50:33 +02:00
trace.scm Fix trace-calls-to-procedure 2021-05-19 16:41:30 +02:00
trap-state.scm No more VM objects visible to Scheme 2013-11-21 16:45:03 +01:00
traps.scm VM manages hook sets itself 2018-09-14 08:52:24 +02:00
vm.scm VM manages hook sets itself 2018-09-14 08:52:24 +02:00