[Top][All Lists]

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

Re: [Gcl-devel] Happy!; ILISP+GCL; Building GCL

From: Camm Maguire
Subject: Re: [Gcl-devel] Happy!; ILISP+GCL; Building GCL
Date: 16 Apr 2004 14:49:13 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2


Chris Hall <address@hidden> writes:

> I am soooo happy!  I finally got GCL working under ILISP. :-D


> I had been unable to do this since I started using GCL - no evals from
> another buffer, etc.  Seems like ILISP couldn't find any of the
> symbols it had exported from its package.
> *Lots* of time fiddling, looking at ILISP .el and .lisp files,
> discovering that case is preserved in the string passed to
> 'find-symbol' and thus needs to be uppercase in order to work,
> searching the web, etc.
> (BTW, how do I access the current value of READTABLE-CASE in GCL?  For
> the life of me I can't figure out how.  I assume it is :upcase, since
> that is what SBCL, CLISP and CMUCL each show.)

We have not yet implemented READTABLE-CASE -- it is merely a symbol in
the common-lisp package.

> Then, when I logged into a friend's FreeBSD box - he used PORTS and
> got version 2.5.3 - and set things up in Emacs, the environment, etc.,
> everything worked great.  Hmmm.  So I checked *features*, and sure
> enough, my box's GCL didn't have :ANSI-CL, though his did.
> (list-all-packages) output was quite different between the machines,
> as well.

As others have already mentioned, you need ANSI to run ILISP.  

export GCL_ANSI=t

before starting emacs, at least on Debian.

> Apparently the 2.5 version from Debian stable is non-ANSI, and it
> seems that when I built 2.6.0cvs - which I did a few times - somehow I
> installed a non-ANSI build.  ./configure --enable-ansi && make && make
> install did the trick - and I am now on 2.6.1-36 :-).  Since the
> --enable-ansi appears to be non-default, maybe that is why Debian had
> this issue, too?

The Debian package build both images.  You can backport latest
versions of gcl and gclcvs from Debian unstable by installing the
build dependencies listed at the head of the debian/control file in
the source distribution, and then fakeroot apt-get -q -b source
{gcl,gclcvs}.  This will give you a Woody .deb of either branch with
both images therein.

> So I'm guessing that in order for GCL to work with ILISP, it has to be
> an ANSI-enabled GCL?


> For the sometimes-ANSI-sometimes-CLtL1 stuff to work (via the GCL_ANSI
> environment variable), am I correct in thinking that after 'make
> install' I need to manually copy the non-ANSI saved_gcl to
> $PREFIX/lib/unixport/?  Is there anything else I need to or should
> copy, before I rm the build directories?

I'd recommend building local .debs as above.  I might provide an
aptable location of backported .debs at some point if time permits.  

> As for source-level debugging - which I understand relies on GDB? -
> I'm guessing that I need to --enable-debug at build-time, too?  (It
> nearly doubles the size of saved_ansi_gcl!)

You can debug at the lisp level and/or at the C level.  The latter is
only possible if the image was configures with --enable-debug.  As it
makes things bigger, we've left it off by default.  Might want to
include a debugging image in the .deb at some point too.  

I'd like to work on debugging and profiling in 2.7.x.

> Does GCL load an init file, a la .cmucl-init.lisp?  I couldn't seem to
> find any mention in the info files.

As others have said, init.lsp.

> I think that I'm also having problems with another 'accessor' for a
> 'System class' in addition to READTABLE-CASE (thats what they are
> called in gcl.info) - LOGICAL-PATHNAME-TRANSLATIONS.
> When trying to load CLOCC's clocc.lisp (needed to bootstrap their
> stuff), here is what happens:
> ;-----------------------------------------------------
> >*default-pathname-defaults*
> #p"/home/username/lisp/clocc/"
> >(load "clocc.lisp")
> Loading /home/username/lisp/clocc/clocc.lisp
> Error in SETF [or a callee]: Cannot expand the SETF form
> Fast links are on: do (use-fast-links nil) for debugging
> Broken at SYSTEM::SETF-HELPER.  Type :H for Help.
>  1 (Continue) Retry loading file "clocc.lisp".
>  2 (Abort) Return to top level.
> dbl:>>
> ;-----------------------------------------------------
> Here is the form:
> I also tried with
> (setf (si::logical-pathname-translations "clocc")

GCL currently has no support for logical-pathname-translations.  2.7.0
has support for setf functions (i.e. (defun (setf foo) ...) which are
lacking in 2.6.1.  Both branches support user-defined setf expansions
via defsetf.

As others have said, hope to get to logical pathnames in 2.7.x.  Paul
has also indicated that the spec is very shaky here.  I'm not sure if
he has included tests in this area in his suite.  Such tests are
extremely helpful in implementing something new like this.

> *clocc-root* was set to "/home/username/lisp/clocc/"
> ;-----------------------------------------------------
> (setf (logical-pathname-translations "clocc")
>   `(("src;defsystem;*"
>      ,(concatenate 'string *clocc-root* "src/defsystem-3.x/*"))
>     ("src;defsystem;*.*"
>      ,(concatenate 'string *clocc-root* "src/defsystem-3.x/*.*"))
>     ("src;defsystem-3-x;*"
>      ,(concatenate 'string *clocc-root* "src/defsystem-3.x/*"))
>     ("src;defsystem-3-x;*.*"
>      ,(concatenate 'string *clocc-root* "src/defsystem-3.x/*.*"))
>      ("**;*" ,(concatenate 'string *clocc-root* "**/*"))
>     ("**;*.*" ,(concatenate 'string *clocc-root* "**/*.*"))))
> ;-----------------------------------------------------
> (Are they doing macro-y things here?)
> Wow!  Longer than I meant it to be.  Sorry.

Take care,

> Aloha and Mahalo,
> +Chris
> --
> Good judgment comes from experience. Experience comes from bad
> judgment.
> - Jim Horning
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gcl-devel

Camm Maguire                                            address@hidden
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]