chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #1457: module/import information in statically li


From: Chicken Trac
Subject: Re: [Chicken-janitors] #1457: module/import information in statically linked executables has massive runtime overhead
Date: Sun, 20 May 2018 19:09:40 -0000

#1457: module/import information in statically linked executables has massive
runtime overhead
-----------------------------------+---------------------
            Reporter:  felix       |      Owner:
                Type:  defect      |     Status:  new
            Priority:  major       |  Milestone:  someday
           Component:  extensions  |    Version:  5.0
          Resolution:              |   Keywords:
Estimated difficulty:  hard        |
-----------------------------------+---------------------

Comment (by sjamaan):

 Yeah, it's due to `merge-se`.

 It is triggered by import libraries being present in static binaries. In
 binaries which are linked with shared libraries you pay most of the cost
 at compile time, which you don't notice as easily because it is (usually!)
 dwarfed by the compilation time itself.

 Each import library will contain forms like `(eval '(import scheme
 chicken.base ...))` to ensure the syntactic environment of any macros
 exported by the module match the environment inside the module (which is
 conceptually somewhat broken in itself, but that's something for another
 day).

 When a module exports no syntactic forms, this is 100% wasteful, so we can
 avoid emitting `eval` for all modules that export only regular values.
 Patch sent to chicken-hackers.

--
Ticket URL: <https://bugs.call-cc.org/ticket/1457#comment:3>
CHICKEN Scheme <https://www.call-cc.org/>
CHICKEN Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]