The labeler uses a complete content pass as in fasl encoding, due to which it
also checks the potentially quite large contents within closures. It could
simply stop to things which cannot have structure which could be shared in this
context.
You see a prompt.
> (define foo (iota 0 1 100000))
'foo
> (define x (serialize-lazy foo null #false))
'x
> (ltake x 20)
'(39 40 48 32 49 32 50 32 51 32 52 32 53 32 54 32 55 32 56 32) <- instant
> x
'(39 40 48 . #<in:take-while>) <- after a brief pause
Original issue reported on code.google.com by aohelin on 10 Feb 2012 at 9:10
Original issue reported on code.google.com by
aohelin
on 10 Feb 2012 at 9:10