Hi Joseph, > Hello, Manuel, > > When compiling the module below with either 4.3a or 4.3b for the JVM > backend and running it, I seeing the following error: > > bigloo.bexception > at bigloo.foreign.jumpexit(foreign.java:4929) > at bigloo.runtime.Llib.bexit.unwind-stack-until!(bexit.scm) > at bigloo.runtime.Llib.bexit.unwind-until!(bexit.scm) > at vector-contains.&collection-contains?1025(vector- > contains.scm) > at vector-contains.funcall2(vector-contains.scm) > at vector-contains.collection-contains?(vector-contains.scm) > at vector-contains.main(vector-contains.scm) > at vector-contains.bigloo_main(vector-contains.scm) > at vector-contains.main(vector-contains.scm) > > I don't see the error when compiling to native code or if I change the > inline functions to regular functions. > > It is not really a problem since I am able to easily code around it, > but I thought you would appreciate hearing about it. > > > Thank You, > Joseph Donaldson > > ------ collection-contains.scm -------- > (module collection-contains > (main main)) > > > (define-inline (vector-contains? vec itm) > (bind-exit (found) > (do ((i 0 (+ i 1))) > ((= i (vector-length vec) (found #f))) > (when (equal? (vector-ref vec i) itm) > (found #t))))) > > (define-inline (coll-string-contains? str itm) > (bind-exit (return) > (do ((i 0 (+ i 1))) > ((= i (string-length str) (return #f)) > (when (equal? (string-ref str i) itm) > (return #t)))))) > > > (define-generic (collection-contains? obj itm) > (cond ((vector? obj) > (vector-contains? obj itm)) > ((string? obj) > (coll-string-contains? obj itm)))) > > > (define (main args) > (print (collection-contains? '#(1 2 3) 4))) That's indeed a bug. I will work on it as soon as possible. Thanks for your report.
-- Manuel
