[gambit-list] Whole-program tree-shake & trampolinefreeness by amalgamating runtime&program, possible?
adam.mlmb at gmail.com
Sat Oct 19 08:03:46 EDT 2019
An interesting question came up when discussing treeshaked Gerbil static
One could get a C-compiled program
* that is optimally and maximally tree-shaked hence omitting inclusion in
the binary of evidently unused code, and
* with optimal performance in the respect of having no trampoline calls at
if one would just append together Gambit's runtime's .scm files with one's
program's .scm files, into one gigantic total.scm file, which has (declare
(optimize-dead-definitions)) and is built with --enable-single-host .
To take this conversation one step further, I like to ask, is this
I'd really guess it is. If so, your hints about how I can actually do this
would be much appreciated.
My program consists of the three vanilla Gambit .scm files a.scm b.scm
I guess very roughly this will be a tweak of
echo "(declare (optimize-dead-definitions))" > total.scm
cat gambit/lib/*.scm a.scm b.scm c.scm >> total.scm
gsc -e '(compile-file-to-target "total.scm")' (aka gsc -c total.scm)
cat gambit/lib/os_*.c total.c > c_total.c
gcc -o mystaticexe -Igambit/include/ c_total.c
Here especially, any more C files than gambit/lib/os_*.c needed, and should
the Gambit runtime .c and .scm files be appended in a particular order if
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Gambit-list