How could I load that JVM bridge?

I am having a use case or two for that and was thinking that this was
not working with new Pharos.

TIA
Phil

On Wed, May 3, 2017 at 2:32 PM, Raffaello Giulietti
<raffaello.giulie...@lifeware.ch> wrote:
> Problem solved.
>
> The cause was a mismatch between a 0-based index and a 1-based index on
> copying arrays between Smalltalk and C.
>
> Rather confusingly, for some reason, FFI indices are 1-based even for C
> arrays, so that calling ExternalAddress>>byteAt:put:, for example, requires
> the index to be unnaturally 1-based.
>
> While I put a lot of care at this issue, a specific spot in the code was
> erroneous, leading to an improperly terminated C-style string which, in
> turn, caused the indirect crash of Pharo.
>
> My fault, however, neither Pharo's nor the JVM's.
>
>
> Thanks to all involved in replies.
>
>
> Greetings
> Raffaello
>
>
>
> On 2017-05-03 13:52, Ben Coman wrote:
>>
>>
>>
>> On Wed, May 3, 2017 at 4:33 PM, Raffaello Giulietti
>> <raffaello.giulie...@lifeware.ch <mailto:raffaello.giulie...@lifeware.ch>>
>> wrote:
>>
>>     Unfortunately, as I just discovered, older versions of Pharo do not
>>     support UFFI. I don't have the time (nor a real interest) in
>>     backporting the code to an older pre-Spur VM which has probably
>>     reached its EOL just for the sake of experimentation. It would
>>     probably take hours to understand the older FFI model and to adapt
>>     the code for no real advantage.
>>
>>     The current Pharo VM seems to support only the --memory option: I
>>     tried with 1 and 2 GiB, nothing changes in the misbehavior.
>>
>>     I also tried the two heap-related JVM options in isolation,
>>     unsuccessfully. Just for information, the current values for the
>>     options are -Xms16m and -Xmx512m, meaning that the JVM heap should
>>     start with 16 MiB and grow to a maximum size of 512 MiB, both of
>>     which are rather modest values even for a 32 bit process. Besides,
>>     they work in VisualWorks (32 bit).
>>
>>
>> What about tiny memory allocation like  --memory 100m and  -Xmx 100m ?
>>
>> Can you share some code that causes the crash?
>>
>> cheers -ben
>>
>>
>>     The StackOverflow page indicated below is from year 2010, during the
>>     age of Java 6. The JVM has undergone major changes since then,
>>     including memory management, so I'm not sure the discussion there is
>>     relevant for Java 8, the release we are targeting as of today. But
>>     even if it were, I still cannot understand the crash in Pharo.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>     On 2017-05-03 06:36, Ben Coman wrote:
>>
>>
>>
>>         On Wed, May 3, 2017 at 12:30 AM, Denis Kudriashov
>>         <dionisi...@gmail.com <mailto:dionisi...@gmail.com>
>>         <mailto:dionisi...@gmail.com <mailto:dionisi...@gmail.com>>>
>> wrote:
>>
>>              Could you check how it works with Pharo5 which was based on
>>         prespur
>>              CogVM?
>>
>>
>>         Note, Pharo 5 Release was a Spur VM.
>>         Try using...
>>         http://files.pharo.org/get-files/50-preSpur/
>>         <http://files.pharo.org/get-files/50-preSpur/>
>>         http://files.pharo.org/image/50-preSpur/50495.zip
>>         <http://files.pharo.org/image/50-preSpur/50495.zip>
>>
>>         or even Pharo 4.
>>
>>         cheers -ben
>>
>>
>>              2017-05-02 16:36 GMT+02:00 Raffaello Giulietti
>>              <raffaello.giulie...@lifeware.ch
>>         <mailto:raffaello.giulie...@lifeware.ch>
>>              <mailto:raffaello.giulie...@lifeware.ch
>>         <mailto:raffaello.giulie...@lifeware.ch>>>:
>>
>>
>>                  Hello,
>>
>>                  I'm on Pharo 6 (32 bit)/Windows 10 (64 bit).
>>
>>                  I'm trying to load and use the (32 bit) JVM DLL into a
>>         running
>>                  Pharo image via the UFFI.
>>
>>                  Everything works correctly, including JVM method
>>         invocations,
>>                  except when trying to set the minimum and maximum JVM
>>         heap size
>>                  by passing the -Xms<size> and -Xmx<size> options upon JVM
>>                  creation. With these options, Pharo simply crashes
>> without
>>                  leaving any trace.
>>
>>
>>         Can you isolate whether the problem is either one of those, or
>>         it happens with both, and if there is some cutoff where it
>>         works?  Also, perhaps try limiting heap being used by Pharo
>>                --memory <size>[mk]    use fixed heap size (added to
>>         image size)
>>                --mmap <size>[mk]      limit dynamic heap size (default:
>>         1024m) [out 2G on 32-bit)
>>                --maxoldspace <size>[mk]    set max size of old space
>>         memory to bytes
>>                (disclaimer, I'm not too knowledgeable on these, just
>>         pulled them from --help)
>>
>>         Also consider that heap needs to be contiguous...
>>
>> **http://stackoverflow.com/questions/2457514/understanding-max-jvm-heap-size-32bit-vs-64bit
>>
>> <http://stackoverflow.com/questions/2457514/understanding-max-jvm-heap-size-32bit-vs-64bit>
>>         cheers -ben
>>
>>
>>                  Apparently, memory management requests from the JVM
>>         interfere
>>                  with Pharo's own memory management.
>>
>>                  Please note that we successfully use the same mechanism
>>         for both
>>                  VisualWorks (32 bit)/Windows 10 (64 bit) and Gemstone 64
>>                  bit/Linux, so it seems it has to do with a Pharo
>>         limitation somehow.
>>
>>                  Further, I couldn't find any documentation on how to
>>         increase
>>                  Pharo's working set.
>>
>>                  So the questions are:
>>                  * What is the most probable cause of the crash
>>         described above?
>>                  * Where is there more doc about Pharo's memory
>>         configuration
>>                  settings?
>>
>>                  Greetings
>>                  Raffaello
>>
>>
>>
>>
>>
>>
>>
>
>

Reply via email to