1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/module/system
Ludovic Courtès de1ac71850 psyntax: Pass source vectors to tree-il constructors.
Avoiding systematic conversion from source vectors to property alists
saves 20% on the final heap size of a process doing:

  (compile-file FILE #:optimization-level 1)

where FILE is large.

* module/language/tree-il.scm (tree-il-src/ensure-alist): New procedure
with setter.  Export as 'tree-il-src'.
* module/ice-9/psyntax.scm (build-void, build-call)
(build-conditional, build-lexical-reference, build-lexical-assignment)
(build-global-reference, build-global-assignment)
(build-global-definition, build-simple-lambda, build-case-lambda)
(build-lambda-case, build-primcall, build-primref)
(build-data, build-sequence, build-let, build-named-let)
(build-letrec, expand-body): Remove (sourcev->alist src) calls.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/language/tree-il/analyze.scm (shadowed-toplevel-analysis): Use
'tree-il-src' instead of accessing the 'src' slot directly.
* module/system/vm/assembler.scm (link-debug): Adjust so PC can be
followed by a vector or an alist.
2022-02-06 22:59:41 +01:00
..
base Deprecate symbol properties. 2022-02-04 11:12:28 +01:00
repl Add ,optimize-cps REPL meta-command 2021-10-01 11:33:13 +02:00
vm psyntax: Pass source vectors to tree-il constructors. 2022-02-06 22:59:41 +01:00
foreign-library.scm foreign-library: fix darwin detection 2021-09-02 08:59:57 +02:00
foreign-object.scm Add #:static-slot-allocation? 2015-02-06 13:25:17 +01:00
foreign.scm Support C99 complex types conditionally in (system foreign) 2021-12-01 18:40:19 +01:00
syntax.scm Document syntax-sourcev 2021-03-09 20:50:08 +01:00
xref.scm Remove backend support for cached-module-box et al. 2018-05-14 14:04:59 +02:00