============================================================== Starting image `/usr/sww/bin/cl' with no arguments in directory `/home/central/users/fateman/float/' on machine `peoplesparc'. Allegro CL 4.1 [SPARC; R1] (5/19/92 14:29) Copyright (C) 1985-1992, Franz Inc., Berkeley, CA, USA. All Rights Reserved. ;; Optimization settings: safety 1, space 1, speed 1, debug 2 ;; For a complete description of all compiler switches given the current ;; optimization settings evaluate (EXPLAIN-COMPILER-SETTINGS). USER(1): (defpackage :ieee) # USER(2): (in-package :ieee) # IEEE(3): :ld ieee ; Fast loading /home/central/users/fateman/float/ieee.fasl. ; Foreign loading with system libraries m. IEEE(4): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* IEEE(5): (defun foo (signal & optional ignore) (format t "~&; got signal ~d~%" signal) t) FOO IEEE(6): (add-signal-handler 8 'foo) ;sigfpe Error: attempt to call `ADD-SIGNAL-HANDLER' which is an undefined function. [condition type: UNDEFINED-FUNCTION] Restart actions (select using :continue): 0: Try calling ADD-SIGNAL-HANDLER again 1: Try calling EXCL:ADD-SIGNAL-HANDLER instead 2: Return a value 3: Try calling a different function 4: Setf the symbol function of ADD-SIGNAL-HANDLER and call it again [1] IEEE(7): :continue 1 ((8 . FOO)) IEEE(8): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* IEEE(9): (/ 1.0 0.0) Error: Attempt to divide 1.0 by zero [condition type: DIVISION-BY-ZERO] [1] IEEE(10): :reset IEEE(11): (let ((gotsig-address (ff:get-entry-point (ff:convert-to-lang "gotsig")))) (unless gotsig-address (error "couldn't find address of gotsig")) (ff:defforeign 'unix-signal :entry-point (ff:convert-to-lang "signal") :arguments '(integer integer)) (defun setup-for-new-signal (number) (unix-signal number gotsig-address))) SETUP-FOR-NEW-SIGNAL IEEE(12): (defconstant *additional-signal* 8) *ADDITIONAL-SIGNAL* IEEE(13): (defun additional-signal-handler (signal &optional ignore) (format t "additional-signal-handler: ~s~%" signal) (finish-output) t) ADDITIONAL-SIGNAL-HANDLER IEEE(14): (setup-for-new-signal *additional-signal*) 97380 IEEE(15): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* IEEE(16): (add-signal-handler *additional-signal* 'additional-signal-handler) Error: attempt to call `ADD-SIGNAL-HANDLER' which is an undefined function. [condition type: UNDEFINED-FUNCTION] Restart actions (select using :continue): 0: Try calling ADD-SIGNAL-HANDLER again 1: Try calling EXCL:ADD-SIGNAL-HANDLER instead 2: Return a value 3: Try calling a different function 4: Setf the symbol function of ADD-SIGNAL-HANDLER and call it again [1] IEEE(17): :continue 1o ((8 . ADDITIONAL-SIGNAL-HANDLER) (8 . FOO)) IEEE(18): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* IEEE(19): (load "" :unreferenced-lib-names '("__swapRD" "__swapRP" "__swapEX" "_nextafter" ;these items are not used here at the moment.. "_ieee_handler" "_ieee_flags" "_copysign" "_log") :system-libraries '("m")) ; Foreign loading with system libraries m. T IEEE(20): (ff:defforeign 'ieee_handler :arguments '(string string (vector (unsigned-byte 32) 1)) :return-type :integer) T IEEE(21): (setq old-div-handler (ieee_handler "set" "division" 0) ) Error: expected arg of type (VECTOR (UNSIGNED-BYTE 32) 1), got type FIXNUM for 0 [1] IEEE(22): (defvar *out* (make-array 1 :element-type '(unsigned-byte 32)) "used as entry point dummy") *OUT* [1] IEEE(23): (setq old-div-handler (ieee_handler "set" "division" *out*) ) 0 [1] IEEE(24): (single-/ 1.0 0.0) Error: Received signal number 4 (Illegal instruction) [2] IEEE(25): big 3.4028232e+38 [2] IEEE(26): (* big big) #.EXCL::*INFINITY-SINGLE* [2] IEEE(27): (setq old-div-handler (ieee_handler "set" "overflow" *out*) ) 0 [2] IEEE(28): (* big big) #.EXCL::*INFINITY-SINGLE* [2] IEEE(29): (setq old-div-handler (ieee_handler "set" "all" *out*) ) (setq old-div-handler (ieee_handler "set" "all" *out*) ) 0 [2] IEEE(30): (* big big) #.EXCL::*INFINITY-SINGLE* [2] IEEE(31): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* [2] IEEE(32): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* [2] IEEE(33): (setq old-div-handler (ieee_handler "set" "division" *out*) ) 0 [2] IEEE(34): (single-/ 1.0 0.0) #.EXCL::*INFINITY-SINGLE* [2] IEEE(35): (ieee_handler "get" "division" *out*) 14114524 [2] IEEE(36): *out* #(0) [2] IEEE(37): (ieee_handler "set" "division" *out*) 0 [2] IEEE(38): *out* #(0) [2] IEEE(39):