From: Pascal J.B. <pj...@in...> - 2004-02-10 09:10:12
|
While compiling lisa, I get this error: *** - MAKE-PATHNAME: illegal :DIRECTORY argument (:RELATIVE :LISA) which occurs in defsystem-3.x/defsystem.lisp (cvs 1.66): (defun compute-system-path (module-name definition-pname) (let* ((file-pathname (make-pathname :name (etypecase module-name (symbol (string-downcase (string module-name))) (string module-name)) :type *system-extension*)) (lib-file-pathname (make-pathname :directory (list :relative module-name) ;;<--- here :name (etypecase module-name (symbol (string-downcase (string module-name))) (string module-name)) :type *system-extension*)) ) valid pathname directory n. a string, a list of strings, nil, :wild, :unspecific, or some other object defined by the implementation to be a valid directory component. It seems that module-names are expected to possibly be keywords, therefore I'd suggest to use string here: < (make-pathname :directory (list :relative module-name) ;;<--- here > (make-pathname :directory (list :relative (string module-name)) -- __Pascal_Bourguignon__ http://www.informatimago.com/ There is no worse tyranny than to force a man to pay for what he doesn't want merely because you think it would be good for him.--Robert Heinlein http://www.theadvocates.org/ |
From: Marco A. <ma...@cs...> - 2004-02-10 15:32:00
|
Thanks for the report. It was fixed in 1.67. However, on the side, I have noted that there is an abuse of keywords in the CL practice for things like this (and package naming). My diagnosis goes back to THE BIG MISTAKE (with the power of hindsight :) ) made when CL was made uppercase default, and to the kludgy and non backward compatible hack by Franz. Using strings is not a bad idea, especially when you need to name things that eventually become part of a pathname. Cheers marco On Tuesday, Feb 10, 2004, at 04:11 America/New_York, Pascal J.Bourguignon wrote: > > While compiling lisa, I get this error: > *** - MAKE-PATHNAME: illegal :DIRECTORY argument (:RELATIVE :LISA) > > which occurs in defsystem-3.x/defsystem.lisp (cvs 1.66): > > (defun compute-system-path (module-name definition-pname) > (let* ((file-pathname > (make-pathname :name (etypecase module-name > (symbol (string-downcase > (string module-name))) > (string module-name)) > :type *system-extension*)) > (lib-file-pathname > (make-pathname :directory (list :relative module-name) ;;<--- here > :name (etypecase module-name > (symbol (string-downcase > (string module-name))) > (string module-name)) > :type *system-extension*)) > ) > > valid pathname directory n. a string, a list of strings, nil, :wild, > :unspecific, or some other object defined by the implementation to be > a valid directory component. > > > It seems that module-names are expected to possibly be keywords, > therefore I'd suggest to use string here: > > < (make-pathname :directory (list :relative module-name) ;;<--- here >> (make-pathname :directory (list :relative (string module-name)) > > > -- > __Pascal_Bourguignon__ > http://www.informatimago.com/ > There is no worse tyranny than to force a man to pay for what he > doesn't > want merely because you think it would be good for him.--Robert > Heinlein > http://www.theadvocates.org/ > > > ------------------------------------------------------- > The SF.Net email is sponsored by EclipseCon 2004 > Premiere Conference on Open Tools Development and Integration > See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. > http://www.eclipsecon.org/osdn > _______________________________________________ > clocc-list mailing list > clo...@li... > https://lists.sourceforge.net/lists/listinfo/clocc-list > -- Marco Antoniotti http://bioinformatics.nyu.edu NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A. |
From: Drew M. <dre...@ya...> - 2004-02-11 23:35:07
|
> ... THE BIG MISTAKE (with the power of hindsight :) > ) made when CL was made uppercase default, and to the kludgy and non > backward compatible hack by Franz. Non-backward-compatible, yes. Kludgy, no. They've just undone the big mistake. It is not hard to write one's code so it runs in both Ascii mode and Franz's "modern" mode. I wish CLOCC code had this feature, but I recognize that my wish is unlikely to be granted. The problem with modern mode is that if you actually use it you have a big problem importing someone else's code. Nonetheless, the "big mistake" is so big and annoying that I'm willing to go through some amount of hassle to undo it. -- -- Drew McDermott Yale Computer Science Department |
From: Marco A. <ma...@cs...> - 2004-02-11 23:47:07
|
On Wednesday, Feb 11, 2004, at 18:34 America/New_York, Drew McDermott wrote: > >> ... THE BIG MISTAKE (with the power of hindsight :) >> ) made when CL was made uppercase default, and to the kludgy and non >> backward compatible hack by Franz. > > Non-backward-compatible, yes. Kludgy, no. They've just undone the > big mistake. It is not hard to write one's code so it runs in both > Ascii mode and Franz's "modern" mode. I wish CLOCC code had this > feature, but I recognize that my wish is unlikely to be granted. > > The problem with modern mode is that if you actually use it you have a > big problem importing someone else's code. Nonetheless, the "big > mistake" is so big and annoying that I'm willing to go through some > amount of hassle to undo it. Well, yes. But there are other ways to fix the problem in a far less intrusive and much more portable way. The crux of the problem is FIND-SYMBOL. You need to change FIND-SYMBOL and to attach a case-sensitive flag to each package. It ain't perfect, but it's much better than any other solution. Franz did not do that and failed to propose something acceptable. Maybe not kludgy, but unacceptable yes. Having said that I have often wondered what was in the mind of the people doing the ANSI when they decided on making CL uppercasing. It will never stop from baffling me. Cheers marco -- Marco Antoniotti http://bioinformatics.nyu.edu NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A. |
From: Sam S. <sd...@gn...> - 2004-02-12 13:48:57
|
> * Marco Antoniotti <zn...@pf...h.rqh> [2004-02-11 18:46:14 -0500]: > > The crux of the problem is FIND-SYMBOL. You need to change > FIND-SYMBOL and to attach a case-sensitive flag to each package. It > ain't perfect, but it's much better than any other solution. <http://clisp.cons.org/impnotes/pack-dict.html>: MAKE-PACKAGE accepts a keyword argument :CASE-SENSITIVE. Similarly, DEFPACKAGE accepts an option :CASE-SENSITIVE. When its value is non-NIL, the package will be case sensitive, i.e., the reader will not case-convert symbol names before looking them up or creating them in this package. The package names are still subject to (READTABLE-CASE *READTABLE*), though. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.camera.org> <http://www.iris.org.il> <http://www.memri.org/> <http://www.mideasttruth.com/> <http://www.honestreporting.com> Lisp: its not just for geniuses anymore. |
From: Marco A. <ma...@cs...> - 2004-02-12 14:52:53
|
Yes. I know and I did take into account when writing up the thing. CLisp is the closest to my proposal. Marco On Thursday, Feb 12, 2004, at 08:47 America/New_York, Sam Steingold wrote: >> * Marco Antoniotti <zn...@pf...h.rqh> [2004-02-11 18:46:14 -0500]: >> >> The crux of the problem is FIND-SYMBOL. You need to change >> FIND-SYMBOL and to attach a case-sensitive flag to each package. It >> ain't perfect, but it's much better than any other solution. > > <http://clisp.cons.org/impnotes/pack-dict.html>: > MAKE-PACKAGE accepts a keyword argument :CASE-SENSITIVE. Similarly, > DEFPACKAGE accepts an option :CASE-SENSITIVE. When its value is > non-NIL, > the package will be case sensitive, i.e., the reader will not > case-convert symbol names before looking them up or creating them in > this package. The package names are still subject to (READTABLE-CASE > *READTABLE*), though. > > -- > Sam Steingold (http://www.podval.org/~sds) running w2k > <http://www.camera.org> <http://www.iris.org.il> > <http://www.memri.org/> > <http://www.mideasttruth.com/> <http://www.honestreporting.com> > Lisp: its not just for geniuses anymore. > -- Marco Antoniotti http://bioinformatics.nyu.edu NYU Courant Bioinformatics Group tel. +1 - 212 - 998 3488 715 Broadway 10th FL fax. +1 - 212 - 998 3484 New York, NY, 10003, U.S.A. |