[#28561] Ruby::DL vs Ruby::FFI — Aston <blackapache512-ticket@...>

Ruby.DL and FFI libraries are great for programmers like me who are not internet programmers, but are more interested in scientific and number processing etc.

11 messages 2010/03/08

[#28686] trunk (26947) build fail with msys/mingw/vista — Jon <jon.forums@...>

I get the following build failure when msysgit's "c:\git\cmd" dir is on PATH.

8 messages 2010/03/16

[#28687] [Bug #2973] rb_bug - Segmentation fault - error.c:213 — rudolf gavlas <redmine@...>

Bug #2973: rb_bug - Segmentation fault - error.c:213

10 messages 2010/03/16

[#28735] [Bug #2982] Ruby tries to link with both openssl and readline — Lucas Nussbaum <redmine@...>

Bug #2982: Ruby tries to link with both openssl and readline

16 messages 2010/03/18

[#28736] [Bug #2983] Ruby (GPLv2 only) tries to link to with readline (now GPLv3) — Lucas Nussbaum <redmine@...>

Bug #2983: Ruby (GPLv2 only) tries to link to with readline (now GPLv3)

10 messages 2010/03/18

[#28907] [Bug #3000] Open SSL Segfaults — Christian Höltje <redmine@...>

Bug #3000: Open SSL Segfaults

19 messages 2010/03/23

[#28924] [Bug #3005] Ruby core dump - [BUG] rb_sys_fail() - errno == 0 — Sebastian YEPES <redmine@...>

Bug #3005: Ruby core dump - [BUG] rb_sys_fail() - errno == 0

10 messages 2010/03/24

[#28954] [Feature #3010] slow require gems in ruby 1.9.1 — Miao Jiang <redmine@...>

Feature #3010: slow require gems in ruby 1.9.1

15 messages 2010/03/24

[#29179] [Bug #3071] Convert rubygems and rdoc to use psych — Aaron Patterson <redmine@...>

Bug #3071: Convert rubygems and rdoc to use psych

10 messages 2010/03/31

[ruby-core:28593] Re: Ruby::DL vs Ruby::FFI

From: wanabe <s.wanabe@...>
Date: 2010-03-10 15:56:31 UTC
List: ruby-core #28593
Hello,

2010/3/9, NARUSE, Yui <naruse@airemix.jp>:
> I confirmed Aaron's ext/dl can work with following
> patched libffi on mswin32/VC9.
> http://sourceware.org/ml/libffi-discuss/2010/msg00049.html
>
> If this also works on mswin64 and libffi merge this,
> we can reimport Aaron's new ext/dl.
> Please try this who have other than mswin32/VC9 and feedback to libffi.

I tried new dl on mswin64, and built it with the following patch.
But there is three issue at least.

1. object's memsize can't calculate correctly.
   It will be solved if libffi support ffi_raw_size() on mswin64.

2. test/dl/test_dl2.rb cause SEGV
   This is critical.

3. some tests fail.

diff --git a/ext/dl/closure.c b/ext/dl/closure.c
index 593d566..3d0c7ad 100644
--- a/ext/dl/closure.c
+++ b/ext/dl/closure.c
@@ -41,7 +41,9 @@ dlclosure_memsize(const void * ptr)

     if (ptr) {
 	size += sizeof(*cls);
+#if !defined(FFI_NO_RAW_API) || !FFI_NO_RAW_API
 	size += ffi_raw_size(cls->cif);
+#endif
 	size += sizeof(*cls->argv);
 	size += sizeof(ffi_closure);
     }
diff --git a/ext/dl/method.c b/ext/dl/method.c
index 1bd0fa8..5705f55 100644
--- a/ext/dl/method.c
+++ b/ext/dl/method.c
@@ -43,7 +43,9 @@ dlfunction_memsize(const void *p)

     if (ptr) {
 	size += sizeof(*ptr);
+#if !defined(FFI_NO_RAW_API) || !FFI_NO_RAW_API
 	size += ffi_raw_size(ptr);
+#endif
     }
     return size;
 }
diff --git a/win32/win32.c b/win32/win32.c
index 5189826..268c3c7 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -5278,11 +5278,7 @@ _ftol2_sse(double d)
 int
 signbit(double x)
 {
-#ifdef _M_IX86
     int *ip = (int *)(&x + 1) - 1;
     return *ip < 0;
-#else
-# error not supported
-#endif
 }
 #endif


-- 
wanabe

In This Thread