<br><div class="gmail_quote">On Mon, Feb 8, 2010 at 9:57 PM, Kalyanov Dmitry <span dir="ltr"><<a href="mailto:kalyanov.dmitry@gmail.com">kalyanov.dmitry@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The iterate extension is clearly wrongly written. You cannot insert non-<br>
externalisable value into the compiled file, in this case, functions compiled<br>
in compilation-environment. The code should be rewritten to use defuns to<br>
declare functions and to use symbols in defclause-sequence.<br></blockquote><div><br>Dmitry,<br>
<br>
Yesterday was the first time I encountered this externalisation issue
(see emails by Yong).  So, I am still wobbly with these concepts.<br>
<br>
Are you implying that instead of lambda forms one should define the
functions and use function names. For example, in the following form<br>
<br>
(defclause-sequence matrix-row matrix-row-index<br>
  :access-fn<br>
  (lambda (marray index)<br>
    (check-type marray gsl:matrix)<br>
    (gsll:row marray index))<br>
  :size-fn<br>
  (lambda (marray)<br>
    (check-type marray gsl:matrix)<br>
    (c-array:dim0 marray))<br>
  :element-type t :sequence-type t<br>
  :element-doc-string "(copied) rows of a matrix"<br>
  :index-doc-string "index of the rows in a matrix")<br>
<br>all lambda expressions need to be replaced by function symbols.  Correct?<br><br>FWIW, I could not reproduce my problem on clisp.  <br><br>Mirko<br></div></div><br>