[comp.lang.lisp] Reply to Franz --> Common

kumard@sunybcs (Deepak Kumar) (09/15/87)

	
	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)))
	-- 
	kumard@gort.cs.buffalo.EDU
	kumard@sunybcs.BITNET
	kumard@sunybcs.UUCP
	Deepak Kumar, Dept. of CS, 226 Bell Hall, SUNY@Buffalo, NY 14260.
	

kumard@gort.cs.buffalo.EDU
kumard@sunybcs.BITNET
kumard@sunybcs.UUCP
Deepak Kumar, Dept. of CS, 226 Bell Hall, SUNY@Buffalo, NY 14260.