On 11/21/10 3:42 AM, Pascal J. Bourguignon wrote:
Here is a patch to allow ecl compile abcl (it fails however).
I also had problems with ZEROP stumbling on NIL, so I rather brutishly replaced most of its occurences with EQUAL 0. run-shell-command will need some work...
Thanks for the starting point. The attached patch allows ecl-10.4.1 to build ABCL and has been included in [ABCL trunk as r13041][1].
I used EXT:SYSTEM instead of EXT:RUN-PROGRAM for the shell command interface. Although with this approach there doesn't seem to be a reliable way to redirect the output, at least it reliably returns the exit status correctly. In ecl-10.4.1 there's an undocumented :WAIT keyword to EXT:RUN-PROGRAM that allows one to read the output from the subprocess as it happens, but then doesn't seem to return the exit status from the command. Without the :WAIT nil versioncommand, I wasn't able to reliably read the output. One can see my commented out implementation on line 181ff. if one is interested in experimenting here.
I refactored the BUILD-ABCL approach a bit to give better diagnostics, and somewhat saner structure, but I wouldn't say I'm really satisfied. I expect there will be real problems working under the various Windows-based Lisps that I'm not currently in a great position to regression test. So, I'm not proposing to include support for ecl in abcl-0.23.0, preferring to get more time to test and season the implementation.
[1]: http://trac.common-lisp.net/armedbear/changeset/13041