Join Nostr
2026-08-02 12:51:52 UTC
in reply to

Ramin Honary on Nostr: hmm, it sounds to me like Chicken always compiles rather than evaluates. One approach ...

hmm, it sounds to me like Chicken always compiles rather than evaluates. One approach for a Lisp/Scheme compiler is to compile a module with indirection hooks on each function. The hooks call into the compiled function by default, but you can replace the hook with a pointer to an evaluated function if the function is ever updated in the REPL. But this is much less efficient because every function call in the module needs to perform that indirection through the hook. Perhaps Chicken does not use this approach for the sake of faster runtime code execution?

I know that the R7RS standard specifies nothing about "sealing" functions or modules the way Common Lisp does. So every Scheme implementation is free to implement compilation in whatever way they want.