Faré wrote:
On Sun, Feb 23, 2014 at 10:33 PM, Robert Goldman rpgoldman@sift.net wrote:
Faré wrote:
On Sun, Feb 23, 2014 at 12:11 PM, Robert Goldman rpgoldman@sift.net wrote:
The :REQUIRE directive seems undocumented.
Under what circumstances is it acceptable?
If I remember the intent and interpret the source code correctly, it is always acceptable, but highly non-portable, and is thus better guarded by a (:feature :sbcl (:require :sb-posix)) or (:feature :ecl (:require :sockets)) or some such.
The result being that your component depends on a system that when loaded calls (require name).
I see. We had done something like that, but by having a pseudo-system type called REQUIRE-SYSTEM, and setting it up to use REQUIRE for (PERFORM LOAD-OP SYSTEM)....
I have a documentation patch that describes REQUIRE now. Should push it soon.
REQUIRE-SYSTEM is actually used underneath by the :REQUIRE syntax, unless the implementation provides the system through a regular ASDF system (which SBCL used to do until they took my ASDF3 patch).
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Judge and party — the ultimate nature of a monopoly government.
So I believe what happens is that use of :REQUIRE triggers the automatic generation of a REQUIRE-SYSTEM for the corresponding module, and then its loading, when necessary, is handled by REQUIRE. Yes?