[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue: MAKE-PACKAGE-USE-DEFAULT (split from PACKAGE-CLUTTER)



(I thought I'd mailed this, but apparently I left it pending while I rewrote
PACKAGE-CLUTTER. Since I'm hoping to split out the default from :USE from the
issue of what's actually in the Lisp package, I've put this under a different
Issue name.

- - - - - - - -

One of the complaints I hear frequently about Common Lisp is how non-portable it
is -- how people with Common Lisp code had to work really hard to port their
stuff from Vendor 1 to Vendor 2 even on the same machine, and that it must be
really not a very good language definition compared to C. I usually think this
is backward, and isn't CL great how it is even portable across machines with
different word sizes.

But then I get to issues like this, where if you write a simple program that
says
 (in-package "FROB") 
(defun draw-line (x y) ...)

that when they go to port it to Vendor y, they find out that their simple
program crashes the graphics package because draw-line now has the wrong
arguments. "I meant FROB:DRAW-LINE, not some LU-GRAPHICS:DRAW-LINE."?

I think this is the same argument that Kent made, so I won't belabor it. Maybe
the lines are drawn fairly clear. Its a tradeoff of encouraging portability vs
convenience for users of a specific implementation.