From: Deepak Kumar
Subject: Reply to Franz --> Common
Date:
Message-ID: <5222@sunybcs.UUCP>
We have been doing major conversion of our Franz software to
Common. We have a list of some common functions that need to be
changed. Also, be careful about the scoping (Franz has dynamic
scoping where as Common has static. However, by using the SPECIAL
declaration, one can have dynamic scoping in Common.
How fast you will be able to convert depends on how good your
Franz code is. If your code uses subtle Franz bindings/ lexpers/
dynamic variables/ closure, it will be a big task. Because of these
difficulties it is very hard to write a conversion program to
automate the translation. However, if the programs are large, it
is a good idea to write small tools like one that prints a calling
tree of the Franz program, to detect any dynamic variable refs.
Good Luck. Here's some conversions that we have managed to track:
probelm : setsyntax
problem : errset
problem : signal
<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>
Franz-lisp Common-lisp
---------- -----------
(add1 a) (+ a 1)
(ascii u) (int-char u)
(assoc a b) (assoc a b :test #'equal)
(assq a b) (assoc a b :test #'eq)
(concat a b) (intern (concatenate 'string
(prin1-to-string a)
(prin1-to-string b)))
(drain) (finish-output)
(dtpr u) (consp u)
(error 'error text') (error "error-text")
(filepos u) (file-position u)
(getd u) (symbol-function u)
(lineread u) (read-line u nil nil)
(makereadtable nil) (copy-readtable)
(mapc '(lambda ...)) (mapc #'(lambda...))
(member a b) (member a b :test #'equal)
(memq a b) (member a b :test #'eq)
(msg ...) (princ (format nil ...))
(nthelem n s) (nth (- n 1) s)
(openfile 'filename 'r) (open 'filename :direction :input)
(patom u) (princ u)
piport *standard-input*
poport *standard-output*
(plist a) (symbol-plist a)
(princ u) (princ u) t
(Princ u) (princ u)(terpri) t <=> (|myPrinc| u)
(print u) (prin1 u) nil
(Print u) (prin1 u)(terpri) nil <=> (|myPrint| u)
(probef u) (probe-file u)
$prpr pprint
(ptime) (list (get-internal-run-time)
(get-gc-run-time))
(putd 'cubed '(lambda (x) (setf (symbol-function 'cubed)
(times x x x))) '(lambda (x) (* x x x)))
(putprop a b c) (setf (get a b) c)
(read u) (read u nil nil)
(readc u) (read-char u)
(readlist <list> ) (read-from-string <string> )
(setplist a b) (setf (symbol-plist a) b)
(tyipeek u) (peek-char nil u nil -1)
(uconcat a b) (make-symbol (concatenate 'string
(prin1-to-string a)
(prin1-to-string b)))
--
······@gort.cs.buffalo.EDU
······@sunybcs.BITNET
······@sunybcs.UUCP
Deepak Kumar, Dept. of CS, 226 Bell Hall, ····@Buffalo, NY 14260.
······@gort.cs.buffalo.EDU
······@sunybcs.BITNET
······@sunybcs.UUCP
Deepak Kumar, Dept. of CS, 226 Bell Hall, ····@Buffalo, NY 14260.