Greetings!

Robert Boyer <[EMAIL PROTECTED]> writes:

> > Safety requires some sort of no-side-effects property to compiled functions
> 
> Fortran 66 tried to impose the notion that all functions had no side effects
> at all!  This permitted all sorts of compiler expression optimization, e.g.,
> commutativity and constant folding.  It is a mystery to me why Lisp has never
> had a (PROCLAIM '(NO-SIDE-EFFECTS foo)) declaration.  It clearly should, to
> get better compiled code, considering it is sooo... applicative, sometimes,
> anyway.

The compiler could detect and propagate this property.  Problems arise
with interpreted functions, and functions not called via their symbols
(where is the property to be stored?  Likely need a new C function
type).  Not to mention functions that are called in newly defun'ed
functions but are not yet defined, etc.

Are there any other side-effect producing primitives other than rplaca
rplacd and aset?

The primary benefit that would accrue would be list processing with
safety non-zero.  GCL has always blindly 'cdr'ed at safety 0.  Not
sure how valuable this would be in practice to real users.

Take care,

> 
> Concerning passing the return value via the register, I can remember that the
> first time I met rms, at MCC, in about 1986, he looked at some KCL output and
> said he could see how to make the then brand new GCC do a much better job for
> Lisp.  I suspect a better job, including better use of registers, is going to
> be needed if GCL is going to catch up with OCAML!  And the 64 bit X86 has so
> many extra registers, it is a natural thing to contemplate.
> 
> Bob
> 
> 
> 

-- 
Camm Maguire                                            [EMAIL PROTECTED]
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah


_______________________________________________
Gcl-devel mailing list
Gcl-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to