[plt-scheme] Embedding MzScheme in Java

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Tue Aug 8 16:53:02 EDT 2006

At Tue, 08 Aug 2006 13:38:23 -0700, Randal Walser wrote:
> I've followed the instructions in section 1.2 of Inside PLT MzScheme,
> but the HotSpot JVM (1.5.0_02-b09 mixed mode) reports an
> EXCEPTION_ACCESS_VIOLATION somewhere within scheme_basic_env.
> [...]
> I've also tried scheme_set_stack_base with all possible arg
> combinations.  In every case, the call sequence leading to the
> violation is the same.

Setting the C stack base is most likely the problem. The call to
scheme_handle_stack_overflow means that MzScheme thinks its running out
of stack space.

I think scheme_set_stack_base() will be necessary, but how do you
manage to get the stack base within JNI? In other words, maybe you can
show the calls to scheme_set_stack_base() and scheme-basic_env().

> I've tried linking with the MzScheme and GC dlls
>   1) in their default form (compiled with the /MT MSVC option), and
>   2) with the /MD option and USE_MSVC_MD_LIBRARY defined, as
>      recommended in the plt/src/worksp/README file (for linking
>      to DLL-based C libraries).

I think special support for /MD isn't necessary anymore, and I dropped
it in the latest upgrade of the GC. I will check into whether it's
needed after all (and clean up the docs if it isn't). My guess is that
this isn't the problem in your application, though.


Posted on the users mailing list.