Am 04.10.2005, 14:19 Uhr, schrieb Graham Fawcett <[EMAIL PROTECTED]>:

[...]
You know, Felix -- it would be great to have a single, well-written,
side-by-side comparison of '(use require-extension require-module
import load ...) somewhere. I respect that there must be valid reasons
for having all of these directives. Though the application developer
in me cries out "just give me one directive that Does The Right Thing
in any context!", I'm willing to pat the AD-in-me on the head and
console him if there's a good rationale for maintaining this rather
large suite of inclusion/linkage directives.
[...]

Hello,

in most cases the "require-extension" also known as "use" directive is just the "Do The Right Thing" directive that you want.

But to have a comparison, the constructs I know of are
        syntax: require-extension, use
                * automatically decide to load source, shared object or library
                * automatically decide whether it isn't already loaded
                * automatically decide whether to load at compile or runtime
        procedure: require
                * automatically decide to load source, shared object or library
                * automatically decide whether it isn't already loaded
                * always load at runtime
        procedure: require-for-syntax
                * automatically decide to load source, shared object or library
                * automatically decide whether it isn't already loaded
                * always load at compile-time (unless interpreted)
        procedure: load
                * always load source or shared object
                * always load it, no check whether it's already present
                * always load at runtime
        load-library:
                * always load library (internally or from shared object)
                * always load it, no check whether it's already present
                * always load at runtime

I hope I have put it as simply as possible while still being correct... These are only the procedures that concern themselves with *loading* of code, though. In addition there are at least two module systems available for CHICKEN: The one that comes with the syntax-case egg and the one that you were using, which comes with the simple-macros egg. These systems have their own semantics to *import* code and to *separate namespaces*. I cannot give a good overview over their usage, though, because I never seriously used them so far.

cu,
Thomas


_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to