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