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

Re: time of evaluation



This discussion is interesting, in that, it parallels some of
our thinking on modifications to the compile time environment
to support CommonObjects object oriented programming. A
proposed addition to Common Lisp which we have suggested
is a compiler dictionary (essentially, a hash table) which
gets created during file compilation and into which defstructs
and define-types (which create CommonObjects types) can enter
information which needs to be discarded after the file is 
compiled. The problems with "really" defining a type or
defstruct at compile time not only have to do with the
compiler but also with the environment in general. Consider
development in an environment which uses types or defstructs
in its implementation. If changes are made to the types or
defstructs, one doesn't want those changes to be propogated
to the environment during the debugging and development
phase, otherwise the entire environment may fall apart. 
Our current version of CommonObjects uses a highly implementation
dependent way of getting around these problems, which works
about 99% of the time. It is inherently not portable, however,
because it depends on being able to tell when a file is
being compiled, and, according to the definition of compile-file,
this information is not made available. A similar problem occurs
with defstruct.

		Jim Kempf	kempf@hplabs