compiler.codegen.fixup: cache symbol names, reducing image size by ~200Kb

db4
Slava Pestov 2010-01-13 23:18:43 +13:00
parent 2922e08ed9
commit ce2487e6c0
1 changed files with 6 additions and 3 deletions

View File

@ -1,10 +1,10 @@
! Copyright (C) 2007, 2009 Slava Pestov. ! Copyright (C) 2007, 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: arrays byte-arrays byte-vectors generic assocs hashtables USING: arrays byte-arrays byte-vectors generic assocs hashtables
io.binary kernel kernel.private math namespaces make sequences io.binary kernel kernel.private math namespaces make sequences
words quotations strings alien.accessors alien.strings layouts words quotations strings alien.accessors alien.strings layouts
system combinators math.bitwise math.order generalizations system combinators math.bitwise math.order generalizations
accessors growable fry compiler.constants ; accessors growable fry compiler.constants memoize ;
IN: compiler.codegen.fixup IN: compiler.codegen.fixup
! Owner ! Owner
@ -52,8 +52,11 @@ SYMBOL: relocation-table
: rel-fixup ( class type -- ) : rel-fixup ( class type -- )
swap compiled-offset add-relocation-entry ; swap compiled-offset add-relocation-entry ;
! Caching common symbol names reduces image size a bit
MEMO: cached-string>symbol ( symbol -- obj ) string>symbol ;
: add-dlsym-parameters ( symbol dll -- ) : add-dlsym-parameters ( symbol dll -- )
[ string>symbol add-parameter ] [ add-parameter ] bi* ; [ cached-string>symbol add-parameter ] [ add-parameter ] bi* ;
: rel-dlsym ( name dll class -- ) : rel-dlsym ( name dll class -- )
[ add-dlsym-parameters ] dip rt-dlsym rel-fixup ; [ add-dlsym-parameters ] dip rt-dlsym rel-fixup ;