Hi folks,
Maybe I'm misunderstanding the proper usage of z3:encode-buffer, but
it seems to hang when I use certain strings as argument.
Here are some examples:
(use z3 (srfi 1))
;(z3:encode-buffer "") ; hangs
;(z3:encode-buffer "0") ; hangs
;(z3:encode-buffer "00") ; hangs
;(z3:encode-buffer "000") ; hangs
;(z3:encode-buffer "0000") ; ok
;(z3:encode-buffer "00000") ; ok
;(z3:encode-buffer "000000") ; ok
;(z3:encode-buffer "abcdef") ; hangs
;(z3:encode-buffer "abcdefab") ; hangs
;(z3:encode-buffer "abcdefabc") ; ok
(define (data n)
(apply conc (iota n)))
;(z3:encode-buffer (data 10)) ; hangs
;(z3:encode-buffer (data 15)) ; hangs
;(z3:encode-buffer (data 20)) ; ok
;(z3:encode-buffer (data 50)) ; ok
PS: "hangs" means the code seems to be in an endless loop. Looks like
z is never NULL in encode_all (z3.scm) for the problem-strings.
>From encode_all (z3.scm):
do {
z = z3d_encode(z, str + start, len, &taken, ptr, destlen, &given);
start += taken;
destlen -= given;
ptr += given;
len -= taken;
} while(z != NULL);
Any hint?
Best wishes,
Mario
_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users