ruby-core

Mailing list archive

[#33640] [Ruby 1.9-Bug#4136][Open] Enumerable#reject should not inherit the receiver's instance variables — Hiro Asari <redmine@...>

Bug #4136: Enumerable#reject should not inherit the receiver's instance variables

10 messages 2010/12/08

[#33667] [Ruby 1.9-Bug#4149][Open] Documentation submission: syslog standard library — mathew murphy <redmine@...>

Bug #4149: Documentation submission: syslog standard library

11 messages 2010/12/10

[#33683] [feature:trunk] Enumerable#categorize — Tanaka Akira <akr@...>

Hi.

14 messages 2010/12/12
[#33684] Re: [feature:trunk] Enumerable#categorize — "Martin J. Dst" <duerst@...> 2010/12/12

[#33687] Towards a standardized AST for Ruby code — Magnus Holm <judofyr@...>

Hey folks,

23 messages 2010/12/12
[#33688] Re: Towards a standardized AST for Ruby code — Charles Oliver Nutter <headius@...> 2010/12/12

On Sun, Dec 12, 2010 at 9:55 AM, Magnus Holm <judofyr@gmail.com> wrote:

[#33689] Re: Towards a standardized AST for Ruby code — "Haase, Konstantin" <Konstantin.Haase@...> 2010/12/12

On Dec 12, 2010, at 17:46 , Charles Oliver Nutter wrote:

[#33763] [Ruby 1.9-Bug#4168][Open] WeakRef is unsafe to use in Ruby 1.9 — Brian Durand <redmine@...>

Bug #4168: WeakRef is unsafe to use in Ruby 1.9

43 messages 2010/12/17

[#33815] trunk warnflags build issue with curb 0.7.9? — Jon <jon.forums@...>

As this may turn out to be a 3rd party issue rather than a bug, I'd like some feedback.

11 messages 2010/12/22

[#33833] Ruby 1.9.2 is going to be released — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

15 messages 2010/12/23

[#33846] [Ruby 1.9-Feature#4197][Open] Improvement of the benchmark library — Benoit Daloze <redmine@...>

Feature #4197: Improvement of the benchmark library

15 messages 2010/12/23

[#33910] [Ruby 1.9-Feature#4211][Open] Converting the Ruby and C API documentation to YARD syntax — Loren Segal <redmine@...>

Feature #4211: Converting the Ruby and C API documentation to YARD syntax

10 messages 2010/12/26

[#33923] [Ruby 1.9-Bug#4214][Open] Fiddle::WINDOWS == false on Windows — Jon Forums <redmine@...>

Bug #4214: Fiddle::WINDOWS =3D=3D false on Windows

15 messages 2010/12/27

[ruby-core:33923] [Ruby 1.9-Bug#4214][Open] Fiddle::WINDOWS == false on Windows

From: Jon Forums <redmine@...>
Date: 2010-12-27 15:46:40 UTC
List: ruby-core #33923
Bug #4214: Fiddle::WINDOWS =3D=3D false on Windows
http://redmine.ruby-lang.org/issues/show/4214

Author: Jon Forums
Status: Open, Priority: Normal
Assigned to: Aaron Patterson, Category: ext, Target version: 1.9.2
ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30363) [i386-mingw32]

<pre>
<code>
C:\Users\Jon>ruby --version
ruby 1.9.2p136 (2010-12-25 revision 30363) [i386-mingw32]

C:\Users\Jon>ruby -e "require 'fiddle';puts Fiddle::WINDOWS"
false
</code>
</pre>

The root cause was that configure.in never checked for windows.h. Consequ=
ently, on Windows, .ext/include/i386-mingw32/ruby/config.h never defined =
the HAVE_WINDOWS_H macro used by fiddle in ext/fiddle/{fiddle.c,fiddle.h,=
function.c}. FYI, the HAVE_WINDOWS_H macro is also used by ext/dl/{cfunc.=
c,dl.h,handle.c} but I've not tested the DL code on Windows. Fiddle and D=
L appear to be the only places in the code that HAVE_WINDOWS_H is checked=
.

After the attached patch on trunk@30404 I get

<pre>
<code>
C:\Users\Jon>ruby --version
ruby 1.9.3dev (2010-12-27 trunk 30404) [i386-mingw32]

C:\Users\Jon>ruby -e "require 'fiddle';puts Fiddle::WINDOWS"
true
</code>
</pre>

The patch was tested on (a) Windows 7 Ultimate 32-bit using the RubyInsta=
ller build recipes, (b) Arch Linux 2.6.36 32-bit, and (c) Arch Linux 32-b=
it cross-compiled for Windows.  Running @make test-all TESTS=3Dfiddle@ pa=
sses on both Win7 and Arch. The portion of the patch relating to win32/Ma=
kefile.sub is speculative as I don't build with VC. Perhaps Park H. or th=
e mswin32 maintainer will verify.

Please backport an acceptable version of the patch to ruby_1_9_2 at your =
earliest convenience.

Jon


----------------------------------------
http://redmine.ruby-lang.org

Attachments (1)

diff --git a/configure.in b/configure.in
index 3a1999c..e054841 100644
--- a/configure.in
+++ b/configure.in
@@ -1101,6 +1101,7 @@ AC_CHECK_HEADERS(limits.h sys/file.h sys/ioctl.h sys/syscall.h\
 		 sys/mkdev.h sys/utime.h xti.h netinet/in_systm.h float.h ieeefp.h \
 		 ucontext.h intrinsics.h langinfo.h locale.h sys/sendfile.h time.h \
 		 net/socket.h sys/socket.h)
+AC_CHECK_HEADERS_ONCE([windows.h])
 
 dnl Check additional types.
 RUBY_CHECK_SIZEOF(rlim_t, [int long "long long"], [], [
diff --git a/test/fiddle/test_fiddle.rb b/test/fiddle/test_fiddle.rb
index fa19aaf..625aaf9 100644
--- a/test/fiddle/test_fiddle.rb
+++ b/test/fiddle/test_fiddle.rb
@@ -16,4 +16,14 @@ class TestFiddle < Fiddle::TestCase
       assert_equal(DL.const_get(name), Fiddle.const_get(name))
     end
   end
+
+  def test_windows_constant
+    require 'rbconfig'
+    if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/
+      assert Fiddle::WINDOWS, "Fiddle::WINDOWS should be 'true' on Windows platforms"
+    else
+      refute Fiddle::WINDOWS, "Fiddle::WINDOWS should be 'false' on non-Windows platforms"
+    end
+  end
+
 end
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 4e2a069..937e778 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -450,6 +450,7 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub
 !endif
 #define RT_VER $(RT_VER)
 #define STDC_HEADERS 1
+#define HAVE_WINDOWS_H 1
 #define HAVE_SYS_TYPES_H 1
 #define HAVE_SYS_STAT_H 1
 #define HAVE_STDLIB_H 1

In This Thread

Prev Next