Aha! It's working now. The basic flow was right, I just needed a lot of
fiddling with the rust translations of the types.

Thanks, everyone!




On Tue, Dec 7, 2021 at 7:18 AM Michal Wallace <[email protected]>
wrote:

> Nice! My actual goal is to get J talking to godot (game engine). As it
> happens, rust and haskell are apparently two of the most-developed languages
> for writing godot extensions, so if this fails I may try your haskell
> bindings.
>
> I got some rudimentary free pascal bindings working without much hassle
> many years ago, so I think my problem really
> is just not understanding the rust side, but I could have also
> mis-translated something on the J end and just don't see it yet.
>
> (as for the crash, that's pretty much what i get too.) I think the j.so or
> j.dylib library needs to be in the
> current directory at the moment, and you'd need to change line 13 to tell
> it what the filename is.
>
> The debugger tells me this, but I have no idea what I'm looking at here:
>
> ; id = {0xffffffff}, range = [0x00000001800fe110-0x00000001800fe260),
> name="JDo"
> ; Source location: unknown
> 7FFCD598E110: 56                         pushq  %rsi
> 7FFCD598E111: 57                         pushq  %rdi
> 7FFCD598E112: 53                         pushq  %rbx
> 7FFCD598E113: 48 83 EC 40                subq   $0x40, %rsp
> 7FFCD598E117: C5 F8 29 74 24 30          vmovaps %xmm6, 0x30(%rsp)
> 7FFCD598E11D: 48 8B 05 14 DC 3B 00       movq   0x3bdc14(%rip), %rax
> 7FFCD598E124: 48 31 E0                   xorq   %rsp, %rax
> 7FFCD598E127: 48 89 44 24 28             movq   %rax, 0x28(%rsp)
> 7FFCD598E12C: 48 89 4C 24 20             movq   %rcx, 0x20(%rsp)
> 7FFCD598E131: 8A 81 ED 01 00 00          movb   0x1ed(%rcx), %al
> 7FFCD598E137: 84 C0                      testb  %al, %al
> 7FFCD598E139: 0F 85 C6 00 00 00          jne    0x7ffcd598e205  ; <+245>
> 7FFCD598E13F: 80 B9 E0 52 00 00 02       cmpb   $0x2, 0x52e0(%rcx)
>
> I think maybe this is the start (??) of the code for JDo, so it might be
> the parameter is an invalid pointer, but I don't know how to interpret this.
>
>
> On Mon, Dec 6, 2021 at 8:47 PM Vanessa McHale <[email protected]> wrote:
>
>> Hm, I’m not familiar with the dlopen crate, had you used it before? I
>> can’t tell what’s going on under the hood!
>>
>> I was able to get FFI working by looking at
>> https://github.com/jsoftware/stats_jserver4r/blob/4c94fc6df351fab34791aa9d78d158eaefd33b17/source/lib/j2r.c
>> <
>> https://github.com/jsoftware/stats_jserver4r/blob/4c94fc6df351fab34791aa9d78d158eaefd33b17/source/lib/j2r.c>
>> and
>> https://github.com/jsoftware/stats_jserver4r/blob/4c94fc6df351fab34791aa9d78d158eaefd33b17/source/lib/r2j.c
>> <
>> https://github.com/jsoftware/stats_jserver4r/blob/4c94fc6df351fab34791aa9d78d158eaefd33b17/source/lib/r2j.c
>> >
>>
>> I got Haskell bindings: https://github.com/vmchale/j-hs <
>> https://github.com/vmchale/j-hs> but BUT interestingly one test fails on
>> older GHCs… can’t tell why and I never did get around to debugging it.
>>
>> BTW I get
>>
>> error: test failed, to rerun pass '--lib'
>>
>> Caused by:
>>   process didn't exit successfully:
>> `/private/tmp/jlang-rs/target/debug/deps/jlang-1c90c81a3f6fae1c
>> --nocapture` (signal: 11, SIGSEGV: invalid memory reference)
>>
>> on mac
>>
>> > On Dec 6, 2021, at 7:22 PM, bill lam <[email protected]> wrote:
>> >
>> > I don't know rust at all. What exactly do you expect and how it failed?
>> >
>> > On Tue, 7 Dec 2021 at 9:10 AM Michal Wallace <[email protected]>
>> > wrote:
>> >
>> >> ... It was not a successfu attempt. :)
>> >>
>> >> https://github.com/tangentstorm/jlang-rs/blob/main/src/lib.rs
>> >>
>> >> The basic plumbing seems to work unless I actually call JDo() on line
>> 75
>> >> here.
>> >> Any rust fans out there who might be able to help me figure this out?
>> >>
>> >> -Michal
>> >> ----------------------------------------------------------------------
>> >> For information about J forums see http://www.jsoftware.com/forums.htm
>> >>
>> > ----------------------------------------------------------------------
>> > For information about J forums see http://www.jsoftware.com/forums.htm
>>
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to