This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: Portable Syntax Case
Adam Warner wrote:
I suspected this could be a bug in Kawa's implementation. Thank you for
the analysis. I'd like to know how you obtained the disassembly.
I use jcf-dump, which is installed by a full gcc-with-cj installation.
(It is installed by a full Red Hat / Fedora installation, for example.)
I also tried would Kawa with the gcc 3.4 prerelease, and its verifier
is more specific:
$ bin/kawa.sh -e "(require 'list-lib)" --debug-dump-zip -f /tmp/psyntax.pp
java.lang.VerifyError: verification failed at PC 125 in
atInteractiveLevel$frame:lambda44makeBindingWrap415((Ljava.lang.Object;Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;):
incompatible type on stack
at _Jv_BytecodeVerifier.verify_fail(byte, int)
(/home/bothner/GNU/install-gcc/lib/libgcj.so.5.0.0)
It doesn't seem like it failed in the same location; I assume because
the class loading isn't identical.
Debuging these errors is tedious, especially when the testcase is
so complex (to big to get a handle on). If you could trim psyntax.pp
to a minimal testcase that still triggers a VerifyError, that would
make it a bit easier.
It's my opinion that because this is incompletely specified and baroque
that you shouldn't attempt to reimplement psyntax.scm in Java. It's
better freeriding upon the canonical implementation while a
specification stabilises.
I doubt that will ever happen - syntax-case dates back to 1992, and
not much has changed since then.
--
--Per Bothner
per@bothner.com http://per.bothner.com/