Re: undefined (asdf:system-license on clisp+cywgin



Marco Antoniotti <marcoxa@xxxxxxxxx> writes:

On Mar 14, 10:07 am, Mirko.Vuko...@xxxxxxxxx wrote:
Hi,

I am trying to load nlisp on my clisp+cygwin insallation, and it is
breaking on the undefined function asdf:system-license.

(It -- the nlisp package -- is loading flawlessly on linux+sbcl)

I looked in asdf.lisp, and I see that system-license is an exported
function, but I don't see it defined anywhere.  Same with a few
others, like unix-dso for example.

I am further puzzled by the hash marks in the package definition:
(defpackage #:asdf
  (:export #:defsystem #:oos #:operate #:find-system #:run-shell-
command
           #:system-definition-pathname #:find-component ; miscellaneous
           #:hyperdocumentation #:hyperdoc

I guess that I am missing something, but what?

thank you,

Mirko

They are a unaesthetic consequence of the introduction of case
sensitivity in the reader by Franz Allegro.

No, they're not.

Defpackage accepts "string designators" in various places, which
allows for strings, symbols (for their names), and even single
characters. It is true that defpackage forms operate better in
Franz's case-sensitive lisp when the string designators are symbols,
but that is not the reason why the hash marks are there; the form
could just as easily have been:

(defpackage :asdf
(:export :defsystem :oos :operate :find-system ...

So now let's talk about the _real_ reason why the hash marks are
there: The hash-mark versions of the symbols are not interned, but
the ones without hash-marks are. This means that when the compiling
lisp compiles the file and loads it as well, your lisp is left with
a whole lot of keywords interned that would not have had to be there,
like :defsystem, :oos, :operate, etc. This is in _addition_ to the
actual symbols that were being exported: 'asdf:defsystem, 'asdf:oos,
etc. On the other hand, the uninterned symbols are quietly gc'd away,
and your lisp environment is kept clean.

Mitigating this, on the other hand, is the fact that many CL
implementations do not save the original forms in compiled code, so
the keywords are treated _as_ _if_ they had been uninterned symbols.
So if it is your habit to compile files and then load them into
various lisps (other than the compiling lisp), or in other words if
you tend to compile a system with a compiling lisp and then build it
by loading up the fasl files, your building lisp will not get
contaminated with the keywords, and you can go ahead and use the
keyword form instead.

--
Duane Rettig duane@xxxxxxxxx Franz Inc. http://www.franz.com/
555 12th St., Suite 1450 http://www.555citycenter.com/
Oakland, Ca. 94607 Phone: (510) 452-2000; Fax: (510) 452-0182
.



Relevant Pages

  • Re: `Standalone Executables
    ... the details of compiling, loading, and running Lisp. ... from the shell prompt, make a directory to keep super-frob ... instructions on the webpage are literal instructions. ...
    (comp.lang.lisp)
  • Re: best environment for learning Lisp?
    ... Just type in your Lisp prompt: ... ; compiling ... have figured out how to compile, load, and run a script in SLIME. ... sort of programming too, as you have found out, but you are missing out ...
    (comp.lang.lisp)
  • Re: fasl and lisp image
    ... fundamental difference between the lisp image and the set of .fasl ... need anything more than a remembered set of fasl to load (both ... When I work with a Lisp machine, ... When I later restart the Lisp, ...
    (comp.lang.lisp)
  • Re: DBMS and lisp, etc.
    ... boundaries in your system even if your crude backing store does not actually ... to toss out a real benefit of the DBMS and design around it at this point. ... structure and the simply "print" to save it, and then "read" to load it. ... you may want to look into some implementation specific bits of your Lisp, ...
    (comp.lang.lisp)
  • Re: undefined (asdf:system-license on clisp+cywgin
    ... Franz's case-sensitive lisp when the string designators are symbols, ...  This means that when the compiling ... names into strings, so that even if a source file has random symbols ... whatever readtable-case translation you might have in effect, ...
    (comp.lang.lisp)