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

Conversion to ANSI Common Lisp via FUTURE-COMMON-LISP



I am about to convert our group's software to CLOS, and would like to
convert to ANSI Common Lisp at the same time, at least to the extent of
its implementation in FUTURE-COMMON-LISP in Genera 8.0.1.  That is, I
would USE-PACKAGE both SCL and FUTURE-COMMON-LISP but prefer the latter
in symbol conflicts.  Are people using FUTURE-COMMON-LISP extensively
yet?  What pitfalls should I watch out for?  Offhand, the following seem
to be the major points of caution:

	SETF -- LISP:SETF and FUTURE-COMMON-LISP:SETF seem to invoke
		each other's SETF functions as necessary.

	LOOP -- I have to replace Symbolics' old iteration forms such as

		(LOOP :FOR I :BEING :EACH :ARRAY-ELEMENT :OF A :COLLECT I)

		with new ANSI formats such as

		(LOOP :FOR I :ACROSS A :COLLECT I)

	IN-PACKAGE -- Its argument should no longer be quoted.  If I
		use a keyword as argument, I remain compatible with
		LISP:IN-PACKAGE as well.

	LISP package -- I may want to replace LISP with CL (i.e., in
		cases where I am shadowing a standard symbol but
		want to refer to it).

	DEFSTRUCT -- I assume that FUTURE-COMMON-LISP:DEFSTRUCT is
		upward-compatible with LISP:DEFSTRUCT, including its
		physical representation of structures.

	File syntax -- I should really change every file attribute line
		from Common-Lisp to ANSI-Common-Lisp, especially if I
		want to refer to FUTURE-COMMON-LISP as CL.

	#S dispatch character -- It cannot yet be applied to structure
		types defined by FUTURE-COMMON-LISP:DEFSTRUCT, even
		when the file's syntax is ANSI-Common-Lisp.  I need to
		replace this usage with calls to the appropriate
		MAKE-1type0 function.

	INTERACTIVE-STREAM-P and DELETE-PACKAGE -- FUTURE-COMMON-LISP
		exports these but doesn't define them yet.

Does anyone have any others?  Am I acting prematurely to attempt this at
all?  Are some implemented features of FUTURE-COMMON-LISP known to be
buggy?


	Lawrence G. Mayka
	AT&T Bell Laboratories
	lgm@iexist.att.com

Standard disclaimer.