From owner-freebsd-java Wed Mar 13 17:39:41 2002 Delivered-To: freebsd-java@freebsd.org Received: from cafe.muraoka.info.waseda.ac.jp (cafe.muraoka.info.waseda.ac.jp [133.9.68.49]) by hub.freebsd.org (Postfix) with ESMTP id 61BD837B400 for ; Wed, 13 Mar 2002 17:39:14 -0800 (PST) Received: from muraoka.info.waseda.ac.jp (shudoh@localhost [127.0.0.1]) by cafe.muraoka.info.waseda.ac.jp (8.9.1a/3.7W) with ESMTP id KAA32180 for ; Thu, 14 Mar 2002 10:38:55 +0900 Message-Id: <200203140138.KAA32180@cafe.muraoka.info.waseda.ac.jp> To: java@FreeBSD.org From: shudo@computer.org Subject: shuJIT 0.7.11 Date: Thu, 14 Mar 2002 10:38:55 +0900 Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Hi all, I have released shuJIT 0.7.11. http://www.shudo.net/jit/ Two problem reports came to me last month from Mr. Mike Gratton and Mr. Maxim Sobolev. Now the newly released version of shuJIT run Xindice 1.0rc1 and jEdit 3.2.2 well. I'd appreciate any report on this version of shuJIT. Two bugs of shuJIT and one possible bug of FreeBSD 1.3.1-p6 came to the front of me. Bugs of shuJIT were kinds of Java stack destruction and those could be fixed. But, the last bug seems to be in JDK 1.3.1-p6, not shuJIT. I implemented a nasty workaround for it. It is automatically enabled if the shuJIT is compiled with 1.3.1-p6. See the macro named `WORKAROUND_FOR_FREEBSD_131P6' in config.h. The version of JDK seems to call JIT-compiled native code as the JDK leaves SIGTRAP signal blocked. It's possible that other signals are also kept blocked. Native code generated by shuJIT causes SIGTRAP intentionally for some reasons, but the signal is not delivered until it is unblocked by sigprocmask(2). Just when unblocked, it is delivered and the timing of the delivery is different from one intended by shuJIT (and me). We can reproduce the problem by following the below instruction: - Configure the shuJIT. % ./configure - Comment out the following line in config.h. #define WORKAROUND_FOR_FREEBSD_131P6 1 - Change `#define' to `#undef' in the line as follows in compiler.h. #define METHOD_INLINING Now, shuJIT with JDK 1.3.1-p6 aborts. If we enable the workaround indicated by the macro in config.h, shuJIT works correctly. Then, we can confirm the workaround implemented in runtime.c is effective. I am not sure there is this problem in the previous releases of JDK 1.3.1 and 1.2.X. If there is, I have to change the way to judge whether the workaround should be enabled or not. I'm running FreeBSD 4.5-STABLE about early in March. Note that the signal related problem mentioned above does not occur on Linux, at least with Blackdown JDK 1.3.1-02a-FCS. Kazuyuki Shudo shudo@computer.org http://www.shudo.net/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message