From: Skip Egdorf
Subject: run-time defclass
Date: 
Message-ID: <EGDORF.93Mar15094742@zaphod.lanl.gov>
In going over some old code, I find that the one place where I use
EVAL is in a form like

   (eval `(defclass ,name ,supers ,slots ...))

in order to create or redefine a class at runtime. I used this form
because, when the code was written, there was no agreed-upon MOPish
way to do this.

What is the current state of agreement regarding the proper forms to
use for run-time class definition portable over a range of existing
Common Lisps?

What is the current state of agreement regarding the proper forms to
use for run-time class redefinition portable over a range of existing
Common Lisps?

I support this in the following Lisps:

Lucid 4.0 and 4.1
Franz Allegro 4.1
CMU Lisp with PCL
Apple MCL-2.0
Symbolics CLOE 4.0
Franz Allegro CL/PC

Although information about other Lisps is welcome.

					Skip Egdorf
					···@lanl.gov

From: Tom Pole
Subject: Re: run-time defclass
Date: 
Message-ID: <1993Mar16.214148.24860@evb.com>
In article <····················@zaphod.lanl.gov> ······@zaphod.lanl.gov (Skip Egdorf) writes:
>In going over some old code, I find that the one place where I use
>EVAL is in a form like
>
>   (eval `(defclass ,name ,supers ,slots ...))
>
>in order to create or redefine a class at runtime. I used this form
>because, when the code was written, there was no agreed-upon MOPish
>way to do this.
>
>What is the current state of agreement regarding the proper forms to
>use for run-time class definition portable over a range of existing
>Common Lisps?
>
>What is the current state of agreement regarding the proper forms to
>use for run-time class redefinition portable over a range of existing
>Common Lisps?
>
>I support this in the following Lisps:
>
>Lucid 4.0 and 4.1
>Franz Allegro 4.1
>CMU Lisp with PCL
>Apple MCL-2.0
>Symbolics CLOE 4.0
>Franz Allegro CL/PC

With CL\PC, and I expect other CL's it is also important to keep in
mind distributability (to excuse the birth of a new and rather ugly
term). To distribute a CL\PC application without run time fees
it is not enough to avoid "eval", one can not use it at all.

I don't remember if the run-time distribution executable
versions of other commercial Lisps have the same restriction.

To be real-world about it, Lisp developers style standards should
also address such mercenary subjects as these.

	Thomas

>
>Although information about other Lisps is welcome.
>
>					Skip Egdorf
>					···@lanl.gov


-- 

Thomas Pole
From: Skip Egdorf
Subject: Re: run-time defclass
Date: 
Message-ID: <EGDORF.93Mar17095947@zaphod.lanl.gov>
In article <······················@evb.com> ····@evb.com (Tom Pole) writes:
>
>   In article <····················@zaphod.lanl.gov> ······@zaphod.lanl.gov (Skip Egdorf) writes:
>   >In going over some old code, I find that the one place where I use
>   >EVAL is in a form like
>   >
>   >   (eval `(defclass ,name ,supers ,slots ...))
>
>   With CL\PC, and I expect other CL's it is also important to keep in
>   mind distributability (to excuse the birth of a new and rather ugly
>   term). To distribute a CL\PC application without run time fees
>   it is not enough to avoid "eval", one can not use it at all.

This is exactly why I am fixing up this old code. I would like to be
able to distribute run-time versions of my stuff, and this is the
major impediment in both MCL and CL/PC.

					Skip Egdorf
					···@lanl.gov