|
From: | Peter Bex |
Subject: | [Chicken-hackers] [PATCH] Complete chicken.eval module and wrap modules.scm in a module in the process |
Date: | Sun, 2 Apr 2017 21:50:36 +0200 |
User-agent: | Mutt/1.5.23 (2014-03-12) |
Hi all, The attached set of patches will finish up the (chicken eval) module, as defined by http://wiki.call-cc.org/core-libraries-reorganization It was missing the "module-environment" definition, which lives in modules.scm. To untangle the hidden dependencies a bit, I decided to make modules.scm into a module. For lack of a better name, I chose chicken.internal.module but we can decide to rename it if necessary. It is emphatically _not_ named chicken.module, because that will contain the user-visible stuff like "import", "export", "use", "functor" etc (though it's still marked as "undecided"), while this stuff is all very much internal and should never be relied on to be stable. Simply wrapping modules.scm in a module declaration already found one small bug: In "iface" in "##sys#validate-exports", "x" is undefined. This shows the usefulness of using modules for core; this error went undetected for many years. Aside from all that, I also tried to reduce the chumminess between expand.scm/chicken-syntax.scm and modules.scm; it turns out that there is no need for those to refer to ##sys#current-module, which is again very much an internal detail, and it's much clearer to see which module an expansion refers to rather than just "##sys#something". This patch set is not 100% complete, but we can finish up later. core.scm, eval.scm, csi.scm and chicken-install.scm still contain several ##sys# references to things from modules.scm. Some may be hidden, some may be moved around, but this will cause too many swooping changes. I think the current patch set is quite a big win in clarity already. Cheers, Peter
0001-Add-chicken.internal.module-move-module-environment-.patch
Description: Text Data
0002-Don-t-use-sys-prefix-for-compiled-module-registratio.patch
Description: Text Data
0003-Un-sys-a-few-module-procedures-used-in-macros.patch
Description: Text Data
0004-Remove-sys-prefix-from-export-registration-stuff.patch
Description: Text Data
signature.asc
Description: Digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |