[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-core
Subject:    [ruby-core:74062] [Ruby trunk Bug#11962] Ruby 2.3.0 causing compile failure on extensions using a C+
From:       terceiro () softwarelivre ! org
Date:       2016-02-29 20:13:24
Message-ID: redmine.journal-57214.20160229201323.bde4fc2f8cf0019c () ruby-lang ! org
[Download RAW message or body]

Issue #11962 has been updated by Antonio Terceiro.


We are trying to transition Debian unstable to ruby2.3, you would be very helpful to \
have this applied to the 2.3 branch.

----------------------------------------
Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://bugs.ruby-lang.org/issues/11962#change-57214

* Author: Sameer Deshmukh
* Status: Closed
* Priority: Normal
* Assignee: Nobuyoshi Nakada
* ruby -v: 2.3.0
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: REQUIRED
----------------------------------------
Hello,

I'm a contributor with the SciRuby foundation, and we have a gem called \
[nmatrix](https://github.com/SciRuby/nmatrix), which is a ruby gem for linear algebra \
processing in Ruby.

For representing different types of data, nmatrix makes heavy use of C++ templates, \
which requires compilation with g++. Currently we wrap the code that defines ruby \
functions at C level in an `extern "C" {}` block in a .cpp file and use g++ to \
compile the file as a whole.

Upgrading to ruby 2.3.0 has caused a problem because of [this change implemented in \
the internals of the ruby C \
API](https://github.com/ruby/ruby/commit/334710c155ad19cfd947ce6bcd7127b97cbe37da#diff-3b256c5581538dcd834697c766a2b1aaR879).


As specified in the GCC docs (https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html) \
the function "__builtin_choose_expr" (that has been introduced in the latest Ruby C \
API) is available only for C. Thus the change is rendering our C++ extensions \
useless.

You can see the compile error being caused in nmatrix here: \
https://github.com/SciRuby/nmatrix/issues/429

I have come up with [a temporary fix for \
this](https://github.com/SciRuby/nmatrix/pull/432/files#diff-cc867f54069967617c44c1ca31a5969aR37), \
but its only patch work and will need to be done by every single extension employing \
a C++ compiler.

Looking forward to a positive response from you.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic