On Thu, Sep 10, 2009 at 9:57 PM, Andrew
Reilly<[email protected]> wrote:
> On Thu, Sep 10, 2009 at 09:42:30PM -0400, Lynn Winebarger wrote:
>>  What does it profit the scheme user for the standard to stick
>> its head in the sand about the reality that their programs exist in a 
>> stateful
>> environment? Is this about being a "language" and not a
>> "system"?  If there's some other reason for this separation, please
>> enlighten me.
>
> Personally, I would *vastly* prefer that my language did *not*
> assume that it existed in a stateful environment.  In many,
> many projects that use that other popular language, I get a lot
> of benefit from being able to specify the paths where included
> and linked files should be found on the compiler command line.
> In particular, that allows me to produce variant versions (for
> different target platforms, usually) without having to clutter
> up the source code with conditional compilation directives and
> unused blocks of code.
>
> I know that that's not the way that the "always in a REPL" folk
> work, but I'm sure that there must be some sort of equivalent
> that can be as useful.  Even if it's just a question of having a
> SCHEME-PATH variable that can be re-defined if necessary.
>
This is a good point.  I will revise the interface to allow for distinct
library repositories:

(inter-library <filename or URI type argument> repository-name)
(disinter-library library-name repository-name)
(serialize-library library-name repository-name)
(repository-set repo_1 ... repo_n)  ;; "library search path"

However, I think the way you present your point hides an
important aspect:  Makefiles are also source code.  They are
not directly included in the object files, but they are part of the
program nonetheless, just as macros are in Scheme.  They usually
get subject to the stateful environment in which they operate, and
the compiler and linker are usually not state-free either.

What having a separate language for the metaprogramming of the
build process does do is force phase separation.  With C there's
really not any other viable approach.  With Scheme there should be.

And, of course, nothing would prohibit a particular implementation
from offering its own set of command line switches to set up the
repository path.  I'm not an expert on the Scheme standards, but
they seem silent on such matters.  Do C standards have
anything to say about command lines?

Lynn

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to