[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
loadtime conditionalization.
Here's a hack:
Try putting in your file:
(when 1i-dont-want-the-rest-of-this-file-loaded-p
0 (throw 'si:bin-load-done t))
It uses an undocumented catch tag so you can't depend on it to work in future
releases.
Date: Fri, 10 Jun 88 19:23 PDT
From: Jerry@marlowe.inference.dialnet.symbolics.com (Jerry Bakin)
I am working on a system which will be supported on several
machines, in several different environments.
I have stubs and such to load on the different environments to make them
behave the same.
I would like to create one system and have one compiled version; this
will cause slightly fatter than needed bins, but reduce the overhead in
maintaining separate systems.
So, I have a few problems which I would like suggestions or comments.
A) Can I conditionalize the loading of files within a defsystem on
user picked predicates?
B) At load time, what is the recommended method to conditionalize
the evaluation of a defun, defflavor, etc., within a file?
For instance, I have a file known as tcp-stubs which contains
the support I need when tcp has not been loaded on the system.
I would like to let defsystem determine when to load tcp-stubs or not.
Failing that, I would like to add code such as the following within
tcp-stubs and always load it:
(when (fboundp 'tcp::add-tcp-port-for-protocol)
(tcp::add-tcp-port-for-protocol :sna-simulation 2050))
(unless (find 'tcp-error sys:*all-flavor-names*)
(defflavor tcp-error () ()))
The problem is that upon compiling, I get many warnings similar to the
following:
Warning (not associated with any definition):
A DEFFLAVOR should only occur at top level
Well it is only a warning, but still; I'd rather not see it.
Does anyone have any suggestions?
Thanks,
Jerry Bakin.