Code Monkey home page Code Monkey logo

cl-num-utils's People

Contributors

nklein avatar tpapp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

cl-num-utils's Issues

Clozure CL requires defmethod use &allow-other-keys if defgeneric did

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))

does not build in SBCL

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

test failure

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> 

Doesn't build on any Lisp

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!

cl-num-utils uses sum-of-conjugates from LLA

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.

methods missing keys of the generic function

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?

can't specialize on FIXNUM

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.

Cannot load cl-num-utils

When I try to load cl-num-utils, I get:

  • (require 'cl-num-utils)

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)

Symbol conflict with ALEXANDRIA:MEDIAN

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

compilation fails due to non-ASCII characters

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:

+asdf-unicode :encoding #+asdf-unicode :utf-8

(related ASDF manual chapter
http://common-lisp.net/project/asdf/asdf.html#Miscellaneous-additional-functionality)

lets coordinate testsuite changes with cl-test-grid

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.

Alexandria changes break cl-num-utils

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.