See my comment on BUILDR-348.

On Mon, Mar 1, 2010 at 08:49, Pepijn Van Eeckhoudt <
[email protected]> wrote:

> Just tested that; nothing happens. I don't see the vim output and jirb is
> no longer responding to input.
>
> Pepijn
>
>
> On 1/3/2010 17:37, Alex Boisvert wrote:
>
>> They may have fixed system() such that using FFI directly wouldn't be
>> necessary anymore.  A simple test such as "system 'vim'" from jirb on
>> Windows would confirm.
>>
>> alex
>>
>> On Mon, Mar 1, 2010 at 8:16 AM, Antoine Toulme<[email protected]
>> >wrote:
>>
>>
>>
>>> I can contact the jruby folks and see if a jruby update would help - JFFI
>>> is
>>> now 1.0 btw, while it was 0.4 in 1.4.0.
>>>
>>> On Mon, Mar 1, 2010 at 08:12, Alex Boisvert<[email protected]>
>>> wrote:
>>>
>>>
>>>
>>>> On Mon, Mar 1, 2010 at 3:00 AM, Pepijn Van Eeckhoudt<
>>>> [email protected]>  wrote:
>>>>
>>>>
>>>>
>>>>> It would be nice if BUILDR-348 could be resolved for 1.4.0. We are
>>>>>
>>>>>
>>>> planning
>>>>
>>>>
>>>>> on using buildr as internally running on jruby 1.4. Right now this
>>>>>
>>>>>
>>>> issue
>>>
>>>
>>>> means I will either have to maintain a custom buildr build or have
>>>>>
>>>>>
>>>> every
>>>
>>>
>>>> developer patch the buildr installation by hand.
>>>>>
>>>>> Any idea on the root cause of this problem? Does commenting out that
>>>>>
>>>>>
>>>> one
>>>
>>>
>>>> line have any other side effects?
>>>>>
>>>>>
>>>>>
>>>> The issue is that JRuby use{s,d} the JVM's System.exec() call to spawn
>>>> external processes, which isn't 100% equivalent to Unix system() call.
>>>>
>>>>
>>>  For
>>>
>>>
>>>> instance, if you spawned a process like 'vim' or a language shell like
>>>> 'scala' or 'irb', then you wouldn't be able to interact with the
>>>> sub-process
>>>> correctly due to incomplete redirection of all terminal capabilities.
>>>>
>>>> To solve this, we override the system() call to circumvent the JRuby's
>>>> system call and directly call the native system() using FFI.
>>>>
>>>> I don't know what's the state of things on JRuby 1.4.0 + Windows but
>>>> some
>>>> internals seem to have changed which is why we're getting the error
>>>> described in BUILDR-348.  Somebody needs to investigate what
>>>>
>>>>
>>> works/doesn't
>>>
>>>
>>>> work on Windows -- the workaround I provided on BUILDR-348 simply
>>>> reverts
>>>> to
>>>> using the standard system() implementation, which works for most things
>>>>
>>>>
>>> but
>>>
>>>
>>>> not shelling out to interactive apps.
>>>>
>>>> alex
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
> --
> Pepijn Van Eeckhoudt - Project Leader
> T +32 16 23 95 91
> F +32 16 29 34 22 | [email protected]
>
> LUCIAD - high performance visualization
> Wetenschapspark Arenberg | Gaston Geenslaan 9
> 3001 Leuven | Belgium | www.luciad.com
>
>
>

Reply via email to