Hey,
Here are some fixes for a few problems with bundles (especially making a prebuilt system library a requirement – i.e sb-bsd-sockets or asdf) and cleaned up the code a bit. Moreover I've enabled load-bundle-op as a default load operation for ECL and its descendants and removed a deprecated function `bundle-system'.
Also the "deprecation" comment is removed from `make-build' – IMO it's totally legit function for ASDF and is part of the ECL build system (thereof frequently used).
Also I've found a problem with monolithic-dll-op (test-bundle.script) when running tests the second time, but it's not a regression (it was present before this patches). I'll probably investigate it soon.
Patches attached below (inlined).
Best regards, Daniel
Thanks a lot! Applied (with tiny modifications) as 3.1.7.12.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Love doesn't scale. — Eric S. Raymond
On Fri, Sep 9, 2016 at 10:59 AM, Daniel Kochmański daniel@turtleware.eu wrote:
Hey,
Here are some fixes for a few problems with bundles (especially making a prebuilt system library a requirement – i.e sb-bsd-sockets or asdf) and cleaned up the code a bit. Moreover I've enabled load-bundle-op as a default load operation for ECL and its descendants and removed a deprecated function `bundle-system'.
Also the "deprecation" comment is removed from `make-build' – IMO it's totally legit function for ASDF and is part of the ECL build system (thereof frequently used).
Also I've found a problem with monolithic-dll-op (test-bundle.script) when running tests the second time, but it's not a regression (it was present before this patches). I'll probably investigate it soon.
Patches attached below (inlined).
Best regards, Daniel
-- Daniel Kochmański ;; aka jackdaniel | Poznań, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu
"Be the change that you wish to see in the world." - Mahatma Gandhi
Dear Daniel,
while you're on bundle operations for ECL, prologue-code and epilogue-code must be removed from the operation (and thus from make-build) and moved to the system definition (where it is already accepted since ASDF 3 pre-releases).
ASDF does NOT properly handle operations with initargs, and is unlikely to without major refactoring, potentially incompatible changes, size increase and slow down.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org If you could ask a unique question to a computer during a Turing test, what would you ask? — Douglas Hofstadter, Metamagical Themas
Actually, once you move the prologue-code, epilogue-code, etc., to the system definition where it belongs (possibly a secondary system), then nothing should be in the operation, and make-build becomes non-sensical. Just use asdf:make on the system that has the suitable build-operation.
Just because make-build is documented in the ECL manual doesn't make it sensical. It needs to be deleted, and the ECL manual amended.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org You think minimum height restrictions make children taller? — Luke McCormick, regarding minimum wage restrictions
Dear Faré,
thanks for reviewing and merging these patches. I hope that the next release of ASDF will be shipped soon, because I'm planning a next ECL release weeks from now (I wish I'll be able to do that before the end of September) and this change is something I want to incorporate there.
Faré writes:
Actually, once you move the prologue-code, epilogue-code, etc., to the system definition where it belongs (possibly a secondary system), then nothing should be in the operation, and make-build becomes non-sensical. Just use asdf:make on the system that has the suitable build-operation.
It depends on how you perceive prologue/epilogue-code – if you treat is as part of the system defined then you are right, but if you treat it as a fixture for the system build, then it is something very sane to me.
(one such example would be creating builds with si:top-level or a swank server for debug, and without it for release as ext:quit – it's not much a part of the system in that case.
Just because make-build is documented in the ECL manual doesn't make it sensical. It needs to be deleted, and the ECL manual amended.
As I've already mentioned, it's part of the supported API and people rely on that. This, plus the fact that it works reliably makes it a bad candidate for deprecation to me.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org You think minimum height restrictions make children taller? — Luke McCormick, regarding minimum wage restrictions
Best regards, Daniel
P.S. as Elias suggested, I'll try next merge requests over the gitlab platform. I'd suggest updating the documentation to refelct this (very sane) preference.