[asdf-install-devel] Portability/reliability patches
Dan Muller
pikdj2002 at sneakemail.com
Sat Jan 5 19:13:34 UTC 2008
Available to be pulled from
http://danm.homelinux.org/darcs/asdf-install/submitted
Most, but not all, are for the unit tests. Descriptions follow.
With these patches, I can run the unit tests cleanly with CLISP on
Windows, Lispworks on Windows, and CLISP on Debian. The only other
platform I'm trying to test right now is SBCL on Debian, and I'm
having some difficulties there, probably because it has its own
version of ASDF and ASDF-INSTALL preloaded.
---------------------------------------------------------------
Sat Dec 29 20:36:43 Eastern Standard Time 2007 Dan Muller<pikdj2002 at sneakemail.com>
* Untabified .asdf file, removed ref to deprecated.lisp.
Sat Dec 29 23:37:53 Eastern Standard Time 2007 Dan Muller<pikdj2002 at sneakemail.com>
* Fixes for gpg when running CLISP.
SHELL-COMMAND for Cygwin was badly broken, I didn't feel like fixing
it, and it differs from RETURN-OUTPUT-FROM-PROGRAM minimally in
purpose. So I changed GPG-RESULTS to call RETURN-OUTPUT-FROM-PROGRAM
instead of SHELL-COMMAND. This requires calling FIND-PROGRAM, since
RETURN-OUTPUT-FROM-PROGRAM doesn't guarantee running the program
through the shell, and thus needs the fully-qualified name of the
program to run.
Since FIND-PROGRAM was in installer.lisp and GPG-RESULTS was in
port.lisp, which goes against existing code dependencies, I moved
GPG-RESULTS (which is not platform specific) to installer.lisp.
Since FIND-PROGRAM needs an actual file name, I added
*GPG-PROGRAM*, and initialize it similarly to *GNU-TAR-PROGRAM*,
adding the .exe extension on Windows platforms. It might be
useful to document and export this at some point.
This change has the potential to cause breakage in some environments,
since *PROGRAM-DIRECTORIES* is initialized only to /bin and /usr/bin
on Unix systems. The SHELL-COMMAND implementations generally run the
requested activity via the shell, where the PATH might be different.
On the plus side, there is only one remaining place that uses
SHELL-COMMAND, namely SYMLINK-FILES, and that doesn't even care about
the command's output. Makes one think that SHELL-COMMAND might be able
to go away someday soon ... all eight versions of it.
Sun Dec 30 10:28:15 Eastern Standard Time 2007 Dan Muller<pikdj2002 at sneakemail.com>
* Added binding of ASDF::*DEFINED-SYSTEMS* to tests.
This is similar to code that I took out of ASDF-INSTALL itself, where
it was unnecessary (or so I still believe). Here in the test setup
it's an expedient method of isolating the tests' ASDF state from each
other and from the surrounding environment.
* Corrected "expected result" data for two tests.
When installing MOPTILITIES, we also expect MOPTILITIES-TEST,
CLOSER-MOP, LIFT, LIFT-TEST, and LW-COMPAT to be installed. The first
of these was already being tested for. The last is omitted if we're
testing under Lispworks.
These mistakes were discovered after applying the previous patch that
binds ASDF::*DEFINED-SYSTEMS*.
Sat Jan 5 11:36:23 Eastern Standard Time 2008 Dan Muller <pikdj2002 at sneakemail.com>
* Resolving conflicts with Gary's changes.
Sat Jan 5 13:57:18 Eastern Standard Time 2008 Dan Muller <pikdj2002 at sneakemail.com>
* Unit test portability & reliability improvements.
Adjusted eval-time *WORKING-DIRECTORY*. Needed w/ CLISP.
Use external "rm" to set up working directory.
Disabled one test due to failure on CLISP. See comments in code.
Adjusted expected results in numerous places. Binding
ASDF::*DEFINED-SYSTEMS* forces each test's results to be
independent both of other tests and of the surrounding
environment.
Adjusted "two words" to be under the "scratch" directory. Removed
directory cleanup in suite space-in-working-directory, since it's
then no longer needed.
Changed the way *WORKING-DIRECTORY* is initialized in that same
suite, since binding ASDF::*DEFINED-SYSTEMS* makes
ASDF:SYSTEM-RELATIVE-PATHNAME inappropriate at that point.
--
Dan Muller
More information about the asdf-install-devel
mailing list