Hello Liam (& others)
I am using SBCL 1.014 and GSL with a timestamp from march of this year.
I am trying to use the lu.lisp library and cannot compile the invert-matrix example. The error message is "deleting unreachable code" at the (letm. If I comment out the calls to lu-... and (data-inv) and do instead (data mmat), then it will compile.
I am including the transcript at the end of this message.
Any clue as to what could be wrong?
Thanks,
Mirko
CL-USER> (in-package :gsl) #<PACKAGE "GSLL"> GSL> (defun invert-matrix (mat) "Invert the matrix." (letm ((mmat (matrix-double-float mat)) (dim (array-dimension mat 0)) (per (permutation dim)) (inv (matrix-double-float dim dim))) (lu-decomp mmat per) (lu-invert mmat per inv) (data inv))) ; in: LAMBDA NIL ; (GSLL:LETM ; ((GSLL::MMAT (GSLL:MATRIX-DOUBLE-FLOAT GSLL::MAT)) ; (GSLL::DIM (ARRAY-DIMENSION GSLL::MAT 0)) ; (GSLL::PER (GSLL:PERMUTATION GSLL::DIM)) ; (GSLL::INV (GSLL:MATRIX-DOUBLE-FLOAT GSLL::DIM GSLL::DIM))) ; (GSLL:LU-DECOMP GSLL::MMAT GSLL::PER) ; (GSLL:LU-INVERT GSLL::MMAT GSLL::PER GSLL::INV) (GSLL:DATA GSLL::INV)) ; --> LET* UNWIND-PROTECT FLET BLOCK MULTIPLE-VALUE-BIND ; --> MULTIPLE-VALUE-CALL BLOCK SB-C::%WITHIN-CLEANUP RETURN-FROM PROGN ; --> UNLESS COND IF PROGN SETF LET* ; ==> ; GSLL::PER ; ; note: deleting unreachable code
; ==> ; GSLL::INV ; ; note: deleting unreachable code ; ; compilation unit finished ; printed 2 notes STYLE-WARNING: redefining INVERT-MATRIX in DEFUN INVERT-MATRIX