[iterate-devel] Fwd: iterate form evaluates but does not load into sbcl fasl

Mirko Vukovic mirko.vukovic at gmail.com
Tue Feb 9 13:23:22 UTC 2010


On Mon, Feb 8, 2010 at 9:57 PM, Kalyanov Dmitry
<kalyanov.dmitry at gmail.com>wrote:

> The iterate extension is clearly wrongly written. You cannot insert non-
> externalisable value into the compiled file, in this case, functions
> compiled
> in compilation-environment. The code should be rewritten to use defuns to
> declare functions and to use symbols in defclause-sequence.
>

Dmitry,

Yesterday was the first time I encountered this externalisation issue (see
emails by Yong).  So, I am still wobbly with these concepts.

Are you implying that instead of lambda forms one should define the
functions and use function names. For example, in the following form

(defclause-sequence matrix-row matrix-row-index
  :access-fn
  (lambda (marray index)
    (check-type marray gsl:matrix)
    (gsll:row marray index))
  :size-fn
  (lambda (marray)
    (check-type marray gsl:matrix)
    (c-array:dim0 marray))
  :element-type t :sequence-type t
  :element-doc-string "(copied) rows of a matrix"
  :index-doc-string "index of the rows in a matrix")

all lambda expressions need to be replaced by function symbols.  Correct?

FWIW, I could not reproduce my problem on clisp.

Mirko
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/iterate-devel/attachments/20100209/23d0bb26/attachment.html>


More information about the iterate-devel mailing list