chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] [PATCH] Complete chicken.eval module and wrap modules.


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

Attachment: 0001-Add-chicken.internal.module-move-module-environment-.patch
Description: Text Data

Attachment: 0002-Don-t-use-sys-prefix-for-compiled-module-registratio.patch
Description: Text Data

Attachment: 0003-Un-sys-a-few-module-procedures-used-in-macros.patch
Description: Text Data

Attachment: 0004-Remove-sys-prefix-from-export-registration-stuff.patch
Description: Text Data

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]