# HG changeset patch # User John W. Eaton # Date 1412521959 14400 # Node ID 5d0ed3ca59105f1bc8d4ca7d1986efb9d4084826 # Parent 9caae5336e92c9ee5d9e2166aab5abaf36199650 new patch for stable-octave package diff -r 9caae5336e92 -r 5d0ed3ca5910 dist-files.mk --- a/dist-files.mk Sun Oct 05 11:15:06 2014 -0400 +++ b/dist-files.mk Sun Oct 05 11:12:39 2014 -0400 @@ -565,6 +565,7 @@ stable-octave-1-fixes.patch \ stable-octave-1-gnulib-isatty.patch \ stable-octave-2-winbelloff.patch \ + stable-octave-3-fixes.patch \ stable-octave.mk \ suitesparse-1.patch \ suitesparse.mk \ diff -r 9caae5336e92 -r 5d0ed3ca5910 src/stable-octave-3-fixes.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/stable-octave-3-fixes.patch Sun Oct 05 11:12:39 2014 -0400 @@ -0,0 +1,64 @@ +# HG changeset patch +# User John W. Eaton +# Date 1412519047 14400 +# Sun Oct 05 10:24:07 2014 -0400 +# Branch stable +# Node ID 3ffb8f53e94019084321d065390f4d4e215fd465 +# Parent 432ffa35de136a5dfd2a717a598750b62e6944f9 +use correct HDF5 size for octave_idx_type on Windows-64 (bug #43101) + +* ls-hdf5.h: Define H5T_NATIVE_IDX to H5T_NATIVE_INT64 when using +64-bit indexing. + +diff --git a/libinterp/corefcn/ls-hdf5.h b/libinterp/corefcn/ls-hdf5.h +--- a/libinterp/corefcn/ls-hdf5.h ++++ b/libinterp/corefcn/ls-hdf5.h +@@ -204,7 +204,7 @@ + const char *attr_name, void *buf); + + #ifdef USE_64_BIT_IDX_T +-#define H5T_NATIVE_IDX H5T_NATIVE_LONG ++#define H5T_NATIVE_IDX H5T_NATIVE_INT64 + #else + #define H5T_NATIVE_IDX H5T_NATIVE_INT + #endif +# HG changeset patch +# User John W. Eaton +# Date 1412520111 14400 +# Sun Oct 05 10:41:51 2014 -0400 +# Branch stable +# Node ID 0279c601b49ce5d539b1ae938e8ec562b63f1ced +# Parent 3ffb8f53e94019084321d065390f4d4e215fd465 +compute for loop indices consistently with range element results + +* pt-eval.cc (tree_evaluator::visit_simple_for_command): Use +Range::elem instead of compuiting elements directly. This change +appears to fix obscure test failures in eig.cc-tst on 64-bit Windows +systems. See also task #13313. + +diff --git a/libinterp/parse-tree/pt-eval.cc b/libinterp/parse-tree/pt-eval.cc +--- a/libinterp/parse-tree/pt-eval.cc ++++ b/libinterp/parse-tree/pt-eval.cc +@@ -336,21 +336,10 @@ + Range rng = rhs.range_value (); + + octave_idx_type steps = rng.nelem (); +- double b = rng.base (); +- double increment = rng.inc (); + + for (octave_idx_type i = 0; i < steps; i++) + { +- // Use multiplication here rather than declaring a +- // temporary variable outside the loop and using +- // +- // tmp_val += increment +- // +- // to avoid problems with limited precision. Also, this +- // is consistent with the way Range::matrix_value is +- // implemented. +- +- octave_value val (b + i * increment); ++ octave_value val (rng.elem (i)); + + ult.assign (octave_value::op_asn_eq, val); +