summaryrefslogtreecommitdiff
path: root/module/system
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2021-02-25 16:06:09 +0100
committerAndy Wingo <wingo@pobox.com>2021-02-25 21:24:59 +0100
commit7e01042337e9637482790d60b1f467a740960655 (patch)
tree53c5153d39d25e42be6f9f9ee2550d721e1d3d9c /module/system
parent07f63cf4f3282234fae83f9e9690e87e3b2d9ed4 (diff)
downloadguile-7e01042337e9637482790d60b1f467a740960655.tar.gz
Assembler writes vector source properties
* module/system/vm/assembler.scm (intern-constant, link-data): Write the vector representation of source instead of the alist. Saves a lot of heap size, object file size, and init time when serializing syntax objects with source.
Diffstat (limited to 'module/system')
-rw-r--r--module/system/vm/assembler.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/module/system/vm/assembler.scm b/module/system/vm/assembler.scm
index e5d81525a..8139263a8 100644
--- a/module/system/vm/assembler.scm
+++ b/module/system/vm/assembler.scm
@@ -1292,7 +1292,7 @@ table, its existing label is used directly."
(patch! 1 (syntax-expression obj))
(patch! 2 (syntax-wrap obj))
(patch! 3 (syntax-module obj))
- (patch! 4 (syntax-source obj)))
+ (patch! 4 (syntax-sourcev obj)))
((stringbuf? obj))
((static-procedure? obj)
;; Special case, as we can't load the procedure's code using
@@ -1986,7 +1986,7 @@ should be .data or .rodata), and return the resulting linker object.
(write-constant-reference buf (+ pos (* 3 word-size))
(syntax-module obj))
(write-constant-reference buf (+ pos (* 4 word-size))
- (syntax-source obj)))
+ (syntax-sourcev obj)))
((number? obj)
(write-placeholder asm buf pos))