Closed hufengtao closed 4 years ago
I do not have Lispworks 7.1 so it might be a little difficut for me to troubleshoot, but I have a hunch that the optimizations might be allowing this to happen. If you could replace the definition of jackup-logged-prob in clml/src/nonparametric/src/statistics.lisp with the definition below. Let me know if it works and I'll check it in.
(defun jackup-logged-prob (logged-prob p-max &optional (index (length logged-prob)))
(declare #- lispworks (optimize (speed 3) (safety 0) (debug 0))
(type (array double-float (*)) logged-prob)
(type double-float p-max)
(type fixnum index))
(let ((jack (- #.(/ (log most-positive-double-float) 2) p-max))
(sum 0d0))
(declare (type double-float jack sum))
(loop for i of-type fixnum from 0 below index
for upp of-type double-float = (if (zerop (aref logged-prob i))
0d0
(safe-exp (+ (aref logged-prob i) jack))) do
(incf sum upp)
(setf (aref logged-prob i) upp))
sum))
this fix have no effection. same error occur when (ql:quickload :clml) .
when execute (ql:quickload :clml) on lispworks, another error also occur: The variable +MOST-POSITIVE-EXP-ABLE-FLOAT+ is unbound.
So it's been awhile, but if you are still interested in getting this working, as I don't have lispworks, I'm willing to work with you over a webex or other screen share platform to sort out the issue. If you your interested open another issue and well make arrangements to connect.
(ql:quickload :clml) load failed on lispworks 7.1.1.
Error information as belowed: **++++ Error in CLML.NONPARAMETRIC.STATISTICS:JACKUP-LOGGED-PROB: Object #<pointer out of memory bounds: 40862E42FEFA39EF> is of type SYSTEM::MARKER which is not externalizable to #<STREAM::LATIN-1-FILE-STREAM /home/hft/.cache/common-lisp/lw-7.1.1-linux-x64/home/hft/quicklisp/local-projects/clml-master/nonparametric/src/t_statistics-tmpACU4ZVG7.64ufasl>.