[Asdf-devel] ASDF

Robert P. Goldman rpgoldman at sift.info
Wed Aug 20 22:41:52 UTC 2014


Faré wrote:
> Dear Geoff,
> 
>>> If you are still interested in becoming ASDF maintainer, which I hope
>>> you are, or even just developer, here is a post linking to some
>>> suggested things to read about the state of ASDF:
>>> http://fare.livejournal.com/176185.html
>> I am still interested, even enthusiastic.  I will read that and see
>> how I feel with respect to time commitment and ambition.  That said,
>> I'm very much interested in taking part in ASDF, even if not in the
>> capacity of maintainer.
>>
> [NB: continuing this previously private mail thread in asdf-devel]
> 
> If you're looking at where the action is, there are two branches that
> still haven't been merged into master:
> * the minimakefile branch, where I translated all the release and test
> code from shell scripts to CL scripts, with various improvements,
> paving the way for possible future improvements. I believe this branch
> is ready, but Robert is just lacking time to fully assess it; also, he
> was hoping for Kambiz Darabi's promised use of git submodules to
> manage all the dependencies of ASDF — though I don't believe this
> branch makes the issue any worse.

I got sidetracked by some other bugs that were more important. Since
minimakefile is an alternative implementation for existing functionality
that works, rather than either new functionality, or a fix to broken
functionality, it's tended to get bumped off the priority queue.

I regard the git submodules as critical functionality for the
minimakefile branch.

I have found even the existing make functionality brittle and fussy,
because there is no good way to make sure that you have all the right
dependencies installed and up-to-date.  I suppose that we could make
more extensive use of ASDF's version dependencies to detect such
problems, but that would require more careful versioning of the lisp
systems that the builder employs.

Quicklisp apparently has versions that are ok for now, but I don't
regard that as an acceptable framework. It's not Xach's job to make sure
that the ASDF build and test system works, and what if some urgent patch
to a supporting system is needed to fix a bug manifested in ASDF's build?

ASDF needs a mechanism for people to easily get the correct versions of
the systems it requires for its build.

Originally Kambiz talked about setting up submodules to meet this
requirement. I'm not sure if he's still interested in doing that. If
not, I'll try to have a look at doing it myself.
> 
> * the syntax-control branch, where I introduce control for the
> *readtable* variable, allowing for safe compilation at a REPL (or
> other) where the *readtable* was overridden (to e.g. use
> fare-quasiquote or reader-interception, etc.) Unhappily, this branch
> requires more development: it seems that at least *package* needs the
> same treatment; and ideally all the variables of
> with-standard-io-syntax, though that might cause "interesting"
> backward compatibility issues. Also, Robert mentions that some large
> software he is using is somehow failing with this branch, for reasons
> he hasn't pinpointed. If and when this branch is merged into master
> (if ever), it deserves a version bump to 3.2 or some such. Even if the
> default changes to something safer than now, some backward
> compatibility mode is probably required to cater to the needs of all
> users.

Let's discuss this separately. It's a bigger topic.

In brief, though, this has not been a bug-driven development, so I have
treated it as less than high criticality.

> 
> Robert may have further comments or clarifications.

In general, I have taken a less heroic view of the role of ASDF
maintainership than Fare.  Fare's was the heroic age, when ASDF was
really a shambles, and would let its users down all the time: failing to
notice when upstream changes invalidated a build, failing to correctly
compute the set of operations needed, etc.  Fixing this, cleaning up the
object model, and getting ASDF to hot-upgrade itself gracefully, and
portably, was a Herculean effort.

I regard my charter much more modestly, and much more in line with the
term "maintainer." My job is to *maintain* the tool, fix bugs that are
encountered (typically when a corner case is newly visited), etc.  Mine
is the perspective of someone who has a very large pile of CL code to
keep running (portably), and for whom change comes at a high cost in
verification of existing code.

I'm not saying that I would keep useful new features out of ASDF, but I
do think that they have to be examined with a jaundiced eye, without
rushing, and with a preference for not breaking existing code, and not
complicating maintenance too much.

That is probably as close to a maintainer's manifesto as you will get
from me.

Best,
R




More information about the asdf-devel mailing list