[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gcl-devel] address@hidden: Re: lstat]
From: |
Camm Maguire |
Subject: |
Re: [Gcl-devel] address@hidden: Re: lstat] |
Date: |
Sat, 02 Nov 2013 09:56:31 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
Greetings!
Short query -- does this work?
(let ((f #'in-package))
(defmacro in-package (s &rest r) `(funcall f ',s ,@r)))
More detail:
ansi in-package differs from traditional gcl in-package in another way
as well -- the latter will silently create missing packages. I think
there is code about that relies on this. The above is a half-fix which
might be good enough for 2.6.10. The master git branch has a fully
compliant in-package which we could backport, but I expect breakage I'd
prefer to avoid at this point.
Take care,
Matt Kaufmann <address@hidden> writes:
> Hi, Camm --
>
> Thanks for thos enhancements and for installing the latest GCL
> 2.6.10pre at UT CS. I've started a regression and so far have the
> following to report.
>
> Evaluation of the form (cl:in-package #:cl-user) fails in ANSI GCL
> (see below). But it seems to succeed in other Lisps I tried: Allegro
> CL, CMUCL, SBCL, LispWorks, CCL, and CLISP. I've never seen this sort
> of notation for an in-package form, so I don't understand it; but it
> comes from a file from ACL2's regression (using USE_QUICKLISP=1 with
> the "make" command), books/centaur/quicklisp/quicklisp.lisp, that I
> think Jared arranged to be downloaded from
> http://www.quicklisp.org/beta/.
>
> Here's a log from Allegro CL:
>
> CL-USER(1): (cl:in-package #:cl-user)
> #<The COMMON-LISP-USER package>
> CL-USER(2):
>
> Here's a log from GCL:
>
> address@hidden:~/temp$ export GCL_ANSI=t ; /p/bin/gcl-2.6.10pre
> GCL (GNU Common Lisp) 2.6.10 ANSI Nov 1 2013 18:51:26
> Source License: LGPL(gcl,gmp), GPL(unexec,bfd,xgcl)
> Binary License: GPL due to GPL'ed components: (XGCL READLINE UNEXEC)
> Modifications of this banner must retain notice of a compatible license
> Dedicated to the memory of W. Schelter
>
> Use (help) to get some basic information on how to use GCL.
> Temporary directory for compiler files set to /tmp/
>
>>(cl:in-package #:cl-user)
>
> Error in EVAL [or a callee]: The variable #:CL-USER is unbound.
>
> Fast links are on: do (use-fast-links nil) for debugging
> Broken at EVAL. Type :H for Help.
> 1 (Abort) Return to top level.
> dbl:>>
>
> -- Matt
> From: Camm Maguire <address@hidden>
> Cc: address@hidden, address@hidden
> Date: Fri, 01 Nov 2013 21:08:22 -0400
>
> Greetings!
>
> OK, I've pushed wild-pathname-p and ensure-directories-exist to
> 2.6.10pre, and rebuilt at ut. I've tested the make DOC -- it works with
> the ansi build, as #'condition is also needed, but of course ansi is
> stil slower.
>
> Please let me know if problems persist.
>
> Take care,
>
> Matt Kaufmann <address@hidden> writes:
>
> > Hi, Camm --
> >
> > I don't know much about the problem (it involves books that Jared
> > knows about, so I'm copying him here), but after I submitted your Lisp
> > definition, that seemed to get me past the error (even without the
> > pathname.d fix) but got me this new error, which again points to a
> > function from the standard that is missing in GCL:
> >
> > Error: ENSURE-DIRECTORIES-EXIST is invalid as a function.
> >
> > Rather than continually iterate, and so that you can debug further
> > problems, I think I should just tell you how to recreate the problem
> > yourself.
> >
> > First, check out the current snapshopt for ACL2 plus books, using this
> > command (copied from https://code.google.com/p/acl2-devel/), replacing
> > "acl2-devel" by a new directory name of your choice:
> >
> > svn checkout http://acl2-devel.googlecode.com/svn/trunk acl2-devel
> >
> > Then build ACL2 in the usual way.
> >
> > Then:
> >
> > make DOC ACL2=<path_to_acl2>
> >
> > This should get you to the failure; see
> > books/system/doc/acl2-manual.cert.out. If you want instructions on
> > how to run interactively (so that you can redefine, use the debugger,
> > etc.), let me know.
> >
> > -- Matt
> > From: Camm Maguire <address@hidden>
> > Cc: address@hidden
> > Date: Thu, 31 Oct 2013 15:11:50 -0400
> >
> > Greetings!
> >
> > Matt Kaufmann <address@hidden> writes:
> >
> > > P.S. By the way, the function WILD-PATHNAME-P doesn't appear to be
> > > defined in GCL 2.6.10pre, even the ANSI version, even though it's in
> > > the Common Lisp standard. Maybe this isn't terribly important,
> though
> > > it appears to be at least one reason that one of the ACL2 books
> isn't
> > > certified using GCL, which in turn makes it impossible to build the
> > > ACL2 manual. I can probably work around this by excluding some
> books
> > > from GCL-based regressions.
> >
> > Does this work for you?
> >
> > #.(let ((g '(:host :device :directory :name :type :version)))
> > `(defun wild-pathname-p (p &optional f)
> > (declare (optimize (safety 1)))
> > (check-type p pathname)
> > (check-type f (or null (member ,@g)))
> > (case f
> > ((nil) (reduce (lambda (y x) (or y (wild-pathname-p p x))) ',g
> :initial-value nil))
> > ,@(mapcar (lambda (x &aux (f (intern (concatenate 'string
> "PATHNAME-" (string-upcase x)))))
> > `(,x ,(if (eq x :directory) `(when (member :wild (,f
> p)) t) `(eq :wild (,f p))))) g))))
> >
> > It also needs the following patch (for directories only) to
> pathname.d,
> > which I might consider for 2.6.10:
> >
> > diff --git INDEX:/gcl/o/pathname.d WORKDIR:/gcl/o/pathname.d
> > index ef4a848..27466e0 100755
> > --- INDEX:/gcl/o/pathname.d
> > +++ WORKDIR:/gcl/o/pathname.d
> > @@ -110,6 +110,8 @@ int start, end, *ep;
> > #ifdef UNIX
> > if (i-j == 1 && s->st.st_self[j] == '.') {
> > vs_push(sKcurrent);
> > + } else if (i-j == 1 && s->st.st_self[j] == '*')
> {
> > + vs_push(sKwild);
> > } else if (i-j==2 && s->st.st_self[j]=='.' &&
> s->st.st_self[j+1]=='.') {
> > vs_push(sKparent);
> > } else {
> > @@ -335,6 +337,10 @@ D: l = x->pn.pn_directory;
> > token->st.st_self[i++] = '.';
> > token->st.st_self[i++] = '/';
> > continue;
> > + } else if (y == sKwild) {
> > + token->st.st_self[i++] = '*';
> > + token->st.st_self[i++] = '/';
> > + continue;
> > } else if (y == sKparent) {
> > token->st.st_self[i++] = '.';
> > token->st.st_self[i++] = '.';
> >
> >
> > Take care,
> > --
> > Camm Maguire address@hidden
> >
> ==========================================================================
> > "The earth is but one country, and mankind its citizens." --
> Baha'u'llah
> >
> >
> >
> >
> >
>
> --
> Camm Maguire address@hidden
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
>
>
>
>
>
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah
- Re: [Gcl-devel] address@hidden: Re: lstat],
Camm Maguire <=
- Message not available