Re: New asdf version

Marco Baringer <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
Daniel Barlow <[email protected]> writes:

> 1) Whatever we choose will either be too heavyweight for authors of
> small tools to want to get entangled with, or too underfeatured (or
> just different) for authors of large systems to port their existing
> test suites to.

hmm, I hadn't really thought about what this would mean for authors of
already existing systems. However, i think there _is_ a desire to
write tests for systems (even small ones), just look at the number of
different test suites out there.
 
> 2) asdf is a system definition tool, not a testing framework.
> Incorporating someone else's testing framework into it just means
> headaches tracking version skew.  If we just tell people the test
> framework is available under separate cover, they have the same
> installing-multiple-packages problem 

granted, however i'd prefer that the maintainers of asdf had to deal
with that headache, rather than having every user of asdf systems have
to deal with it.

(i'm implicitly implying that whatever testing framework is
eventually "standardized" (assuming this happens) will be included in
the asdf distribution)
 
> We've been talking about putting RT (from the CMU AI repository) into
> SBCL contrib - it's already being used by a couple of the existing
> contrib packages - if we do, I rather expect it will turn into
> something of a de-facto standard at least for people using that
> implementation.

anything would be better than nothing as far as i'm concerned, and
even if i don't love RT i'd rather use RT and have the tests be run
than use my own testing framework and have the code go untested.
 
no matter what (if any) testing framework is chosen if someone does
want to write a test suite it should be easy to run it through
asdf. proposal:

If you have a test suite define a method on the generic function
asdf:test specialized to (eql <name of system>), ie:

(defmethod asdf:test ((dummy (eql :my-system)))
  (whatever)
  ...)

asdf:test-op will simply call the generic function asdf:test passing
the system name as the first arg, this method should print out a
message like "PASSED" or "FAILED", but isn't actually required to do
anything. If no such method is found asdf will do nothing.

(with-tangential
 
> Eventually I hope that someone will produce a lint-op operation or
> similar, which will assess asdf packages for good style and complain
> about this kind of stuff.  But assessing taste in Lisp programming is 
> probably an AI problem ...

well, the the code may be hard to check, but meeting certain ASDF
requirements shouldn't be: something like a simple
asdf-system-complaint-op which checks the existence of doc/index.html,
the existence of a package named <system-name>.system, a defsystem
form in the file <system-name>.asd, a directory with some tests,
etc. This op would tell you if the system is asdf complaint or not,
but not withstanding what this reports you'd still be able to
load/compile systems.
)

ps - if you downloaded 5am.tar.bz2 from my site you should get it
     again, the version up there had a small bug

-- 
-Marco
Ring the bells that still can ring.
Forget your perfect offering.
There is a crack in everything.
That's how the light gets in.
     -Leonard Cohen



-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open! 
Get cracking and register here for some mind boggling fun and 
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.