[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.
- Re: [Chicken-janitors] #1457: module/import information in statically linked executables has massive runtime overhead,
Chicken Trac <=