neiman (12/14/82)
Some random complaints/flames about Franz Lisp.
Strings: Why doesn't Franz have a real string function, ie.
(string 'foo) ==> "foo"
(string '(a b c d) ==> "(a b c d)"
The current option is to use the get_pname function which
is probably horrendously inefficient and only works on atoms.
The reason why string functions are desirable is that strings are
a natural way to pass information to cfasled functions.
I'd also like to see the inverse function that would take a string
and return an s-expression. The only reasonable way to do this now
is to explode the string and feed it to readlist; again horrendously
inefficient.
I'd also like to see the copy function work for strings, passing
strings from C programs to Lisp is a ticklish business.
It would be nice if someone would write a C package which would provide
primitives for making the C interface easier, perhaps a list interpreter
for C which would allow C to map over lists and construct lists for
returning to Lisp. (As an amusing exercise, try writing a function
which returns an xy coordinate pair to Franz with just one function call.)
And while we're on a roll......
Why the brain-damaged port system in Franz? Ports are O.K. for people
who used to use them on Interlisp(?) but there should at least be some
hooks into the system used by EVERY other Un*x program. Shouldn't there?
Probably every serious Franz hacker (or is that an oxymoron?) has had to
delve into the source in order to implement primitives such as pipe and
pipe size.
Little known trivia about io documentation which may or may not have
been fixed in the 3.8 documentation.
Did you know that outfile does not have to wipe out the file?
You can specify append by using (outfile 'foo "a") but you have
to read the source to find out.
And last, but not least, why are Franz images so BIG? A lisp image
which does even moderately impressive things has to be 800K with fangs.
A few of these monsters on the disk and the system administrators start
to get very depressed....
But I do like Franz better than most of the other Lisps I've seen.
There's very little you can't do; it's just not always easy.
Just fling some random thoughts
into the ether,
Dan Neiman
ittvax!neimanslack (12/14/82)
The string problems of Franz mentioned in the preceding article have no comparison to the fact that Franz does not GC any strings. This means that strings cannot easily be used, even if one stays completely in LISP and avoids foreign functions. The above hack of exploding atoms and creating strings and other names causes untoward garbage in the core image (irrecoverable space). Tom Slack ittvax!slack