Fix committed in r917597.  Note that this only applies when
Buildr::Util::win_os? is true.

Daniel

On Mon, Mar 1, 2010 at 11:13 AM, Pepijn Van Eeckhoudt <
[email protected]> wrote:

> Or better yet just use LIBC directly instead :)
> So ffi_lib FFI::Platform::LIBC
>
> I'll add this as a comment to BUILDR-348
>
> Pepijn
>
>
> On 1/3/2010 18:05, Pepijn Van Eeckhoudt wrote:
>
>> Aha, that confirms what I suspected. I was about to check the JRuby source
>> code, so thanks for saving me some digging :)
>>
>> Adding
>> ffi_lib "c"
>> before the attach_function does the trick. map_library_name maps this to
>> Platform::LIBC and then the attach works correctly.
>>
>> Pepijn
>>
>> On 1/3/2010 17:50, Antoine Toulme wrote:
>>
>>> 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
>>>>
>>>>
>>>>
>>>>
>>
>>
>
> --
> 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