Christian, On 30 December 2013 at 19:33, Christian Hofstaedtler wrote: | Dirk, | | * Dirk Eddelbuettel <e...@debian.org> [131226 02:09]: | > Could you possibly help with some Ruby assistance? | | I'm attaching a patch which makes 'make' in quantlib-swig-1.3/Ruby | run to completion. I have not tested if the built code works.
Awesome. I'll check this into upstream git as a branch which give it proper testing. Also, I finally email the upstream list earlier today. Did you use Ruby 1.9.1 or 2.0 ? Thanks so much, und tschuess, Dirk | Christian | -- | ,''`. Christian Hofstaedtler <z...@debian.org> | : :' : Debian Developer | `. `' 7D1A CFFA D9E0 806C 9C4C D392 5C13 D6DB 9305 2E03 | `- | | | ---------------------------------------------------------------------- | Index: quantlib-swig-1.3/SWIG/linearalgebra.i | =================================================================== | --- quantlib-swig-1.3.orig/SWIG/linearalgebra.i 2013-06-14 16:31:46.000000000 +0200 | +++ quantlib-swig-1.3/SWIG/linearalgebra.i 2013-12-30 19:25:39.227673574 +0100 | @@ -283,10 +283,10 @@ bool extractArray(PyObject* source, Arra | #elif defined(SWIGRUBY) | %typemap(in) Array (Array* v) { | if (rb_obj_is_kind_of($input,rb_cArray)) { | - Size size = RARRAY($input)->len; | + Size size = RARRAY_LEN($input); | $1 = Array(size); | for (Size i=0; i<size; i++) { | - VALUE o = RARRAY($input)->ptr[i]; | + VALUE o = RARRAY_PTR($input)[i]; | if (TYPE(o) == T_FLOAT) | (($1_type &)$1)[i] = NUM2DBL(o); | else if (FIXNUM_P(o)) | @@ -304,11 +304,11 @@ bool extractArray(PyObject* source, Arra | %typemap(in) const Array& (Array temp), | const Array* (Array temp) { | if (rb_obj_is_kind_of($input,rb_cArray)) { | - Size size = RARRAY($input)->len; | + Size size = RARRAY_LEN($input); | temp = Array(size); | $1 = &temp; | for (Size i=0; i<size; i++) { | - VALUE o = RARRAY($input)->ptr[i]; | + VALUE o = RARRAY_PTR($input)[i]; | if (TYPE(o) == T_FLOAT) | temp[i] = NUM2DBL(o); | else if (FIXNUM_P(o)) | @@ -355,11 +355,11 @@ bool extractArray(PyObject* source, Arra | %typemap(in) Matrix (Matrix* m) { | if (rb_obj_is_kind_of($input,rb_cArray)) { | Size rows, cols; | - rows = RARRAY($input)->len; | + rows = RARRAY_LEN($input); | if (rows > 0) { | - VALUE o = RARRAY($input)->ptr[0]; | + VALUE o = RARRAY_PTR($input)[0]; | if (rb_obj_is_kind_of(o,rb_cArray)) { | - cols = RARRAY(o)->len; | + cols = RARRAY_LEN(o); | } else { | rb_raise(rb_eTypeError, | "wrong argument type (expected Matrix)"); | @@ -369,14 +369,14 @@ bool extractArray(PyObject* source, Arra | } | $1 = Matrix(rows,cols); | for (Size i=0; i<rows; i++) { | - VALUE o = RARRAY($input)->ptr[i]; | + VALUE o = RARRAY_PTR($input)[i]; | if (rb_obj_is_kind_of(o,rb_cArray)) { | - if (Size(RARRAY(o)->len) != cols) { | + if (Size(RARRAY_LEN(o)) != cols) { | rb_raise(rb_eTypeError, | "Matrix must have equal-length rows"); | } | for (Size j=0; j<cols; j++) { | - VALUE x = RARRAY(o)->ptr[j]; | + VALUE x = RARRAY_PTR(o)[j]; | if (SWIG_FLOAT_P(x)) | $1[i][j] = SWIG_NUM2DBL(x); | else | @@ -397,11 +397,11 @@ bool extractArray(PyObject* source, Arra | const Matrix* (Matrix temp) { | if (rb_obj_is_kind_of($input,rb_cArray)) { | Size rows, cols; | - rows = RARRAY($input)->len; | + rows = RARRAY_LEN($input); | if (rows > 0) { | - VALUE o = RARRAY($input)->ptr[0]; | + VALUE o = RARRAY_PTR($input)[0]; | if (rb_obj_is_kind_of(o,rb_cArray)) { | - cols = RARRAY(o)->len; | + cols = RARRAY_LEN(o); | } else { | rb_raise(rb_eTypeError, | "wrong argument type (expected Matrix)"); | @@ -412,14 +412,14 @@ bool extractArray(PyObject* source, Arra | temp = Matrix(rows,cols); | $1 = &temp; | for (Size i=0; i<rows; i++) { | - VALUE o = RARRAY($input)->ptr[i]; | + VALUE o = RARRAY_PTR($input)[i]; | if (rb_obj_is_kind_of(o,rb_cArray)) { | - if (Size(RARRAY(o)->len) != cols) { | + if (Size(RARRAY_LEN(o)) != cols) { | rb_raise(rb_eTypeError, | "Matrix must have equal-length rows"); | } | for (Size j=0; j<cols; j++) { | - VALUE x = RARRAY(o)->ptr[j]; | + VALUE x = RARRAY_PTR(o)[j]; | if (SWIG_FLOAT_P(x)) | temp[i][j] = SWIG_NUM2DBL(x); | else | Index: quantlib-swig-1.3/Ruby/setup.rb | =================================================================== | --- quantlib-swig-1.3.orig/Ruby/setup.rb 2013-12-30 19:26:37.567320743 +0100 | +++ quantlib-swig-1.3/Ruby/setup.rb 2013-12-30 19:27:06.379146597 +0100 | @@ -18,7 +18,6 @@ | | require 'rbconfig' | require 'mkmf' | -require 'ftools' | | def usage | puts <<EOU | @@ -59,7 +58,7 @@ end | # Current QuantLib version | Version = "1.3" | | -cfg = Config::MAKEFILE_CONFIG | +cfg = RbConfig::MAKEFILE_CONFIG | | # commands | class Command | @@ -79,7 +78,7 @@ Wrap = Command.new { | } | | Build = Command.new { | - cfg = Config::MAKEFILE_CONFIG | + cfg = RbConfig::MAKEFILE_CONFIG | if cfg['host_os'] == 'mswin32' | QL_DIR = ENV['QL_DIR'] | if QL_DIR | @@ -140,19 +139,19 @@ Install = Command.new { | Build.execute | if defined? Prefix | # strip old prefix and add the new one | - oldPrefix = Config::CONFIG["prefix"] | + oldPrefix = RbConfig::CONFIG["prefix"] | if defined? Debian | - archDir = Config::CONFIG["archdir"] | - libDir = Config::CONFIG["rubylibdir"] | + archDir = RbConfig::CONFIG["archdir"] | + libDir = RbConfig::CONFIG["rubylibdir"] | else | - archDir = Config::CONFIG["sitearchdir"] | - libDir = Config::CONFIG["sitelibdir"] | + archDir = RbConfig::CONFIG["sitearchdir"] | + libDir = RbConfig::CONFIG["sitelibdir"] | end | archDir = Prefix + archDir.gsub(/^#{oldPrefix}/,"") | libDir = Prefix + libDir.gsub(/^#{oldPrefix}/,"") | else | - archDir = Config::CONFIG["sitearchdir"] | - libDir = Config::CONFIG["sitelibdir"] | + archDir = RbConfig::CONFIG["sitearchdir"] | + libDir = RbConfig::CONFIG["sitelibdir"] | end | [archDir,libDir].each { |path| File.makedirs path } | if cfg['host_os'][0..5] == 'darwin' | application/pgp-signature [Press RETURN to save to a file] -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org