This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: Exported variables are null when required from applet, but ok otherwise
- From: alex mitchell <lexaay at gmail dot com>
- To: Per Bothner <per at bothner dot com>
- Cc: "kawa at sourceware dot org" <kawa at sourceware dot org>
- Date: Mon, 03 May 2010 21:19:19 +0800
- Subject: Re: Exported variables are null when required from applet, but ok otherwise
Hi Per,
The workaround you suggested works nicely, thanks.
Alex
On 5/3/10 1:58 AM, "Per Bothner" <per@bothner.com> wrote:
> On 05/01/2010 09:57 PM, alex mitchell wrote:
>> That would be great, thanks!
>>
>> It seems to me that when modules are required from an applet, the module
>> body is not evaluated. Variables and procedures are declared but variables
>> aren't initialized, and any code in the module body isn't executed. I tried
>> adding (module-static 'init-run)
>> at the top of the imported module as I
>> figured this would force the module body to be run, but this caused the
>> following error when running in appletviewer:
>>
>> $ appletviewer applettest.html
>> called init.
>> called start.
>> java.lang.IllegalAccessError
>> at test.<clinit>(test.scm)
>> at applettest.start(applettest.scm:6)
>> at sun.applet.AppletPanel.run(AppletPanel.java:464)
>> at java.lang.Thread.run(Thread.java:637)
>> $
>
> This fails because when you compile applettest.scm it recompiles
> test.scm (even if you compile test.scm first and applettest.scm in a
> second compilation command) - which causes it to extend Applet.
>
> A workaround is to change applettest.scm to require the class rather
> than the source file:
>
> (require test)
>
> instead of:
>
> (require "test.scm")
>
> There seems to be a couple of different issues here, which I'll
> continue looking at, but hopefully this work-around is OK for you.