[#30589] [Bug #3391] Use single exclamation mark instead of double exclamation mark for IRB — Diego Viola <redmine@...>

Bug #3391: Use single exclamation mark instead of double exclamation mark for IRB

10 messages 2010/06/04

[#30672] [Bug #3411] Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100 — Benoit Daloze <redmine@...>

Bug #3411: Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100

12 messages 2010/06/08

[#30699] [Bug #3419] 1.9.2-preview3 possible bug with Rails 3 active_record sqlite_adapter — Joe Sak <redmine@...>

Bug #3419: 1.9.2-preview3 possible bug with Rails 3 active_record sqlite_adapter

9 messages 2010/06/09

[#30734] [Bug #3428] ri outputs ansi escape sequences even when stdout is not a tty — caleb clausen <redmine@...>

Bug #3428: ri outputs ansi escape sequences even when stdout is not a tty

11 messages 2010/06/11

[#30756] [Feature #3436] Spawn the timer thread lazily — Maximilian Gass <redmine@...>

Feature #3436: Spawn the timer thread lazily

15 messages 2010/06/13
[#32686] [Ruby 1.9-Feature#3436] Spawn the timer thread lazily — Mark Somerville <redmine@...> 2010/10/04

Issue #3436 has been updated by Mark Somerville.

[ruby-core:30917] [Bug #3487] fiddle pushes arguments in a wrong format

From: Yuki Sonoda <redmine@...>
Date: 2010-06-27 11:36:45 UTC
List: ruby-core #30917
Bug #3487: fiddle pushes arguments in a wrong format
http://redmine.ruby-lang.org/issues/show/3487

Author: Yuki Sonoda
Status: Assigned, Priority: Normal
Assigned to: Aaron Patterson, Target version: 1.9.2
ruby -v: ruby 1.9.2dev (2010-06-25 revision 28427) [i386-darwin9.8.0]

DL::TestImport#test_qsort fails on Mac OS X 10.5 when
* Ruby is compiled with the universal binary version of libffi.
  * It does not reproduce even when Ruby is dynamically linked with the libffi, if Ruby is compiled with a libffi which is not universal binary.
* And ruby is compiled for i386.

and here is a copy of the mail I sent to report the problem to tenderlove:
---
Hi,

Here's a log:
 1) Failure:
test_qsort(DL::TestImport)
[/Users/yugui/dev/ruby/mri/1.9.2/test/dl/test_import.rb:148]:
<"1349"> expected but was
<"9341">.

== Problem
The problem is fiddle regards rb_ffi_type_of(long) as ffi_type_sint64
even if complied for i386 but not for x86_64.
So libffi set up a wrong stack for qsort.

There are two reasons. The first reason is a problem of macports:
* https://trac.macports.org/ticket/25439
MacPorts installs a invalid header ffitarget.h, so
ext/fiddle/extconf.rb fails to detect libffi installed by MacPorts.
This happens when
* MacPorts uses +universal variant for libffi
* fiddle is compiled with the universal libffi
* universal_archs option for MacPorts includes both ppc and i386

The other reason is /usr/include/ffi/ffitarget.h on OSX Leopard.
OSX Leopard uses i386 arch by default, however, the ffitarget.h is
configured as sizeof(long)==8.

fiddle uses /usr/include/ffi/ffi.h instiead of
/opt/local/lib/libffi-3.0.9/include/ffi.h and it uses
# define ffi_type_slong ffi_type_sint64.

== Reproduction
In http://twitter.com/tenderlove/status/17103559909:
> I can't seem to reproduce.

I think you uses OSX Snow Leopard, so gcc compiles ruby for x86_64 by
default. sizeof(long) == 8 is correct in this case.
Could you try ./configure --with=arch=i386 for Ruby's configuration?

== Solution
I succeeded to avoid this problem by overwriting the aliases based on
Ruby's configuration as the following patch:
* http://gist.github.com/454779

I think it is enough because libffi seems to assume CHAR_BIT == 8.
What do you think?


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

In This Thread

Prev Next