David Van Horn scripsit: > I have made the same suggestion on this mailing list. (Although I don't > buy the bit about the need for an interpreter [at compile time]).
Well, let us say then, some means of evaluating arbitrary Scheme at compile time. It can compile the bodies of low-level macros, load them into itself, and invoke them. ISLisp, BTW, which is a Common Lisp derivative standardized by ISO, has defmacros, but it also has this interesting disclaimer: # The set of usable operations is restricted to simple data structure # creation and manipulation; those operations are forbidden that cause # side-effects to the environment (such as I/O to the terminal), to # externally accessible data structure (such as a modification to the # property list of a symbol), or to the macro form itself. IOW, an ISLisp compiler needs an evaluator, but it does not have to be a *full* evaluator. Unfortunately, there is no specification of exactly which standard functions an implementation must allow. In my long-delayed ISLisp compiler, there will be a classical tree walking interpreter at compile time, but no interpreter at run time, for ISLisp has no "eval" nor any other means of introspection about a running program. It is, I think, an attempt at making a Lisp that is as compilable as possible, while still having only dynamic typing and dynamic method (CLOS-ish) dispatch. -- John Cowan [email protected] http://ccil.org/~cowan If a traveler were informed that such a man [as Lord John Russell] was leader of the House of Commons, he may well begin to comprehend how the Egyptians worshiped an insect. --Benjamin Disraeli _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
