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

Reply via email to