Hi Robert; Thanks for the advice and suggestions for where to start looking. I will get out the software shovel and start digging, and I shall report back.
Thanks again! -jm On Tuesday 03 September 2013 15:51:04 Robert Goldman wrote: > John Morrison wrote: > > Hi All; > > > > tl:dr - AFAICT post-version-2.26-ish versions of ASDF systems listed > > in :depends-on are unconditionally loaded rather than required - ditto > > for asdf:load-system. If this is correct (both in intent and my > > understanding), then how to create a GUI for quicklisp in McCLIM which > > can quickload any system which :depends-on McCLIM? > > > > Apologies in advance in the likely event this is Pilot Error. > > > > Am trying to write a gui > > <https://bitbucket.org/symbolicsimulation/com.symsim.oss.ql-gui> for > > quicklisp. Testing on various platforms (Raspberry Pi, linux/SBCL, > > linux/CCL) with various vintages of ASDF produces differing behavior. > > In particular, quickloading a system which depends upon McCLIM from > > the McCLIM-based gui screws up (I haven't tracked down the exact > > problem, but I could understand why unconditionally reloading McCLIM > > while it's running could get weird). > > > > After some digging (and rebuilding various versions of SBCL up to > > 1.1.9), I got as far as seeing asdf:load-system behavior diverging > > from 2.26 (SBCL 1.0.9) to both 2.32 (CCL 1.9) and 3.0.2 (both SBCL and > > CCL). AFAICT 2.26 load-system does not unconditionally load an > > already-loaded system (behaving like and perhaps redundant to > > asdf:require-system). 2.32 and 3.0.2 load-system unconditionally load > > systems, and require-system does not. I think I understand why the > > newer vintages do this. > > > > The issue for me is loading systems that :depend-on McCLIM from inside > > a McCLIM frame command. In my naivety, I would think that the > > > > :depends-on systems should be required rather than loaded (if you've > > > > patched them, say, you wouldn't want the patch hammered). For my own > > stuff, I guess I could require prerequisite systems within the asd > > file rather than :depending-on them, but this seems wrong (breaks > > introspection?) - so wrong I feel I may be going about this entirely > > the wrong way. > > > > Would anybody please be so kind as to throw some advice my way? > > > > -jm > > ASDF:REQUIRE-SYSTEM uses :FORCE-NOT to prevent ASDF from reloading any of > the parent systems that have changed. > > But LOAD-SYSTEM should not *unconditionally* load parent systems, unless > :FORCE is used, or those systems have changed. > > Is it possible that something is happening in your interaction with > QUICKLISP to cause ASDF to mistakenly believe some of these upstream parts > of McCLIM have changed? > > Another possibility: the McCLIM ASDF structure is *very* complicated because > of the back-ends, which cannot be modeled happily in ASDF, because ASDF > isn't great about modeling conditional structure in environmental > dependencies. [IMO, really McCLIM should have used LOAD-SYSTEM keywords to > allow the loader to specify backends. But that's water under the bridge > now...] Perhaps some aspect of this complex structure causes ASDF to > mistakenly believe something needs reloading. > > best, > r -- --- John Morrison --- [email protected]
