- Aug 29, 2014
-
-
Raymond Toy authored
an arrest-reason, destroy-process doesn't take effect. Destroy-process sets process-state to :active to try to ensure it gets the interrupt, but it also needs to clear process-%arrest-reasons and push something on process-%run-reasons. Patch from Paul Foley.
-
Raymond Toy authored
All the tests should pass now.
-
- Aug 28, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
selected set instead of all tests.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
-
- Aug 27, 2014
-
-
Raymond Toy authored
int.
-
Raymond Toy authored
This handles overflows better and (c::two-prod 1.7976931214684583d308 (1+ (scale-float 1d0 -28))) doesn't signal an overflow like the old algorithm.
-
Raymond Toy authored
* src/lisp/e_exp.c: * Signal underflow instead of returning the arg. * tests/trig.lisp: * Add tests for %exp when exp underflows.
-
- Aug 26, 2014
-
-
Raymond Toy authored
-
Raymond Toy authored
These numbers are called signaling, not trapping NaN in almost all usages. * code/exports.lisp: * Export FLOAT-SIGNALING-NAN-P. * code/float.lisp: * Implement FLOAT-SIGNALING-NAN-P. * Make FLOAT-TRAPPING-NAN-P an inline call to the FLOAT-SIGNALING-NAN-P and add a docstring to say it is deprecated. * code/print.lisp: * Print "Signaling" instead of "Trapping". * i18n/locale/cmucl.pot: * Regenerated due to the changes in docstrings.
-
- Aug 23, 2014
-
-
Raymond Toy authored
other tests.
-
Raymond Toy authored
* src/lisp/e_acos.c * Use fdlibm_setexception * src/lisp/e_asin.c * Use fdlibm_setexception * src/lisp/s_atan.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for acos, asin, and atan.
-
Raymond Toy authored
* src/lisp/e_atanh.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for atanh
-
Raymond Toy authored
* src/lisp/s_asinh.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for asinh
-
Raymond Toy authored
-
Raymond Toy authored
* src/lisp/e_log.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for log
-
Raymond Toy authored
operation was. This shows up when fdlibm_setexception signals an exception. It seems to set the exception bits directly instead of trying to do the operation. This was confusing get-fp-operands.
-
- Aug 22, 2014
-
-
Raymond Toy authored
doesn't use x87.
-
Raymond Toy authored
On 32-bit linux, we can still get FP exceptions using x87 because 32-bit linux can still use x87 instructions for arithmetic. Because of this, we need to re-enable the support x87 floating-point modes, including getting and setting the modes and also extracting the modes from a sigcontext. * src/code/float-trap.lisp: * Put back support for getting and setting the x87 FP modes. * src/compiler/x86/float.lisp: * Add comment on the layout of the status and control words for x87. * src/lisp/Linux-os.c: * Put back support for getting the x87 (and sse2) FP modes. Needed in the sigfpe-handler in float-trap.lisp. Some of this needs to be cleaned up because we always require sse2 now.
-
Raymond Toy authored
* src/lisp/e_exp.c * Use fdlibm_setexception * tests/trig.lisp: * Add tests for exp.
-
Raymond Toy authored
-
Raymond Toy authored
* src/lisp/s_log1p.c: * Use fdlibm_setexception * tests/trig.lisp: * Add tests for log1p.
-
Raymond Toy authored
easier for lisp to parse foreign calls for debugging.
-
Raymond Toy authored
handle signaling and quite NaN * src/lisp/s_expm1.c: * Use fdlibm_setexception * tests/trig.lisp: * Add additional tests to existing testsuite to distinguish signaling and quiet NaN. The functions should signal on quiet NaN. * Add tests for expm1.
-
Raymond Toy authored
If the argument is a quiet NaN, then we don't want to signal an invalid operation. For all other floats, we do want to signal that. Add function isQNaN to detect quiet NaN.
-
- Aug 21, 2014
-
-
Raymond Toy authored
easier for lisp to parse foreign calls for debugging.
-
- Aug 20, 2014
-
-
Raymond Toy authored
* src/lisp/e_acosh.c: * Use fdlibm_setexceptions to signal exceptions appropriately. * tests/trig.lisp: * Add tests for acosh. * Update other tests to use the kernel:%foo functions instead of calling CL:foo. We really want to just test the fdlibm functions, not the CL versions of them, which might have different definitions. For example, acosh is defined for all real args (returning complex numbers in some cases), but kernel:%acosh is only defined for x > 1.
-
Raymond Toy authored
The compiler sometimes constant folds operations so that floating-point exceptions are not signaled. However, lisp and other applications (maxima) currently expects these exceptions to be signaled. Make this happen by using feraiseexcept to force these signals when they are enabled. If feraiseexcept does not raise an exception (because it is masked), we return the appropriate value. Only a few files have been updated to support this. More work needed. * src/lisp/setexception.c: * New file. This is used by the routines to signal an appropriate exception or return the appropriate value. Uses feraiseexcept to do this, which should be available on all supported platforms. * src/lisp/GNUmakefile: * Add setexception.c to list of files to compile and link into lisp. * src/lisp/e_cosh.c: * Update to use the new routine.to signal exceptions. * src/lisp/e_sinh.c: * Update to use the new routine.to signal exceptions. * tests/trig.lisp: * Add tests to make sure exceptions are thrown for cosh and sinh. * Add tests to make sure that the correct value is returned when the floating point exception is masked.
-
- Aug 17, 2014
-
-
Raymond Toy authored
used. This can have unexpected results, especially in the fdlibm routines if a fused-multiply is used the wrong place.
-
- Aug 16, 2014
-
-
Raymond Toy authored
* lisp/e_cosh.c: * The compiler replaced the code huge*huge with infinity instead of doing the operation. Change it so it does fabs(x)*huge, which forces the compiler to do the multiplication. * Change huge from 1e300 to 1e307 so that fabs(x)*huge will actually overflow when |x| > overflowthreshold. * tests/trig.lisp: * Add tests for sinh and cosh signaling overflow appropriately. * general-info/release-20f.txt: * Update.
-
Raymond Toy authored
When the float is in a register, we don't have to store it to memory to get at the parts. SSE2 has instructions to move from an XMM register to a general purpose register.
-
- Aug 15, 2014
-
-
Raymond Toy authored
* src/lisp/e_exp.c: * Add special case to return the correctly rounded value of exp(1). * tests/trac.lisp: * Add test that the correct value is returned. * Add test that exp(x) is still monotonic around x = 1. * src/general-info/release-20f.txt: * Update.
-
- Aug 10, 2014
-
-
Raymond Toy authored
* code/format.lisp: * Add support for Gray streams for tabulation, calling STREAM-ADVANCE-TO-COLUMN as needed. * tests/gray-stream.lisp: * Add tests for absolute and relative tabulation. These are simple and just compare that lisp streams and Gray streams produce the same output. * general-info/release-20f.txt: * Update.
-
Raymond Toy authored
-
Raymond Toy authored
-
Raymond Toy authored
stream.
-
- Aug 09, 2014
-
-
Raymond Toy authored
* code/reader.lisp: * The READER-ERROR condition tries to be helpful and print out the position of where the error occurred using FILE-POSITION. But FILE-POSITION flames out when the stream is closed, so check for a closed stream before calling FILE-POSITION * tests/trac.lisp: * Add test from the bug report. * general-info/release-20f.txt: * Update.
-