Indeed that would be a nice documentation to have! Perhaps some day I’ll write an academic paper that collects all the Gambit optimizations and tricks, but not now as this represents a lot of work (each backend has its own set of tricks, and there’s more than C… now x86, ARM, riscv, JavaScript, Python, PHP, Go, …). You’ll find bits and pieces in the papers I have written over the years, but beware of “bit rot” (in the papers).
You might want to coordinate with Adam who has started collecting implementation information on the wiki.
Marc
On Mar 8, 2020, at 11:14 AM, Lassi Kortela lassi@lassi.io wrote:
Marc, I'd like to collect all your explanations about Gambit's internals into one place if it's OK with you. It would be enlightening for anyone wishing to optimize code or to learn more about how advanced dynamic language implementations work.
I can try to find and copy/paste some of the stuff you've written so far in emails and GitHub issues.
A complete guide comparing and contrasting the approaches of the major Scheme implementations would be even more enlightening. Gambit is the leading implementation in r7rs-benchmarks so it could even make for good PR :) Meanwhile, it could foster some friendly competition between implementations. And it would be a very valuable index for the larger CS community on what kind of performance can be achieved with particular levels of implementation complexity.
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://mailman.iro.umontreal.ca/cgi-bin/mailman/listinfo/gambit-list