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!neiman
slack (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