Now that I think of it, I see a problem with your solution: there can be situations where you register your system as immutable and preloaded, but since it's not registered as defined yet, find-system will still look for it on disk. I believe you need to either have you register-immutable-system do the registering a defined system in *registered-systems* rather than trying to use system-registered-p, or further uglify find-system.lisp to short-circuit the search when a system is immutable and preloaded. I believe the former is what you want: make sure the system is always defined.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org If Government is the solution to any alleged "failure" of free society, what is the solution to blatant failures of Government?
On Sun, Aug 10, 2014 at 8:32 PM, Dave Cooper david.cooper@genworks.com wrote:
Here it is untabified.
I'll have to study the test-program.script a bit before attempting a test case.
On Sun, Aug 10, 2014 at 7:31 PM, Faré fahree@gmail.com wrote:
Dear Dave,
your patch looks great except that it introduces tabs. Please no tabs in ASDF. At least SBCL hates them.
Also, if you can contrive a test case, maybe as an add-on to the image-op test in test-program.script, that would be great.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org drug, n: A substance that, injected into a rat, produces a scientific paper.
On Sun, Aug 10, 2014 at 4:06 PM, Dave Cooper david.cooper@genworks.com wrote:
On Sat, Aug 9, 2014 at 5:16 PM, Faré fahree@gmail.com wrote:
Sorry, but doesn't it work to set *immutable-systems* AFTER you load everything?
No, it doesn't, because we never actually load anything via ASDF. Everything was preloaded into the built image, using monolithic-compile-bundles, sans actual ASDF.
I admit there not yet a test for this functionality in the asdf test suite; it may be that the functionality is buggy and/or its API suboptimal, and you're welcome to suggest patches and/or suggestions.
Ok, here is a patch (against 3.1.3.2 of master) which:
o Makes it check for sysdef-preloaded-system-search as well as system-registered-p, when doing sysdef-immutable-system-search and when checking for *immutable-systems* in find-system. (previously it was only checking system-registered-p).
o Adds a function asdf/find-system:register-immutable-system which adds the requested system to the *immutable-systems* as well as calls register-preloaded-system with it.
-- My Best,
Dave Cooper, Genworks Support
-- My Best,
Dave Cooper, Genworks Support david.cooper@genworks.com, dave.genworks.com(skype) USA: 248-327-3253(o), 1-248-330-2979(mobile) UK: 0191 645 1699