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

porting guide lucid -> allegro ??




> Does anyone have a guide for porting common lisp code from lucid cl to
> allegro?  I'm doing a medium size system (qsim), and have already found two
> "gotchas":
> 
> 1 - in lucid, byte pointers (as used by ldp and dpb) are
> self-evaluating, while in allegro they are sexprs, and definitely not
> self-evaluating.  (By self-evaluating I mean they eval to themselves,
> as do numbers.)
> 
> 2 - in lucid, it is feasible to use strings as case tags - e.g.
>     (case "foo" ("foo 1)(otherwise 2))
> seems to give 1.  In allegro, case compares tags with eql, and only strings
> that are eq are eql.
> 
> DOes anyone have a longer list of such differences?  Thanks.

I just wanted to promote the idea of programmers somehow conveying their
experiences with porting between Lisps, I don't know in what forum.

I spent much of August converting my Franz Allegro-developed program to work
on Symbolics/Lucid/akcl, and there were bunches of gotchas, some (many) my
fault, some not.  Often they're just "features" that one compiler accepts but
another does not; I found the Allegro compiler more forgiving than the Lucid
one, which is both good and bad; the Allegro compiler allowed me to do a few
things that were semi-legal as I remember, but on the other hand I still have
one function that the Lucid type-checker balks at, and I don't know why
(sigh), it works on every other compiler I have access to.  And a few
problems were things ClTL just doesn't cover carefully, maybe with 4.0 of
Franz/Lucid it will be less of a problem.

I didn't write them down, because I didn't know what I would do with them
(they're probably compiled away in subconsciousness), but they sure would be
useful for people.  comp.lang.lisp???  I don't know.  If anyone has specific
differences for Lucid vs. Franz, I'd be interested as well.

Kevin Thompson
kthompso@ptolemy.arc.nasa.gov     NASA-Ames Research Center, Moffett Field, CA