tpapp / cl-num-utils Goto Github PK
View Code? Open in Web Editor NEWNumerical utilities, the successor of cl-numlib
License: Boost Software License 1.0
Numerical utilities, the successor of cl-numlib
License: Boost Software License 1.0
Below is a patch that adds &allow-other-keys to method lambda lists for functions where the defgeneric used it.
With this patch, all of the cl-num-utils-tests succeed on Clozure CL (32-bit and 64-bit) on MacOSX.
If you'd rather I fork the repository and commit the patch to the fork, let me know. But, it's pretty minimal and straightforward:
diff -c old/array.lisp new/array.lisp
*** old/array.lisp 2012-05-11 09:25:18.000000000 -0500
--- new/array.lisp 2012-05-11 09:33:38.000000000 -0500
*** 342,351 ****
(defgeneric map1 (function object &key element-type &allow-other-keys)
(:documentation "Map OBJECT elementwise using FUNCTION. Results in a
similar object, with specificed ELEMENT-TYPE where applicable.")
! (:method (function (array array) &key (element-type t))
(aprog1 (make-array (array-dimensions array) :element-type element-type)
(map-into (flatten-array it) function (flatten-array array))))
! (:method (function (list list) &key)
(mapcar function list)))
;;; subvector
--- 342,351 ----
(defgeneric map1 (function object &key element-type &allow-other-keys)
(:documentation "Map OBJECT elementwise using FUNCTION. Results in a
similar object, with specificed ELEMENT-TYPE where applicable.")
! (:method (function (array array) &key (element-type t) &allow-other-keys)
(aprog1 (make-array (array-dimensions array) :element-type element-type)
(map-into (flatten-array it) function (flatten-array array))))
! (:method (function (list list) &key &allow-other-keys)
(mapcar function list)))
;;; subvector
*** 371,377 ****
which may nevertheless share structure with something. COPY? can be used to
avoid that. Other keyword arguments may make as-array return something
else (eg an array wrapped in a structure to indicate that it is special).")
! (:method ((array array) &key copy?)
(maybe-copy-array array copy?)))
(defgeneric diagonal (object &key copy?)
--- 371,377 ----
which may nevertheless share structure with something. COPY? can be used to
avoid that. Other keyword arguments may make as-array return something
else (eg an array wrapped in a structure to indicate that it is special).")
! (:method ((array array) &key copy? &allow-other-keys)
(maybe-copy-array array copy?)))
(defgeneric diagonal (object &key copy?)
*** 520,526 ****
conformity after that -- when element-type is given, it is used instead. If
the function doesn't return a vector, the values are collected in a vector
instead of a matrix.")
! (:method (function (matrix array) &key element-type)
(let+ (((nil ncol) (array-dimensions matrix))
result
result-nrow)
--- 520,526 ----
conformity after that -- when element-type is given, it is used instead. If
the function doesn't return a vector, the values are collected in a vector
instead of a matrix.")
! (:method (function (matrix array) &key element-type &allow-other-keys)
(let+ (((nil ncol) (array-dimensions matrix))
result
result-nrow)
*** 543,549 ****
(defgeneric map-rows (function object &key element-type &allow-other-keys)
(:documentation "Map rows of object (eg a matrix) using FUNCTION.")
! (:method (function (matrix array) &key (element-type t))
(check-type matrix matrix)
;; FIXME: more efficient implementations should be possible
(combine (map 'vector function (subarrays 1 matrix)) element-type)))
--- 543,549 ----
(defgeneric map-rows (function object &key element-type &allow-other-keys)
(:documentation "Map rows of object (eg a matrix) using FUNCTION.")
! (:method (function (matrix array) &key (element-type t) &allow-other-keys)
(check-type matrix matrix)
;; FIXME: more efficient implementations should be possible
(combine (map 'vector function (subarrays 1 matrix)) element-type)))
diff -c old/data-frame.lisp new/data-frame.lisp
*** old/data-frame.lisp 2012-05-11 09:25:18.000000000 -0500
--- new/data-frame.lisp 2012-05-11 09:33:38.000000000 -0500
*** 33,39 ****
(defmethod ncol ((data-frame data-frame))
(length (slot-value data-frame 'columns)))
! (defmethod as-array ((data-frame data-frame) &key)
(columns-to-matrix (slot-value data-frame 'columns)))
(defun copy-data-frame (data-frame &optional (map-columns #'identity))
--- 33,39 ----
(defmethod ncol ((data-frame data-frame))
(length (slot-value data-frame 'columns)))
! (defmethod as-array ((data-frame data-frame) &key &allow-other-keys)
(columns-to-matrix (slot-value data-frame 'columns)))
(defun copy-data-frame (data-frame &optional (map-columns #'identity))
I can't quite figure it out but it looks like a LET+ expander issue of some sort. I get this backtrace:
;
; caught WARNING:
; Derived type of SORTING-ACCUMULATOR is (VALUES SORTING-ACCUMULATOR &OPTIONAL), conflicting with its asserted type LIST.
; See also:
; The SBCL Manual, Node "Handling of Types"
; file: /home/xach/quicklisp-controller/dist/build-cache/cl-num-utils/251823287ee4adb353c7acac1a29ccdccfc7617c/cl-num-utils-20110609-git/src/statistics.lisp
; in: DEFMETHOD QUANTILE (SORTING-ACCUMULATOR T)
; (LENGTH CL-NUM-UTILS::ELEMENTS)
; ==>
; CL-NUM-UTILS::ELEMENTS
;
; note: deleting unreachable code
; (IF (ZEROP CL-NUM-UTILS::FRAC)
; CL-NUM-UTILS::LEFT
; (CL-NUM-UTILS:CONVEX-COMBINATION CL-NUM-UTILS::LEFT
; (AREF CL-NUM-UTILS::ELEMENTS
; (1+ CL-NUM-UTILS::INT))
; CL-NUM-UTILS::FRAC))
; ==>
; CL-NUM-UTILS::LEFT
;
; note: deleting unreachable code
; (ZEROP CL-NUM-UTILS::FRAC)
; --> =
; ==>
; CL-NUM-UTILS::FRAC
;
; note: deleting unreachable code
; (CL-NUM-UTILS:CONVEX-COMBINATION CL-NUM-UTILS::LEFT
; (AREF CL-NUM-UTILS::ELEMENTS
; (1+ CL-NUM-UTILS::INT))
; CL-NUM-UTILS::FRAC)
; ==>
; CL-NUM-UTILS::LEFT
;
; note: deleting unreachable code
; (AREF CL-NUM-UTILS::ELEMENTS CL-NUM-UTILS::INT)
; ==>
; CL-NUM-UTILS::ELEMENTS
;
; note: deleting unreachable code
; (ASSERT (<= 0 CL-NUM-UTILS::Q 1) NIL "Quantile ~A is not in [0,1]."
; CL-NUM-UTILS::Q)
; --> DO BLOCK LET TAGBODY TAGBODY SB-KERNEL:ASSERT-ERROR
; ==>
; "Quantile ~A is not in [0,1]."
;
; note: deleting unreachable code
; (<= 0 CL-NUM-UTILS::Q 1)
; -->
; --> (LAMBDA (#:G1245 #:G1244 #:G1243) (DECLARE (TYPE REAL #:G1245 #:G1244 #:G1243)) (IF (<= #:G1245 #:G1244) (IF (<= #:G1244 #:G1243) T NIL) NIL))
; --> SB-C::%FUNCALL
; --> #<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME (LAMBDA (#:G1245 #:G1244 #:G1243)) :KIND :DELETED :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (#:G1245 #:G1244 #:G1243) {1003F09E31}>
; ==>
; CL-NUM-UTILS::Q
;
; note: deleting unreachable code
; (* CL-NUM-UTILS::Q (1- CL-NUM-UTILS::N))
; ==>
; CL-NUM-UTILS::Q
;
; note: deleting unreachable code
; (FLOOR CL-NUM-UTILS::R)
; --> FLOOR
; ==>
; CL-NUM-UTILS::R
;
; note: deleting unreachable code
; (ASSERT
; (LET-PLUS:LET+ (((CL-NUM-UTILS::&SORTING-ACCUMULATOR NIL NIL
; CL-NUM-UTILS::PREDICATE)
; CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=) (EQ CL-NUM-UTILS::PREDICATE #'<)))
; NIL "Accumulator has to be sorted by < or <=.")
; --> DO BLOCK LET TAGBODY TAGBODY SB-KERNEL:ASSERT-ERROR
; ==>
; "Accumulator has to be sorted by < or <=."
;
; note: deleting unreachable code
; (LET-PLUS:LET+ (((CL-NUM-UTILS::&SORTING-ACCUMULATOR NIL NIL
; CL-NUM-UTILS::PREDICATE)
; CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=) (EQ CL-NUM-UTILS::PREDICATE #'<)))
; --> DESTRUCTURING-BIND
; ==>
; (LET ((#:WHOLE1236 CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (DECLARE (TYPE LIST #:WHOLE1236))
; (LET* ()
; (DECLARE (MUFFLE-CONDITIONS CODE-DELETION-NOTE))
; (LET ((#:ARGS[QUANTILE]1238 #:WHOLE1236))
; (UNLESS (SB-INT:PROPER-LIST-OF-LENGTH-P #:ARGS[QUANTILE]1238 4 4)
; (SB-KERNEL::ARG-COUNT-ERROR 'DESTRUCTURING-BIND 'NIL
; #:ARGS[QUANTILE]1238 '# 4 4)))
; (LET* ((CL-NUM-UTILS::&SORTING-ACCUMULATOR #)
; (#:G1234 #)
; (#:G1235 #)
; (CL-NUM-UTILS::PREDICATE #))
; (DECLARE (IGNORE #:G1234 #:G1235))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=)
; (EQ CL-NUM-UTILS::PREDICATE #'<)))))
;
; caught WARNING:
; Derived type of SORTING-ACCUMULATOR is (VALUES SORTING-ACCUMULATOR &OPTIONAL), conflicting with its asserted type LIST.
; See also:
; The SBCL Manual, Node "Handling of Types"
unhandled ASDF:COMPILE-ERROR in thread #<SB-THREAD:THREAD "initial thread" RUNNING {1003089821}>: Error while invoking #<COMPILE-OP NIL {1003A50B41}> on #<CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA (SB-DEBUG::FRAME)) {1004094619}> :START 0 :COUNT 128)
1: (BACKTRACE 128 #<SB-SYS:FD-STREAM for "file /home/xach/quicklisp-controller/tmp/depcheck-fail.txt" {10037607E1}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<ASDF:COMPILE-ERROR {1004090EB1}> #<unavailable argument>)
3: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<ASDF:COMPILE-ERROR {1004090EB1}>)
4: (INVOKE-DEBUGGER #<ASDF:COMPILE-ERROR {1004090EB1}>)
5: (ERROR ASDF:COMPILE-ERROR :COMPONENT #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics"> :OPERATION #<ASDF:COMPILE-OP NIL {1003A50B41}>)
6: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<unavailable argument> #<unavailable argument> #<ASDF:COMPILE-OP NIL {1003A50B41}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
7: ((SB-PCL::EMF ASDF:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF:COMPILE-OP NIL {1003A50B41}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
8: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) #<ASDF:COMPILE-OP NIL {1003A50B41}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
9: ((LAMBDA NIL))
10: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
11: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]325))
12: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF6D5F549}> #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "initial thread" RUNNING {1003089821}>>)
13: ((FLET SB-C::WITH-IT))
14: ((SB-PCL::FAST-METHOD ASDF::PERFORM-PLAN (LIST)) #<unused argument> #<unused argument> ((#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "package">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "definitions">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "binding">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "strings">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "conditions">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "hash-tables">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "symbols">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "macros">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "functions">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "lists">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "io">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "control-flow">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "types">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "arrays">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "sequences">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "numbers">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "features">) (#<ASDF:LOAD-OP NIL {10033FC6A1}> . #<ASDF:SYSTEM "alexandria">) (#<ASDF:LOAD-OP NIL {10034A06B1}> . #<ASDF:CL-SOURCE-FILE "iterate" "package">) (#<ASDF:LOAD-OP NIL {10034A06B1}> . #<ASDF:CL-SOURCE-FILE "iterate" "iterate">) (#<ASDF:LOAD-OP NIL {10034A06B1}> . #<ASDF:SYSTEM "iterate">) (#<ASDF:LOAD-OP NIL {10034A0611}> . #<ASDF:CL-SOURCE-FILE "anaphora" "packages">) (#<ASDF:LOAD-OP NIL {10034A0611}> . #<ASDF:CL-SOURCE-FILE "anaphora" "early">) (#<ASDF:LOAD-OP NIL {10034A0611}> . #<ASDF:CL-SOURCE-FILE "anaphora" "symbolic">) (#<ASDF:LOAD-OP NIL {10034A0611}> . #<ASDF:CL-SOURCE-FILE "anaphora" "anaphora">) (#<ASDF:LOAD-OP NIL {10034A0611}> . #<ASDF:SYSTEM "anaphora">) (#<ASDF:LOAD-OP NIL {10034A0591}> . #<ASDF:CL-SOURCE-FILE "let-plus" "package">) (#<ASDF:LOAD-OP NIL {10034A0591}> . #<ASDF:CL-SOURCE-FILE "let-plus" "let-plus">) (#<ASDF:LOAD-OP NIL {10034A0591}> . #<ASDF:CL-SOURCE-FILE "let-plus" "extensions">) (#<ASDF:LOAD-OP NIL {10034A0591}> . #<ASDF:SYSTEM "let-plus">) (#<ASDF:LOAD-OP NIL {10034A0931}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "package-init" "package">) (#<ASDF:LOAD-OP NIL {10034A0931}> . #<ASDF:MODULE "cl-num-utils" "package-init">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "macros">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "misc">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "arithmetic">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "array">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "pretty">) (#<ASDF:LOAD-OP NIL {10034A0951}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "bins">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">) (#<ASDF:LOAD-OP NIL {10034A0971}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "interval">) (#<ASDF:LOAD-OP NIL {10034A0991}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "interval">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "sub">) (#<ASDF:LOAD-OP NIL {10034A09B1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "sub">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "elementwise">) (#<ASDF:LOAD-OP NIL {10034A09D1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "elementwise">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "ix">) (#<ASDF:LOAD-OP NIL {10034A09F1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "ix">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "data-frame">) (#<ASDF:LOAD-OP NIL {10034A0A11}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "data-frame">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "optimization">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:MODULE "cl-num-utils" "utilities">) (#<ASDF:COMPILE-OP NIL {1003A50B41}> . #<ASDF:SYSTEM "cl-num-utils">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:CL-SOURCE-FILE "metabang-bind" "dev" "packages">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:CL-SOURCE-FILE "metabang-bind" "dev" "macros">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:CL-SOURCE-FILE "metabang-bind" "dev" "bind">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:CL-SOURCE-FILE "metabang-bind" "dev" "binding-forms">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:MODULE "metabang-bind" "dev">) (#<ASDF:LOAD-OP NIL {10034A0511}> . #<ASDF:SYSTEM "metabang-bind">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "timeout" "package">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "timeout" "with-timeout">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:MODULE "lift" "timeout">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "setup" "packages">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "setup" "definitions">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "setup" "macros">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "setup" "utilities">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "setup" "class-defs">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:MODULE "lift" "setup">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "api" "generics">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:MODULE "lift" "api">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:STATIC-FILE "lift" "dev" "notes.text">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "port">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "measuring">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "lift">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "copy-file">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "random-testing">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "config">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "reports">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "introspection">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:CL-SOURCE-FILE "lift" "dev" "test-runner">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:MODULE "lift" "dev">) (#<ASDF:LOAD-OP NIL {10034A0471}> . #<ASDF:SYSTEM "lift">) (#<ASDF:LOAD-OP NIL {10034A0431}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "optimization">) (#<ASDF:LOAD-OP NIL {10034A0431}> . #<ASDF:MODULE "cl-num-utils" "utilities">) (#<ASDF:LOAD-OP NIL {10034A0431}> . #<ASDF:SYSTEM "cl-num-utils">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "package-init" "package">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:MODULE "cl-num-utils-tests" "package-init">) (#<ASDF:LOAD-OP NIL {10034A0A31}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "package-init" "package">) (#<ASDF:LOAD-OP NIL {10034A0A31}> . #<ASDF:MODULE "cl-num-utils-tests" "package-init">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "setup" "setup">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "setup" "utilities">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:MODULE "cl-num-utils-tests" "setup">) (#<ASDF:LOAD-OP NIL {10034A0A51}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "setup" "setup">) (#<ASDF:LOAD-OP NIL {10034A0A51}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "setup" "utilities">) (#<ASDF:LOAD-OP NIL {10034A0A51}> . #<ASDF:MODULE "cl-num-utils-tests" "setup">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "arithmetic">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "array">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "bins">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "sub">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "elementwise">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "statistics">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "ix">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "data-frame">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:MODULE "cl-num-utils-tests" "tests">) (#<ASDF:COMPILE-OP NIL {10033F90A1}> . #<ASDF:SYSTEM "cl-num-utils-tests">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "arithmetic">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "array">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "bins">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "sub">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "elementwise">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "statistics">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "ix">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils-tests" "tests" "data-frame">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:MODULE "cl-num-utils-tests" "tests">) (#<ASDF:LOAD-OP NIL {1003A063E1}> . #<ASDF:SYSTEM "cl-num-utils-tests">)))
15: ((LAMBDA NIL))
16: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<CLOSURE (LAMBDA NIL) {1003A05F39}>)
17: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unused argument> #<unused argument> ASDF:LOAD-OP "cl-num-utils-tests")
18: ((SB-PCL::EMF ASDF:OPERATE) #<unused argument> #<unused argument> ASDF:LOAD-OP "cl-num-utils-tests")
19: (DEPCHECK::COMPUTE-DEPENDENCIES "cl-num-utils-tests" "cl-num-utils-tests")
20: (DEPCHECK::MAGIC "cl-num-utils-tests" "cl-num-utils-tests" "/home/xach/quicklisp-controller/tmp/depcheck-win.txt")
21: (DEPCHECK::MAIN ("depcheck" "/home/xach/quicklisp-controller/dist/system-file-index" "cl-num-utils-tests" "cl-num-utils-tests" "/home/xach/quicklisp-controller/tmp/depcheck-win.txt" "/home/xach/quicklisp-controller/tmp/depcheck-fail.txt"))
22: ((LAMBDA NIL))
23: ((FLET #:WITHOUT-INTERRUPTS-BODY-[RESTART-LISP]30))
24: ((LABELS SB-IMPL::RESTART-LISP))
unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 4 WARNING conditions
; printed 10 notes
=================================
FAIL: "fail_cl-num-utils_cl-num-utils_cl-num-utils.txt"
=================================
;
; caught WARNING:
; Derived type of SORTING-ACCUMULATOR is (VALUES SORTING-ACCUMULATOR &OPTIONAL), conflicting with its asserted type LIST.
; See also:
; The SBCL Manual, Node "Handling of Types"
; file: /home/xach/quicklisp-controller/dist/build-cache/cl-num-utils/251823287ee4adb353c7acac1a29ccdccfc7617c/cl-num-utils-20110609-git/src/statistics.lisp
; in: DEFMETHOD QUANTILE (SORTING-ACCUMULATOR T)
; (LENGTH CL-NUM-UTILS::ELEMENTS)
; ==>
; CL-NUM-UTILS::ELEMENTS
;
; note: deleting unreachable code
; (IF (ZEROP CL-NUM-UTILS::FRAC)
; CL-NUM-UTILS::LEFT
; (CL-NUM-UTILS:CONVEX-COMBINATION CL-NUM-UTILS::LEFT
; (AREF CL-NUM-UTILS::ELEMENTS
; (1+ CL-NUM-UTILS::INT))
; CL-NUM-UTILS::FRAC))
; ==>
; CL-NUM-UTILS::LEFT
;
; note: deleting unreachable code
; (ZEROP CL-NUM-UTILS::FRAC)
; --> =
; ==>
; CL-NUM-UTILS::FRAC
;
; note: deleting unreachable code
; (CL-NUM-UTILS:CONVEX-COMBINATION CL-NUM-UTILS::LEFT
; (AREF CL-NUM-UTILS::ELEMENTS
; (1+ CL-NUM-UTILS::INT))
; CL-NUM-UTILS::FRAC)
; ==>
; CL-NUM-UTILS::LEFT
;
; note: deleting unreachable code
; (AREF CL-NUM-UTILS::ELEMENTS CL-NUM-UTILS::INT)
; ==>
; CL-NUM-UTILS::ELEMENTS
;
; note: deleting unreachable code
; (ASSERT (<= 0 CL-NUM-UTILS::Q 1) NIL "Quantile ~A is not in [0,1]."
; CL-NUM-UTILS::Q)
; --> DO BLOCK LET TAGBODY TAGBODY SB-KERNEL:ASSERT-ERROR
; ==>
; "Quantile ~A is not in [0,1]."
;
; note: deleting unreachable code
; (<= 0 CL-NUM-UTILS::Q 1)
; -->
; --> (LAMBDA (#:G1245 #:G1244 #:G1243) (DECLARE (TYPE REAL #:G1245 #:G1244 #:G1243)) (IF (<= #:G1245 #:G1244) (IF (<= #:G1244 #:G1243) T NIL) NIL))
; --> SB-C::%FUNCALL
; --> #<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME (LAMBDA (#:G1245 #:G1244 #:G1243)) :KIND :DELETED :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (#:G1245 #:G1244 #:G1243) {1003A5C891}>
; ==>
; CL-NUM-UTILS::Q
;
; note: deleting unreachable code
; (* CL-NUM-UTILS::Q (1- CL-NUM-UTILS::N))
; ==>
; CL-NUM-UTILS::Q
;
; note: deleting unreachable code
; (FLOOR CL-NUM-UTILS::R)
; --> FLOOR
; ==>
; CL-NUM-UTILS::R
;
; note: deleting unreachable code
; (ASSERT
; (LET-PLUS:LET+ (((CL-NUM-UTILS::&SORTING-ACCUMULATOR NIL NIL
; CL-NUM-UTILS::PREDICATE)
; CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=) (EQ CL-NUM-UTILS::PREDICATE #'<)))
; NIL "Accumulator has to be sorted by < or <=.")
; --> DO BLOCK LET TAGBODY TAGBODY SB-KERNEL:ASSERT-ERROR
; ==>
; "Accumulator has to be sorted by < or <=."
;
; note: deleting unreachable code
; (LET-PLUS:LET+ (((CL-NUM-UTILS::&SORTING-ACCUMULATOR NIL NIL
; CL-NUM-UTILS::PREDICATE)
; CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=) (EQ CL-NUM-UTILS::PREDICATE #'<)))
; --> DESTRUCTURING-BIND
; ==>
; (LET ((#:WHOLE1236 CL-NUM-UTILS:SORTING-ACCUMULATOR))
; (DECLARE (TYPE LIST #:WHOLE1236))
; (LET* ()
; (DECLARE (MUFFLE-CONDITIONS CODE-DELETION-NOTE))
; (LET ((#:ARGS[QUANTILE]1238 #:WHOLE1236))
; (UNLESS (SB-INT:PROPER-LIST-OF-LENGTH-P #:ARGS[QUANTILE]1238 4 4)
; (SB-KERNEL::ARG-COUNT-ERROR 'DESTRUCTURING-BIND 'NIL
; #:ARGS[QUANTILE]1238 '# 4 4)))
; (LET* ((CL-NUM-UTILS::&SORTING-ACCUMULATOR #)
; (#:G1234 #)
; (#:G1235 #)
; (CL-NUM-UTILS::PREDICATE #))
; (DECLARE (IGNORE #:G1234 #:G1235))
; (OR (EQ CL-NUM-UTILS::PREDICATE #'<=)
; (EQ CL-NUM-UTILS::PREDICATE #'<)))))
;
; caught WARNING:
; Derived type of SORTING-ACCUMULATOR is (VALUES SORTING-ACCUMULATOR &OPTIONAL), conflicting with its asserted type LIST.
; See also:
; The SBCL Manual, Node "Handling of Types"
unhandled ASDF:COMPILE-ERROR in thread #<SB-THREAD:THREAD "initial thread" RUNNING {10030897C1}>: Error while invoking #<COMPILE-OP NIL {1003A16D81}> on #<CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">
0: (SB-DEBUG::MAP-BACKTRACE #<CLOSURE (LAMBDA (SB-DEBUG::FRAME)) {1003BEE389}> :START 0 :COUNT 128)
1: (BACKTRACE 128 #<SB-SYS:FD-STREAM for "file /home/xach/quicklisp-controller/tmp/depcheck-fail.txt" {10037607E1}>)
2: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<ASDF:COMPILE-ERROR {1003BEAC21}> #<unavailable argument>)
3: (SB-DEBUG::RUN-HOOK *INVOKE-DEBUGGER-HOOK* #<ASDF:COMPILE-ERROR {1003BEAC21}>)
4: (INVOKE-DEBUGGER #<ASDF:COMPILE-ERROR {1003BEAC21}>)
5: (ERROR ASDF:COMPILE-ERROR :COMPONENT #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics"> :OPERATION #<ASDF:COMPILE-OP NIL {1003A16D81}>)
6: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<unavailable argument> #<unavailable argument> #<ASDF:COMPILE-OP NIL {1003A16D81}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
7: ((SB-PCL::EMF ASDF:PERFORM) #<unavailable argument> #<unavailable argument> #<ASDF:COMPILE-OP NIL {1003A16D81}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
8: ((SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD ASDF::PERFORM-WITH-RESTARTS #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) #<ASDF:COMPILE-OP NIL {1003A16D81}> #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">)
9: ((LAMBDA NIL))
10: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
11: ((FLET #:WITHOUT-INTERRUPTS-BODY-[CALL-WITH-RECURSIVE-LOCK]325))
12: (SB-THREAD::CALL-WITH-RECURSIVE-LOCK #<CLOSURE (FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK) {7FFFF6D5F549}> #<SB-THREAD:MUTEX "World Lock" owner: #<SB-THREAD:THREAD "initial thread" RUNNING {10030897C1}>>)
13: ((FLET SB-C::WITH-IT))
14: ((SB-PCL::FAST-METHOD ASDF::PERFORM-PLAN (LIST)) #<unused argument> #<unused argument> ((#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "package">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "definitions">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "binding">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "strings">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "conditions">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "hash-tables">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "symbols">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "macros">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "functions">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "lists">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "io">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "control-flow">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "types">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "arrays">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "sequences">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "numbers">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:CL-SOURCE-FILE "alexandria" "features">) (#<ASDF:LOAD-OP NIL {10032E80A1}> . #<ASDF:SYSTEM "alexandria">) (#<ASDF:LOAD-OP NIL {10033BDEA1}> . #<ASDF:CL-SOURCE-FILE "iterate" "package">) (#<ASDF:LOAD-OP NIL {10033BDEA1}> . #<ASDF:CL-SOURCE-FILE "iterate" "iterate">) (#<ASDF:LOAD-OP NIL {10033BDEA1}> . #<ASDF:SYSTEM "iterate">) (#<ASDF:LOAD-OP NIL {10033BDE01}> . #<ASDF:CL-SOURCE-FILE "anaphora" "packages">) (#<ASDF:LOAD-OP NIL {10033BDE01}> . #<ASDF:CL-SOURCE-FILE "anaphora" "early">) (#<ASDF:LOAD-OP NIL {10033BDE01}> . #<ASDF:CL-SOURCE-FILE "anaphora" "symbolic">) (#<ASDF:LOAD-OP NIL {10033BDE01}> . #<ASDF:CL-SOURCE-FILE "anaphora" "anaphora">) (#<ASDF:LOAD-OP NIL {10033BDE01}> . #<ASDF:SYSTEM "anaphora">) (#<ASDF:LOAD-OP NIL {10033BDD81}> . #<ASDF:CL-SOURCE-FILE "let-plus" "package">) (#<ASDF:LOAD-OP NIL {10033BDD81}> . #<ASDF:CL-SOURCE-FILE "let-plus" "let-plus">) (#<ASDF:LOAD-OP NIL {10033BDD81}> . #<ASDF:CL-SOURCE-FILE "let-plus" "extensions">) (#<ASDF:LOAD-OP NIL {10033BDD81}> . #<ASDF:SYSTEM "let-plus">) (#<ASDF:LOAD-OP NIL {10033BE121}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "package-init" "package">) (#<ASDF:LOAD-OP NIL {10033BE121}> . #<ASDF:MODULE "cl-num-utils" "package-init">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "macros">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "misc">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "arithmetic">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "array">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "pretty">) (#<ASDF:LOAD-OP NIL {10033BE141}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "bins">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">) (#<ASDF:LOAD-OP NIL {10033BE161}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "statistics">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "interval">) (#<ASDF:LOAD-OP NIL {10033BE181}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "interval">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "sub">) (#<ASDF:LOAD-OP NIL {10033BE1A1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "sub">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "elementwise">) (#<ASDF:LOAD-OP NIL {10033BE1C1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "elementwise">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "ix">) (#<ASDF:LOAD-OP NIL {10033BE1E1}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "ix">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "data-frame">) (#<ASDF:LOAD-OP NIL {10033BE201}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "data-frame">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "optimization">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:MODULE "cl-num-utils" "utilities">) (#<ASDF:COMPILE-OP NIL {1003A16D81}> . #<ASDF:SYSTEM "cl-num-utils">) (#<ASDF:LOAD-OP NIL {1003A07341}> . #<ASDF:CL-SOURCE-FILE "cl-num-utils" "utilities" "optimization">) (#<ASDF:LOAD-OP NIL {1003A07341}> . #<ASDF:MODULE "cl-num-utils" "utilities">) (#<ASDF:LOAD-OP NIL {1003A07341}> . #<ASDF:SYSTEM "cl-num-utils">)))
15: ((LAMBDA NIL))
16: (ASDF::CALL-WITH-SYSTEM-DEFINITIONS #<CLOSURE (LAMBDA NIL) {1003A06E99}>)
17: ((SB-PCL::FAST-METHOD ASDF:OPERATE (T T)) #<unused argument> #<unused argument> ASDF:LOAD-OP "cl-num-utils")
18: ((SB-PCL::EMF ASDF:OPERATE) #<unused argument> #<unused argument> ASDF:LOAD-OP "cl-num-utils")
19: (DEPCHECK::COMPUTE-DEPENDENCIES "cl-num-utils" "cl-num-utils")
20: (DEPCHECK::MAGIC "cl-num-utils" "cl-num-utils" "/home/xach/quicklisp-controller/tmp/depcheck-win.txt")
21: (DEPCHECK::MAIN ("depcheck" "/home/xach/quicklisp-controller/dist/system-file-index" "cl-num-utils" "cl-num-utils" "/home/xach/quicklisp-controller/tmp/depcheck-win.txt" "/home/xach/quicklisp-controller/tmp/depcheck-fail.txt"))
22: ((LAMBDA NIL))
23: ((FLET #:WITHOUT-INTERRUPTS-BODY-[RESTART-LISP]30))
24: ((LABELS SB-IMPL::RESTART-LISP))
unhandled condition in --disable-debugger mode, quitting
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 4 WARNING conditions
; printed 10 notes
CL-USER> (cl-num-utils-tests:RUN-CL-NUM-UTILS-TESTS)
#<Results for CL-NUM-UTILS-TESTS 48 Tests, 1 Failure>
CL-USER> (describe *)
Test Report for CL-NUM-UTILS-TESTS: 48 tests run, 1 Failure.
Failure: elementwise-tests : e-operations-tests
Condition : Ensure-same: #2A((3.0d0 5.0d0 8.0d0)
(11.0d0 16.0d0
19.0d0)) is not #<FUNCTION ARRAY=> to #2A((3.0d0
5.0d0
8.0d0)
(11.0d0
16.0d0
19.0d0))
During : END-TEST
Code :
((LET ((*LIFT-EQUALITY-TEST* #'ARRAY=)
(A (ARRAY* '(2 3) 'DOUBLE-FLOAT 1 2 3 4 5 6))
(B (ARRAY* '(2 3) 'SINGLE-FLOAT 2 3 5 7 11 13)))
(ENSURE-SAME (E+ A B) (ARRAY* '(2 3) 'DOUBLE-FLOAT 3 5 8 11 16 19))
(ENSURE-SAME (E* A 2) (ARRAY* '(2 3) 'DOUBLE-FLOAT 2 4 6 8 10 12))
(ENSURE-SAME (E+ A 2 B) (E+ (E+ A B) 2))
(ENSURE-ERROR
(E+ A (ARRAY* '(1 1) 'DOUBLE-FLOAT 2)))
(ENSURE-SAME (E+ A) (E+ A 0))
(ENSURE-SAME (E* A) (E* A 1))
(ENSURE-SAME (E- A) (E- 0 A))
(ENSURE-SAME (E/ A) (E/ 1 A))
(ENSURE-SAME (E+ A (ZERO)) A :TEST #'EQ)
(ENSURE-SAME (E+ (ZERO) A) A :TEST #'EQ)))
Test Report for CL-NUM-UTILS-TESTS: 48 tests run, 1 Failure.
; No value
CL-USER>
Two issues.
On SBCL, I get this:
; file: /home/xach/tmp/cl-num-utils/src/sub.lisp
; in: DEFMETHOD SUB (ARRAY)
; (DEFMETHOD CL-NUM-UTILS:SUB ((ARRAY ARRAY) &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS ARRAY) CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (IF (ZEROP (LENGTH CL-NUM-UTILS::DIMENSIONS))
; (ROW-MAJOR-AREF ARRAY CL-NUM-UTILS::INDEX)
; (LET (#)
; (ITERATE:ITER
; #
; #
; #)
; CL-NUM-UTILS::RESULT))))
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER CL-NUM-UTILS:SUB NIL
; ((ARRAY ARRAY) &REST CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS
; ARRAY)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (IF (ZEROP #)
; (ROW-MAJOR-AREF ARRAY
; CL-NUM-UTILS::INDEX)
; (LET #
; #
; CL-NUM-UTILS::RESULT)))))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER SUB ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD SUB (LIST)
; (DEFMETHOD CL-NUM-UTILS:SUB ((LIST LIST) &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR (LENGTH LIST)) CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (IF (ZEROP (LENGTH CL-NUM-UTILS::DIMENSIONS))
; (NTH CL-NUM-UTILS::INDEX LIST)
; (ITERATE:ITER
; (ITERATE:COLLECTING #)
; (ITERATE:UNTIL #)))))
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER CL-NUM-UTILS:SUB NIL
; ((LIST LIST) &REST CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR #)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (IF (ZEROP #)
; (NTH CL-NUM-UTILS::INDEX LIST)
; (ITERATE:ITER
; #
; #)))))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER SUB ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (T ARRAY)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; (CL-NUM-UTILS::SOURCE (CL-NUM-UTILS::TARGET ARRAY)
; &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX CL-NUM-UTILS::NEXT-INDEX)
; (ITERATE:ITER
; (SETF # CL-NUM-UTILS::SOURCE)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX))))
; CL-NUM-UTILS::SOURCE)
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; (CL-NUM-UTILS::SOURCE
; (CL-NUM-UTILS::TARGET ARRAY) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS
; CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX)
; (ITERATE:ITER
; (SETF #)
; (ITERATE:UNTIL #)))
; CL-NUM-UTILS::SOURCE))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (ARRAY ARRAY)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; ((CL-NUM-UTILS::SOURCE ARRAY) (CL-NUM-UTILS::TARGET ARRAY)
; &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT
; (EQUAL CL-NUM-UTILS::DIMENSIONS (ARRAY-DIMENSIONS CL-NUM-UTILS::SOURCE))
; NIL 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::SOURCE-INDEX :FROM 0)
; (SETF # #)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX))))
; CL-NUM-UTILS::SOURCE)
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; ((CL-NUM-UTILS::SOURCE ARRAY)
; (CL-NUM-UTILS::TARGET ARRAY) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS
; CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUAL CL-NUM-UTILS::DIMENSIONS #)
; NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::SOURCE-INDEX
; :FROM 0)
; (SETF #)
; (ITERATE:UNTIL #)))
; CL-NUM-UTILS::SOURCE))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (LIST ARRAY)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; ((CL-NUM-UTILS::SOURCE LIST) (CL-NUM-UTILS::TARGET ARRAY)
; &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS (LIST #)) NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT :IN CL-NUM-UTILS::SOURCE)
; (SETF # CL-NUM-UTILS::ELEMENT)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX))))
; CL-NUM-UTILS::SOURCE)
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; ((CL-NUM-UTILS::SOURCE LIST)
; (CL-NUM-UTILS::TARGET ARRAY) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (ARRAY-DIMENSIONS
; CL-NUM-UTILS::TARGET)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS #)
; NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT :IN
; CL-NUM-UTILS::SOURCE)
; (SETF #)
; (ITERATE:UNTIL #)))
; CL-NUM-UTILS::SOURCE))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (T LIST)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; (CL-NUM-UTILS::SOURCE (LIST LIST) &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR (LENGTH LIST)) CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX)
; (ITERATE:ITER
; (SETF # CL-NUM-UTILS::SOURCE)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX)))))
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; (CL-NUM-UTILS::SOURCE (LIST LIST) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR #)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX)
; (ITERATE:ITER
; (SETF #)
; (ITERATE:UNTIL #)))))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (LIST LIST)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; ((CL-NUM-UTILS::SOURCE LIST) (LIST LIST)
; &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR (LENGTH LIST)) CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS (LIST #)) NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT :IN CL-NUM-UTILS::SOURCE)
; (SETF # CL-NUM-UTILS::ELEMENT)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX)))))
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; ((CL-NUM-UTILS::SOURCE LIST) (LIST LIST) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR #)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS #)
; NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT :IN
; CL-NUM-UTILS::SOURCE)
; (SETF #)
; (ITERATE:UNTIL #)))))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
; in: DEFMETHOD (SETF SUB) (VECTOR LIST)
; (DEFMETHOD (SETF CL-NUM-UTILS:SUB)
; ((CL-NUM-UTILS::SOURCE VECTOR) (LIST LIST)
; &REST CL-NUM-UTILS::SELECTIONS)
; (CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR (LENGTH LIST)) CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS (LIST #)) NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT :IN-VECTOR CL-NUM-UTILS::SOURCE)
; (SETF # CL-NUM-UTILS::ELEMENT)
; (ITERATE:UNTIL (CL-NUM-UTILS::NEXT-INDEX)))))
; --> PROGN EVAL-WHEN
; ==>
; (SB-PCL::%DEFMETHOD-EXPANDER (SETF CL-NUM-UTILS:SUB) NIL
; ((CL-NUM-UTILS::SOURCE VECTOR) (LIST LIST) &REST
; CL-NUM-UTILS::SELECTIONS)
; ((CL-NUM-UTILS::WITH-INDEXING (CL-NUM-UTILS::SELECTIONS
; (VECTOR #)
; CL-NUM-UTILS::INDEX
; CL-NUM-UTILS::NEXT-INDEX
; :EFFECTIVE-DIMENSIONS
; CL-NUM-UTILS::DIMENSIONS)
; (ASSERT (EQUALP CL-NUM-UTILS::DIMENSIONS #)
; NIL
; 'CL-NUM-UTILS:SUB-INCOMPATIBLE-DIMENSIONS)
; (ITERATE:ITER
; (ITERATE:FOR CL-NUM-UTILS::ELEMENT
; :IN-VECTOR CL-NUM-UTILS::SOURCE)
; (SETF #)
; (ITERATE:UNTIL #)))))
;
; caught ERROR:
; (during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER (SETF #) ...))
; variable LENGTH occurs more than once
;
; compilation unit aborted
; caught 1 fatal ERROR condition
; caught 8 ERROR conditions
I don't understand it at all.
On all other CLs, I get something like this:
Error: Attempt to add the method
#<STANDARD-METHOD NIL (T LIST) @ #x10011a4562> to the generic
function #<STANDARD-GENERIC-FUNCTION MAP1 @ #x10011a4292> but
the generic function requires each method to accept the keyword
arguments :ELEMENT-TYPE. The method does not accept all of
these.
[condition type: PROGRAM-ERROR]
This I do understand, it's due to a bad :method option in defgeneric map1.
And a few meta-questions: do you want to hear about these issues? Is the git head of development likely to be in flux, and should it only be tested at certain release-related times? What CL do you use to build & load cl-num-utils?
Thanks!
array.lisp defines norm2 as
(defun norm2 (a)
"L2 norm."
(sqrt (sum-of-conjugate-squares a)))
There is no such function in cl-num-utils.
CL-USER> (cl-num-utils:norm2 '(2 3))
The function CL-NUM-UTILS::SUM-OF-CONJUGATE-SQUARES is undefined.
There is one in LLA, though, which depends on cl-num-utils (and not the other way around).
That function is not even exported by LLA, though.
CL-USER> (sqrt (lla:sum-of-conjugate-squares '(2 3)))
The symbol "SUM-OF-CONJUGATE-SQUARES" is not external in the LLA package.
This issue was reported by Péter Salvi via e-mail (thanks Péter!).
Definitions like
(defgeneric test (&key my-key &allow-other-keys) (:method (&key) t))
are not allowed because the method is missing keys that the generic function has. SBCL allows this when &allow-other-keys
, but other implementations may not.
Functions that have this problem include MAP1
and AS-ARRAY
(need to check others).
Think about element-type
and copy?
, maybe remove these?
This issue was reported by Péter Salvi via e-mail (thanks Péter!).
SUB-RESOLVE-SELECTION
and SUB-DIMENSION
both specialize on fixnum
, which is not a class that is guaranteed to exist by the standard and is not present in eg ECL
or CLISP
.
Péter's suggestion: read-time conditionals, eg #+(or ecl clisp) integer #-(or ecl clisp) fixnum
. Probably I would just use integer
.
However, the issue is moot since I will soon remove SUB
as it is superseded by CL-SLICE:SLICE
.
When I try to load cl-num-utils, I get:
debugger invoked on a SB-INT:COMPILED-PROGRAM-ERROR:
Execution of a form compiled with errors.
Form:
(%DEFMETHOD-EXPANDER HISTOGRAM-COUNT NIL
((HC HISTOGRAM-COUNTER) (OBJECT NUMBER))
((WITH-HISTOGRAM-COUNTER (HC CF)
(CF OBJECT))))
Compile-time error:
(during macroexpansion of (SB-PCL::%DEFMETHOD-EXPANDER HISTOGRAM-COUNT ...))
error while parsing arguments to DESTRUCTURING-BIND:
invalid number of elements in
(BINS #:HISTOGRAM-COUNTER19)
to satisfy lambda list
(VALUE):
exactly 1 expected, but 2 found
Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.
I am running SBCL 1.0.35 on Mac OS X 10.6.3, newest version on cl-num-utils available today (12.05.10)
; caught ERROR:
; (during compile-time-too processing)
; Lock on package ALEXANDRIA.0.DEV violated when proclaiming XOR as a function.
Alexandria has recently been updated and now exports a symbol named MEDIAN. This causes an error in building cl-num-utils:
unhandled NAME-CONFLICT in thread #<SB-THREAD:THREAD "initial thread" RUNNING {1002FE9721}>:
USE-PACKAGE #<PACKAGE "ALEXANDRIA.0.DEV"> causes name-conflicts in #<PACKAGE "LLA"> between the following symbols:
ALEXANDRIA.0.DEV:MEDIAN, CL-NUM-UTILS:MEDIAN
When the default external format used by a lisp implementation (which usually depends on environment variables LANG or LC_ALL) is different from the source files encoding used by cl-num-utils, the compilation fails.
Here is an example compilation log:
https://cl-test-grid.appspot.com/blob?key=534856
ASDF now allows do add
:encoding :utf-8
to your defsystem. To be backward compatible with old ASDF versions,
it may be protected by reader conditionals like this:
(related ASDF manual chapter
http://common-lisp.net/project/asdf/asdf.html#Miscellaneous-additional-functionality)
Hi.
As you maybe know, cl-num-utils is added to cl-test-gird and is being tested on various lisps/OSes, you can find the library status: http://common-lisp.net/project/cl-test-grid/library/cl-num-utils.html).
cl-num-utils recently changed test framework from lift to clunit. In result cl-test-grid failed to run tests.
I fixed this already, future test runs will use either lift or clunit depending on what is used by the cl-num-utils version.
If you find the information about library status and regressions useful, I suggest in the future to coordinage the testsuite chagnes. If you switch to another test framekwork, or change the name of main testsuite, send me an note and I will be able to adjust test-grid adapter.
(intern (format nil "~A~A" conc-name slot-name))
produces a symbol in *print-case*
rather than (readtable-case *readtable*)
. Read-from-string instead of intern will work with any combination of print-case and readtable-case.
It looks like Nikodemus's recent alexandria updates have broken cl-num-utils (and other libraries of yours). I get this:
unhandled SB-INT:SIMPLE-PROGRAM-ERROR in thread #<SB-THREAD:THREAD "initial thread" RUNNING {10030B9573}>: MEAN already names an ordinary function or a macro.
There is now a symbol conflict with ALEXANDRIA:DISPLACE-ARRAY which prevents building on SBCL.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.