Daniel Barlow | 28 Nov 2003 19:22

Re: new ops

"Walter C. Pelissero" <walter <at> pelissero.de> writes:

> To play a bit with ASDF I've been writing a couple of operations that
> I find fairly useful, so I thought about sharing them.

Looks interesting and potentially useful to someone. 

I won't be merging these into asdf itself, for a few reasons.

- the licence problem that Marco pointed out (asdf currently uses the
  MIT "nearly Public Domain" licence, and I'm unwilling to change it
  to anything more complicated)

- the code that you've lifted is in itself a portability nightmare.  I
  don't want asdf to follow the #+every line #+has feature
  #+conditionals track that mk-defsystem 3 ended up on: I wrote it
  expressly to get away from that

- asdf is portable to operating systems which don't (usually) have
  tar and wc, where these tools would be inappropriate

Don't take this as a rejection, though, please.  What I suggest you do
is package them separately.  I'd recommend 

(i) that you don't add to the :asdf package - create your own package
that uses it.  If there are asdf internal symbols you need to access,
I'm very happy to talk about ways of exporting that functionality.

(ii) as far as I can see you're only using the clocc stuff to set the
current directory (and in a fashion which won't play nice with
threads, too).  I would suggest that instead you

(run-shell-command "cd ~A && tar ...."
  (namestring (pathname-sans-name+type whatever))
   ...)

and avoid all that.  I only glanced at make-relative-to-common-root,
but it looks like you could write a lot of that using the standard
enough-namestring function.

(iii) make it all into an asdf-installable package and then the people
with an asdf-install port (admittedly only sbcl users right now) can
obtain it with little more effort than they expend on getting asdf itself

Incidentally, your supposition about input-files suggests that the
documentation is less than great.  The input files for an operation
are not always the source files  - for example, the input to a load-op
are the fasl files generated by the compile-op it depends on.

-dan

--

-- 

 http://web.metacircles.com/ - Open Source software development and support

Gmane