specmac module
We're (quite successfully!) upgrading our customer's capi-based applications
through an automatic patch download system. To make the application accept
the loading of fasl-files, I've delivered it with at level 0:
(deliver 'init-trader "PrimeTrader" 0
:interface :capi
:keep-pretty-printer t
:keep-clos :no-empty
#+win32 :icon-file #+win32 (my-pathname "lib/pt-icon.ico"))
Until today, this has worked fine, even patches that add or replace methods
work just fine. But now I'm having a headache: While testing a new patch
I want to deliver to our customers, I discovered that the windows version
would crash (the linux version ran just fine) complaining that it needed
the "specmac" module. From the backtrace, it looked like it was trying
to do some compilation of some capi-related method, it looks like
CAPI::DRAW-PINBOARD-OBJECTS TRIGGERS a call to CLOS::DCODE-MISS-NEW,
which calls CLOS::COMPUTE-EFFECTIVE-METHOD-FROM-METHODS, which in its turn
finally tries to call COMPILE, which apparently misses the specmac module to
do some macro stuff.
My questions are:
1. Should I have included the specmac module in the first place...?
2. Can I persuade the run time system to avoid doing all (or parts of)
this so it won't need specmac.ufsl?
3. If not, is it ok if I provide our customers with specmac.fsl too?
(I have confirmed that my patch work as expected if I load specmac.fsl
before creating instances of the classes in question).
(The whole thing puzzles me, since this has worked so many times before -
this is patch number 9 or 10 I want to deliver this way. Maybe I'm missing
some obvious error I've made?)
--
(espen)