Tom Bachmann wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Swaroop Sridhar wrote: > >>This is not your mistake, the compiler took an assertion fault here. >>This error message is not intended to be comprehensible, but to get as >>much information as possible to help debug the problem. Thanks for >>noting this problem, I will look into it and send another note. >> > > > Just in case this helps, if I explicitely declare v to be (vector > string), bitcc creates wrong c code.
I fixed this issue. There was a bug in printing function types. I have committed this update, it might take a little while before it propagates to the server. Now, the code: (bitc-version "0.9+") (import stdio bitc.stdio) (define (main argv:(vector string)) (let ((print (lambda (s) (stdio.write-string stdio.stdout s) (stdio.write-char stdio.stdout #\linefeed))) (vector-for-each (lambda (f v) (f "foo")))) ; dummy (vector-for-each print argv)) (the int32 0)) works OK. Of course, it will only print `foo' rather than the contents of the vector because of the way it is written. The real problem is that the polyinstantiator does not (yet) do polyinstantiation of locals. If the above code were to be written as: (bitc-version "0.9+") (import stdio bitc.stdio) (define (print s) (stdio.write-string stdio.stdout s) (stdio.write-char stdio.stdout #\linefeed)) (define (vector-for-each f v) (f "foo")) (define (main argv:(vector string)) (vector-for-each print argv) (the int32 0)) everything works fine (note that the type of v is not explicitly written in this case). Thank you for the example. I will try to fix the real problem shortly. Swaroop. _______________________________________________ bitc-dev mailing list bitc-dev@coyotos.org http://www.coyotos.org/mailman/listinfo/bitc-dev