[alexandria-devel] eval-always, defun-always, etc...

Faré fahree at gmail.com
Fri Oct 16 16:49:27 UTC 2009


2009/10/16 Michael Weber <michaelw+alexandria at foldr.org>:
> I proposed phase segregation (basically because things get hairy down
> the line when not thinking about that from the start) based on files.
> However, I ALSO said that code should be wrapped in EVAL-WHEN:
>
Oh, OK.

So we'd have files like
   foo-syntax.lisp
with all the macros, eval-when'ed definitions, special declarations, and
   foo.lisp
with the normal runtime definitions?

That's a style I think would be great to push in the CL community.
We could even have slightly separate builds for "my-system-syntax"
and "my-system" so that you only need "my-system-syntax" to compile
stuff that is linked at runtime against "my-system". That would
minimize the need for recompilation.

>  Otherwise, how would you solve
> this for xcvb now?
Either
1- Plenty of EVAL-WHEN, or
2- explicit compile-time dependency with :compile-depends-on and/or
:cload-depends-on.

Note that the ASDF to XCVB converter doesn't know about :compile-depends-on,
only about the simpler :depends-on.

> (FWIW, there are Scheme module systems which enforce phase separation;
> ObReference:
> Matthew Flatt, Composable and Compilable Macros, <http://www.cs.utah.edu/plt/publications/macromod.pdf
>  >)
Yup.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
The rule is, jam to-morrow and jam yesterday, but never jam today.
		-- Lewis Carroll




More information about the alexandria-devel mailing list