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