This is the mail archive of the guile@sources.redhat.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: pssyntax.ss and module system


Mikael Djurfeldt <mdj@mdj.nada.kth.se> writes:

> > Skimming through the paper, it appears to require that later modules
> > are recompiled whenever any earlier module is recompiled (in the
> > module dependency DAG).
> 
> Do you deduce this from the section I quoted, or from some other
> considerations?  Can you explain why compilation must be ordered?

Looking at the second paragraph of section 5.1 (which describes the
generation of unique names using the network card MAC address, process
identifier, and time) made me guess that the compiler produces a
different result on every invocation, such that subsequently-compiled
modules are compiled against this specific object file.

> If we want, we can invent our own conventions for how interfaces
> should be specified---just as we are free to place a C preprocessor
> macro in a header file rather than in a .c-file, we should be able to
> place our interfaces separately if this is something we want.

I agree that this is a desirable feature.

> As I said, I think the reason why they look at object modules in their
> implementation is that it's smart----then they can execute compiled
> transformers.
> 
> But I may be wrong on this point.  Maybe they actually use a name
> substitution scheme which make them dependent on object files.
> 
> Anyway, what we should be concerned with is the intrinsic limitations
> of their specification rather than their implementation.

I haven't studied the paper closely enough to tell whether the
specification can be implemented with separate interfaces.

Carl Witty
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://mail.gnu.org/mailman/listinfo/guile-user

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]