Commit b264ebb9 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Incompatibilities

parent 66154aab
......@@ -779,13 +779,41 @@ that we had an enormous pressure to be backward compatible.
We could not have achieved this goal without a regression test suite,
and any failure we had in backward compatibility was first our failure
to consistently extend our test suite.
Compatibility issues: what we had to keep, what we had to break.
Testing helped figure it out.
\draft{Social issues: Mailing-list disputes --- what are points of contention?}
\draft{How we failed: incompatibility bugs in our FAQ.}
And we did fail to maintain compatibility in many ways,
sometimes intentionally, sometimes not.
This caused pain for all involved,
but it seems that ASDF 2 is welcome all in all.
Interestingly, all our incompatibilities are somehow
related to pathname handling.
Output pathname translations is now enabled by default,
which surprised a few users, and
broke a few systems that expected no such translation.
The compatibility mode with {\ABL} requires a minor adjustment,
and triggered a bug on some implementation.
We disabled evaluation of the \lisp{:pathname} keyword argument for systems,
to make it homogenous with the same keyword argument for other components,
which bit some users who switched to our new portable pathname designator syntax.
Our new portable way of specifying relative pathnames of components
was incompatible in a few corner cases for the sake of having
a simple, coherent specification; this broke some existing code.
Our recursive such feature for the source registry has a slight but noticeable
performance hit on some implementations, and
failed due to an implementation bug on one implementation.
Finally, the mechanism by which one customizes a system so that Lisp files
may use a different extension from the default \file{.lisp} has changed,
due to our computing component pathnames eagerly rather than lazily.
A few programs that relied on unexported internals of ASDF had to be fixed
when we changed the calling conventions of some functions;
but we consider we were in our right though,
as these interfaces hadn't been previously exported.
We do export them now, however, and promise that
we won't change them incompatibly anymore.
These incompatibilities were all easy to identify and fix,
but it must be noted that we sometime sacrificed backward compatibility
to a greater sanity.
\subsection{Portability}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment