[graalvm-users] Testing polyglot libs

Benoit Daloze eregontp at gmail.com
Sun Jun 17 11:31:41 PDT 2018


Yes, it makes perfect sense.
Actually we need that capability for mini_racer, where we want multiple
JavaScript context from one Ruby context.

Could you file an issue on https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_issues&d=DwIFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=CUkXBxBNT_D5N6HMJ5T9Z6rmvNKYsqupcbk72K0lcoQ&m=k7NRPYUa8hjmUxEjgM1rZa-K7Yt8fd_MlzBgZcYjifE&s=hJCnVwQXTVi6XYSKjhkjsNsQZRzY0vKyr3P7L26UrNs&e= with what
you just explained to track progress on this more easily?

On Fri, Jun 15, 2018 at 1:57 PM, Rodrigo Botafogo <
rodrigo.a.botafogo at gmail.com> wrote:

> Benoit,
>
> Actually, I think I have a pricise use case... let's say I'm building a
> Web Application that at some point might need to develop a data model for
> the user.  In this case:
>
>    - I don't want my web application to be single threaded just because
>    eventually I'll need to interface with R to build a data model;
>    - Since building a data model is time usually consuming, then the best
>    would be do have a worker thread take care of this model while not
>    impacting user's interaction;
>    - Since different users might request different models, it would be
>    ideal if I could "instantiate" a new R for every users and run that on
>    there own threads.
>
> Makes sense?
>
>
> On Thu, Jun 14, 2018 at 4:54 PM Rodrigo Botafogo <
> rodrigo.a.botafogo at gmail.com> wrote:
>
>> Benoit,
>>
>> At this point I don't really have a precise use case.  If there is a flag
>> to force multithread and the user calls R from two threads, I think
>> crashing would be the safest thing for R to do!
>>
>> It just seems a very strong restriction to prevent the code from running
>> just because there is an integration.  Letting it run with an override flag
>> would allow the use cases to appear.
>>
>> Thanks!
>>
>> On Thu, Jun 14, 2018 at 4:00 PM Benoit Daloze <eregontp at gmail.com> wrote:
>>
>>> Indeed, we'd like to allow such a scenario and we are trying to figure
>>> out how to make this work and still be safe.
>>>
>>> One interesting question is: what should happen if R is called from
>>> another Ruby thread?
>>>
>>> If you have a precise use-case in mind, could you post an issue on
>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_oracle_graal_issues&d=DwIFaQ&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=CUkXBxBNT_D5N6HMJ5T9Z6rmvNKYsqupcbk72K0lcoQ&m=k7NRPYUa8hjmUxEjgM1rZa-K7Yt8fd_MlzBgZcYjifE&s=hJCnVwQXTVi6XYSKjhkjsNsQZRzY0vKyr3P7L26UrNs&e= to track it more easily?
>>>
>>> On Thu, Jun 14, 2018 at 7:44 PM, Rodrigo Botafogo <
>>> rodrigo.a.botafogo at gmail.com> wrote:
>>>
>>>> Thanks Benoit!
>>>>
>>>> Now, is it really necessary to prevent multithreaded when interfacing
>>>> Ruby and R?  I understand that since R is not multithreaded, calling it
>>>> from multiple threads will cause weird problems, but if the programmer is
>>>> careful and say, only calls R from the same Ruby thread, everything should
>>>> work fine, no?  If this is the case, then could there be a flag to allow
>>>> multithreaded applications even in the presence of R?
>>>>
>>>> Thanks
>>>>
>>>>
>>>> On Thu, Jun 14, 2018 at 2:38 PM Benoit Daloze <eregontp at gmail.com>
>>>> wrote:
>>>>
>>>>> Note that one way to avoid MinitTest creating multiple threads is to
>>>>> give it `N=0` like
>>>>>
>>>>> $ N=0 ruby -Xsingle_threaded=true mytest.rb
>>>>>
>>>>> I checked and this seems to work fine with GraalVM RC2 and minitest
>>>>> 5.10.1 (bundled) and 5.11.3 (latest).
>>>>>
>>>>> On Thu, Jun 14, 2018 at 5:25 PM, Rodrigo Botafogo <
>>>>> rodrigo.a.botafogo at gmail.com> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I'm trying to set up testing for my polyglot lib and I'm having a
>>>>>> hard time.  Sorry if I should post somewhere else...
>>>>>>
>>>>>> So I tried to test with rspec, but rspec will run ruby somehow and
>>>>>> does not pass to ruby the --polyglot --jvm flags.  Polyglot complains that
>>>>>> R is not a known language.  I've googled around and could not find an easy
>>>>>> way to make rspec pass flags to ruby.
>>>>>>
>>>>>> Next I tried minitest, since in this case I call ruby directly with
>>>>>> the required flags... but polyglot complains that R cannot execute in
>>>>>> multithreaded, so I passed -Xsingle_threaded to ruby and minitest complains
>>>>>> that it only runs in a multithreaded environment.
>>>>>>
>>>>>> Any suggestions how to move forward?
>>>>>>
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Rodrigo Botafogo
>>>>>>
>>>>>> _______________________________________________
>>>>>> GraalVM-Users mailing list
>>>>>> GraalVM-Users at oss.oracle.com
>>>>>> https://oss.oracle.com/mailman/listinfo/graalvm-users
>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Rodrigo Botafogo
>>>> Integrando TI ao seu negócio
>>>> 21-3010-4802/11-3010-1802
>>>>
>>>
>>>
>>
>> --
>> Rodrigo Botafogo
>> Integrando TI ao seu negócio
>> 21-3010-4802/11-3010-1802
>>
>
>
> --
> Rodrigo Botafogo
> Integrando TI ao seu negócio
> 21-3010-4802/11-3010-1802
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://oss.oracle.com/pipermail/graalvm-users/attachments/20180617/09c63ed8/attachment.html 


More information about the GraalVM-Users mailing list