On Tue, May 15, 2012 at 4:26 PM, Sam Steingold <[email protected]> wrote: >> * Faré <[email protected]> [2012-05-15 12:58:29 -0400]: >> >> Note that for the sake of being able to simultaneously support >> several implementations on the same computer (or network), >> asdf has taken the route of trying to segregate fasl files and >> any other build output (e.g. C files and Lisp files generated by CFFI) >> to directories the name of which depend on the implementation, >> its version, the operating system and architecture, etc. > > I know, and I am not sure this is TRT. > This approach leads to a propagation of directories and files which > might uselessly duplicate each other on one hand, while not providing > the appropriate flexibility on the other. > 1) there is no fully reliable way to detect beforehand whether the file will be actual portable bytecode, or something that has platform-specific information, not only because of magic escapes (if they exist), but also because of cffi-extracted constants or other clever read-time, macroexpansion-time or compile-time evaluations.
2) I don't know what you mean by "not providing the appropriate flexibility". ASDF (and XCVB) make it fully user-configurable, and seggregate according to a wide variety of criteria that can be further compounded with e.g. hostname. > E.g., CLISP compiles to platform-independent byte-code whose format > changes relatively rarely, so having separate directories for > clisp-ver-arch-os is a total waste, which also gives the users an > impression that they cannot distribute clisp-fas files to different > arches. > How do you avoid the issues with embedded cffi constants? Certainly, a clever enough system could track that no non-portable operations happened during a compilation and validate fasls as portable after-the-fact. That's more clever than either CLISP or ASDF is. Or you could be optimistic until things break badly. Which is frankly a dumb way to save disk space -- but ASDF allows you to configure your system that way if you desire. If you want some non-trivial feature, that would be more useful: a way to track whether a file was compiled portably, and/or a way to declare that it should and to trap it if it doesn't. As for namespace issues. Should CDR's be available through (require :cdr3) with their contents in (find-package :cdr3) ? —♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org It's possible to program a computer in English. It's also possible to make an airplane controlled by reins and spurs. — John McCarthy _______________________________________________ pro mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro
