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
