- Dec 18, 1997
- Dec 17, 1997
-
-
dtc authored
here and it can fill up with a big core.
-
dtc authored
type error.
-
dtc authored
blindly assuming its arguments were numeric-type-p and failed at higher safety levels (may have picked up junk for union and member types).
-
dtc authored
suggested by Raymond Toy.
-
dtc authored
appropriate type if there are none. Noted by Raymond Toy.
-
- Dec 16, 1997
-
-
dtc authored
elfun-derive-type-simple. Add separate derive-type optimisers for sqrt, and log, to handle a lower bound of zero correctly - was failing on for a lower bound of (-0.0).
-
dtc authored
mt19937 code), and noting that the author of the mt19937 algorithm gave us permission to place this implementation in the public domain.
-
dtc authored
changes, from Raymond Toy.
-
- Dec 15, 1997
- Dec 14, 1997
-
-
pw authored
The problem was(is) that the wrapper object needed to connect the Lisp type system to PCL classes doesn't exist until the forward-referenced-class is defined. At that time all the subclasses of it are initialized and wrappers attached. In the meantime, the actual forward referenced class is an instance of pcl::forward-referenced-class and any subclasses are pcl class instances with most slots nil. The fix herein arranges for UPDATE-LISP-CLASS-LAYOUT to also set the lisp:class-name and use (setf lisp:find-class) to connect the new layout to the Lisp class system. An undesired consequence of this is that DEFCLASS can't return a valid class object unless all superclasses are defined. This shouldn't be a real problem as the classes can't be used in the intermediate state, but the HyperSpec says DEFCLASS returns a class object. We return a valid class object or NIL.
-
dtc authored
-
dtc authored
prior commit, also make them a little smart about the handling of a lower limit of 0 as only a float could be -0.0.
-
dtc authored
compiler/srctran.lisp o Replaced all of the old optimizer routines with new ones that should work much better. Optimizers should now handle all union types and most member types. NOTE: for some reason a member type with both numbers and non-numbers isn't quite handled correctly. The optimizer is only passed the elements of the member type that are numbers; it never sees the non-number elements of the member type. o Fixed a bug in bound-func. Since all of the FP traps are turned off, we now need to check in case the function returns things like infinity and convert them to nil. o Fixed a bug in the computation of bounds for rem. Invalid intervals were sometimes returned. compiler/float-tran.lisp o Mods to handle the changes in srctran.lisp. o All of the optimizers (from propagate-float and propagate-fun) should now handle union types and member types. o Fixed a bug in the atan optimizer for two args with at least one of them not being a real. o For functions that return (or float (complex float)), we try to be more careful and compute the bounds for the float part, since we usually have them. Not sure what we gain, though. -=-=-=- Plus some further cleanups and fixes by Douglas Crosher: o Merge with the latest verion of float-trans: CIS transform; no result types on complex function transforms. o Can use a common scale-float-derive-type-aux function. o complex-derive-type-aux-2 was broken, needed updating to handle changes. o For sqrt and log return an (or float complex) type if the argument type includes 0.0 in its range as 0.0 = -0.0 so the argument may also be -0.0. o A number of the optimizers returned a complex float with invalid intervals just copied from the argument - strip the intervals from the returned type in these cases. o Note no expt optimiser.
-
dtc authored
checking-or-caching-function-list in dlisp2.lisp depends on macros in boot.lisp and braid.lisp which are not loaded until later. So move this code from dlisp2.lisp to a new file dlisp3.lisp so this can be compiled later. Leave this init. disabled, although some performance improvements have been seen by enabling it.
-
dtc authored
reduce compiler efficiency notes. Fix for the operations-per-second macro. Fix a few package problems; call to find-class needed to use pcl:find-class.
-
- Dec 13, 1997
- Dec 12, 1997
-
-
dtc authored
-
dtc authored
- For constant arguments, check the actual error after taking the value MOD the limit so that a wider range are acceptable. E.g. Can now inline (random (expt 2 32)) for which there is no error. - On the x86 port use the faster multiplication rather than division for the MOD calculation.
-
dtc authored
Slightly faster version of %random-double-float for the x86 port. Don't push :random-mt19937 onto *features* here.
-
- Dec 11, 1997
-
-
dtc authored
into 'x, which fails for (+ -0.0 0.0) => 0.0. Although (+ x -0.0) can be transformed to 'x. Also (expt x 0.0) was being transformed into 1 but not (expt x -0.0), both are now transformed into 1. But note that the result still isn't coerced to the correct type.
-
dtc authored
default for the x86 port.
-
dtc authored
random number generator due to Matsumoto and Nishimura - a little faster than the portable lisp code.
-
- Dec 07, 1997
- Dec 06, 1997
- Dec 05, 1997
-
-
dtc authored
Raymod Toy. Backout the calls to float-or-complex-type in the sin and cos derive-type optimizers, as these gave problems with union types.
-
dtc authored
arguments on the stack (those past the third argument) were not being defaulted to NIL due to a bug and just picked up whatever junk was on the stack. Re-write and enable the branch that handles 4 to 7 arguments because simpler code can be generated in this case.
-
dtc authored
the raw address before calling, saving two bytes. This was probably done in case the static function is a closure, but to work this would need to load EAX with the fdefn pointer and jump to the fdefn raw slot - none of the static functions are closures anyway.
-
dtc authored
to another.
-
dtc authored
the control stack in sub-access-debug-var-slot.
-
- Dec 04, 1997
-
-
dtc authored
With the :propagate-fun-type feature, modify defknowns for exp, sin, cos, atan, tan, sinh, cosh, asinh not to call result-type-float-contagion because each has its own optimizer now.
-
dtc authored
Fixed small bug in elfun-derive-type-1: When a complex number is passed in, we don't want to just copy that as the result. We want the same type of complex number but with no bounds included. New function float-or-complex-type to compute the union type (or float (complex float)) with the appropriate type of float and bounds, if needed. At the end compiler/float-tran.lisp, the derive-type optimizers for sin, cos, and tan, are never enabled, because of a misspelling of propagate-fun-type (was progagate-fun-type). Plus a few fixes for these. Added expt derive-type optimizer, should handle all cases. Added derive-type optimizers for conjugate and cis.
-