changeset 4184:fc1bee8ff2d4

of-sparsersb: update to v1.0.1 * src/librsb.mk: update version, checksum to rc4. * src/of-sparsersb.mk: update version, checksum to 1.0.1 * src/librsb-1-nobzero.patch: remove patch * src/of-sparsersb-1-cross-build.patch: remove patch * src/of-sparsersb-1-fixes.patch: new patch * dist-files.mk: add of-sparsersb-1-fixes.patch * build_packages.m: update sparsersb version
author John D
date Sun, 07 Aug 2016 19:38:56 -0400
parents cc549d1865cb
children b7c4178dadc4
files build_packages.m dist-files.mk src/librsb-1-nobzero.patch src/librsb.mk src/of-sparsersb-1-cross-build.patch src/of-sparsersb-1-fixes.patch src/of-sparsersb.mk
diffstat 7 files changed, 345 insertions(+), 329 deletions(-) [+]
line wrap: on
line diff
--- a/build_packages.m	Fri Aug 05 21:24:58 2016 -0400
+++ b/build_packages.m	Sun Aug 07 19:38:56 2016 -0400
@@ -70,7 +70,7 @@
   try_install ocs-0.1.5.tar.gz
   try_install mapping-1.2.1.tar.gz
   try_install tisean-0.2.3.tar.gz
-  try_install sparsersb-1.0.0.tar.gz
+  try_install sparsersb-1.0.1.tar.gz
   try_install video-1.2.2.tar.gz
   try_install zeromq-1.2.1.tar.gz
 
--- a/dist-files.mk	Fri Aug 05 21:24:58 2016 -0400
+++ b/dist-files.mk	Sun Aug 07 19:38:56 2016 -0400
@@ -493,6 +493,7 @@
   of-signal.mk \
   of-sockets-1-cross-fixes.patch \
   of-sockets.mk \
+  of-sparsersb-1-fixes.patch \
   of-sparsersb.mk \
   of-specfun.mk \
   of-splines.mk \
--- a/src/librsb-1-nobzero.patch	Fri Aug 05 21:24:58 2016 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- librsb-1.2.0-rc2/rsb_sys.h.orig	2015-11-08 08:20:56.737959489 -0500
-+++ librsb-1.2.0-rc2/rsb_sys.h	2015-11-08 08:24:46.712072656 -0500
-@@ -204,6 +204,8 @@
- 
- #ifdef RSB_HAVE_BZERO
- #define RSB_BZERO bzero		/**< we have the chance of using a custom bzero function in this way */
-+#elif RSB_HAVE_MEMSET 
-+#define RSB_BZERO(a,b) memset(a,0,b)
- #else /* RSB_HAVE_BZERO */
- #error "missing a definition of RSB_BZERO!"
- #endif /* RSB_HAVE_BZERO */
--- a/src/librsb.mk	Fri Aug 05 21:24:58 2016 -0400
+++ b/src/librsb.mk	Sun Aug 07 19:38:56 2016 -0400
@@ -3,8 +3,8 @@
 
 PKG             := librsb
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 1.2.0-rc2
-$(PKG)_CHECKSUM := 7ec074260f7d8af5817bd01b9c522216aa96c3dc
+$(PKG)_VERSION  := 1.2.0-rc4
+$(PKG)_CHECKSUM := 677731a1c2a814f5ae6be85f085c9bdc249bf658
 $(PKG)_SUBDIR   := $(PKG)-$($(PKG)_VERSION)
 $(PKG)_FILE     := $(PKG)-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$($(PKG)_FILE)
--- a/src/of-sparsersb-1-cross-build.patch	Fri Aug 05 21:24:58 2016 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-diff -ur sparsersb-1.0.0.orig/src/autogen.sh sparsersb-1.0.0/src/autogen.sh
---- sparsersb-1.0.0.orig/src/autogen.sh	2015-11-10 06:07:55.812398937 -0500
-+++ sparsersb-1.0.0/src/autogen.sh	2015-11-22 18:40:12.413271177 -0500
-@@ -16,6 +16,9 @@
- if test x"\$LIBRSB_LIBS" = x ; then
- 	LIBRSB_LIBS="\`\$LIBRSB_CONFIG --ldflags | sed 's/ -static/ /g'\` -lgomp"
- fi
-+if test x"\$SPARSERSB_LIBS" = x ; then
-+	SPARSERSB_LIBS="\`\$LIBRSB_CONFIG --extra_libs\`"
-+fi
- AC_OPENMP([])
- ##
- STATUS_MSG="
-diff -ur sparsersb-1.0.0.orig/src/configure sparsersb-1.0.0/src/configure
---- sparsersb-1.0.0.orig/src/configure	2015-11-10 06:07:55.806398985 -0500
-+++ sparsersb-1.0.0/src/configure	2015-11-22 18:41:23.740687962 -0500
-@@ -616,6 +616,7 @@
- mpath
- subver
- ver
-+OCTAVE_CONFIG
- MKOCTFILE
- OBJEXT
- EXEEXT
-@@ -2689,6 +2690,45 @@
- 
- test -z "$MKOCTFILE" &&	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no mkoctfile found on path" >&5
- $as_echo "$as_me: WARNING: no mkoctfile found on path" >&2;}
-+# Extract the first word of "octave-config", so it can be a program name with args.
-+set dummy octave-config; ac_word=$2
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
-+if ${ac_cv_prog_OCTAVE_CONFIG+:} false; then :
-+  $as_echo_n "(cached) " >&6
-+else
-+  if test -n "$OCTAVE_CONFIG"; then
-+  ac_cv_prog_OCTAVE_CONFIG="$OCTAVE_CONFIG" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+    for ac_exec_ext in '' $ac_executable_extensions; do
-+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_OCTAVE_CONFIG="octave-config"
-+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+  done
-+IFS=$as_save_IFS
-+
-+fi
-+fi
-+OCTAVE_CONFIG=$ac_cv_prog_OCTAVE_CONFIG
-+if test -n "$OCTAVE_CONFIG"; then
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_CONFIG" >&5
-+$as_echo "$OCTAVE_CONFIG" >&6; }
-+else
-+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+$as_echo "no" >&6; }
-+fi
-+
-+
-+test -z "$OCTAVE_CONFIG" && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no octave-config found on path" >&5
-+$as_echo "$as_me: WARNING: no octave-config found on path" >&2;}
- 
- 
- 
-@@ -2840,15 +2880,17 @@
- # add -fPIC or equivalent flags
- FPICFLAG=`$MKOCTFILE -p FPICFLAG`
- CPICFLAG=`$MKOCTFILE -p CPICFLAG`
-+
- FFLAGS="$FFLAGS $FPICFLAG"
- CFLAGS="$CFLAGS $CPICFLAG"
- 
- 
- 
- 
-+
- RSBOI_CXXFLAGS=""
- if test x$RSBOI_VERBOSE_CONFIG != x ; then
--	RSBOI_CXXFLAGS="$RSBOI_CXXFLAGS -D''RSBOI_VERBOSE_CONFIG=$RSBOI_VERBOSE_CONFIG";
-+	RSBOI_CXXFLAGS="$RSBOI_CXXFLAGS -DRSBOI_VERBOSE_CONFIG=$RSBOI_VERBOSE_CONFIG";
- fi
- 
- F77=`$MKOCTFILE -p F77`
-@@ -2858,6 +2900,7 @@
- 
- 
- 
-+
- CXX=`$MKOCTFILE -p CXX`
- CXXFLAGS=`$MKOCTFILE -p CXXFLAGS`
- CXXPICFLAG=`$MKOCTFILE -p CXXPICFLAG`
-@@ -2967,6 +3010,11 @@
- 
- 
- 
-+
-+
-+
-+
-+
- # Extract the first word of "octave", so it can be a program name with args.
- set dummy octave; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-@@ -3004,25 +3052,25 @@
- fi
- 
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OCTAVE_VERSION in Octave" >&5
--$as_echo_n "checking for OCTAVE_VERSION in Octave... " >&6; }
--OCTAVE_VERSION=`echo "disp(OCTAVE_VERSION)" | $OCTAVE -qf`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VERSION in octave-config" >&5
-+$as_echo_n "checking for VERSION in octave-config... " >&6; }
-+OCTAVE_VERSION=`$OCTAVE_CONFIG -p VERSION`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OCTAVE_VERSION" >&5
- $as_echo "$OCTAVE_VERSION" >&6; }
- 
- 
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('canonical_host_type') in Octave" >&5
--$as_echo_n "checking for octave_config_info('canonical_host_type') in Octave... " >&6; }
--canonical_host_type=`echo "disp(octave_config_info('canonical_host_type'))" | $OCTAVE -qf`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CANONICAL_HOST_TYPE in octave-config" >&5
-+$as_echo_n "checking for CANONICAL_HOST_TYPE in octave-config... " >&6; }
-+canonical_host_type=`$OCTAVE_CONFIG -p CANONICAL_HOST_TYPE`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $canonical_host_type" >&5
- $as_echo "$canonical_host_type" >&6; }
- 
- 
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('SHLEXT') in Octave" >&5
--$as_echo_n "checking for octave_config_info('SHLEXT') in Octave... " >&6; }
--SHLEXT=`echo "disp(octave_config_info('SHLEXT'))" | $OCTAVE -qf`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SHLEXT in octave-config" >&5
-+$as_echo_n "checking for SHLEXT in octave-config... " >&6; }
-+SHLEXT=`$OCTAVE_CONFIG -p SHLEXT`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SHLEXT" >&5
- $as_echo "$SHLEXT" >&6; }
- 
-@@ -3188,16 +3236,16 @@
- 
- 
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('AR') in Octave" >&5
--$as_echo_n "checking for octave_config_info('AR') in Octave... " >&6; }
--AR=`echo "disp(octave_config_info('AR'))" | $OCTAVE -qf`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AR in mkoctfile" >&5
-+$as_echo_n "checking for AR in mkoctfile... " >&6; }
-+AR=`$MKOCTFILE -p AR`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
- $as_echo "$AR" >&6; }
- 
- 
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for octave_config_info('ARFLAGS') in Octave" >&5
--$as_echo_n "checking for octave_config_info('ARFLAGS') in Octave... " >&6; }
--ARFLAGS=`echo "disp(octave_config_info('ARFLAGS'))" | $OCTAVE -qf`
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARFLAGS in mkoctfile" >&5
-+$as_echo_n "checking for ARFLAGS in mkoctfile... " >&6; }
-+ARFLAGS=`$MKOCTFILE -p ARFLAGS`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ARFLAGS" >&5
- $as_echo "$ARFLAGS" >&6; }
- 
-@@ -3325,7 +3373,9 @@
-    CXXFLAGS:    $CXXFLAGS
-    octave:      $OCTAVE (version $OCTAVE_VERSION)
-    mkoctfile:	$MKOCTFILE for Octave $subver
-+   octave-config: $OCTAVE_CONFIG for Octave $subver
-    swig:        $SWIG"
-+
- # Extract the first word of "librsb-config", so it can be a program name with args.
- set dummy librsb-config; ac_word=$2
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-@@ -3372,6 +3422,9 @@
- if test x"$LIBRSB_LIBS" = x ; then
- 	LIBRSB_LIBS="`$LIBRSB_CONFIG --ldflags | sed 's/ -static/ /g'` -lgomp"
- fi
-+if test x"$SPARSERSB_LIBS" = x ; then
-+	SPARSERSB_LIBS="`$LIBRSB_CONFIG --extra_libs`"
-+fi
- 
-   OPENMP_CFLAGS=
-   # Check whether --enable-openmp was given.
-diff -ur sparsersb-1.0.0.orig/src/configure.base sparsersb-1.0.0/src/configure.base
---- sparsersb-1.0.0.orig/src/configure.base	2015-11-10 06:07:55.808398969 -0500
-+++ sparsersb-1.0.0/src/configure.base	2015-11-22 18:40:51.666950216 -0500
-@@ -54,6 +54,8 @@
- dnl Check for mkoctfile
- AC_CHECK_PROG(MKOCTFILE,mkoctfile,mkoctfile)
- test -z "$MKOCTFILE" &&	AC_MSG_WARN([no mkoctfile found on path])
-+AC_CHECK_PROG(OCTAVE_CONFIG,octave-config,octave-config)
-+test -z "$OCTAVE_CONFIG" && AC_MSG_WARN([no octave-config found on path])
- 
- AC_SUBST(ver)
- AC_SUBST(subver)
-@@ -193,21 +195,24 @@
- # add -fPIC or equivalent flags
- FPICFLAG=`$MKOCTFILE -p FPICFLAG`
- CPICFLAG=`$MKOCTFILE -p CPICFLAG`
-+
- FFLAGS="$FFLAGS $FPICFLAG"
- CFLAGS="$CFLAGS $CPICFLAG"
- AC_SUBST(CC)
- AC_SUBST(CFLAGS)
- AC_SUBST(CPPFLAGS)
- AC_SUBST(CPICFLAG)
-+
- RSBOI_CXXFLAGS=""
- if test x$RSBOI_VERBOSE_CONFIG != x ; then
--	RSBOI_CXXFLAGS="$RSBOI_CXXFLAGS -D''RSBOI_VERBOSE_CONFIG=$RSBOI_VERBOSE_CONFIG"; 
-+	RSBOI_CXXFLAGS="$RSBOI_CXXFLAGS -DRSBOI_VERBOSE_CONFIG=$RSBOI_VERBOSE_CONFIG"; 
- fi
- 
- dnl Fortran compiler and flags
- F77=`$MKOCTFILE -p F77`
- FFLAGS=`$MKOCTFILE -p FFLAGS`
- FPICFLAG=`$MKOCTFILE -p FPICFLAG`
-+
- AC_SUBST(F77)
- AC_SUBST(FFLAGS)
- AC_SUBST(FPICFLAG)
-@@ -304,6 +309,24 @@
- AC_SUBST($2)
- ])
- 
-+dnl Use octave-config to get an octave setting
-+dnl and set as an variable
-+dnl
-+AC_DEFUN(OCTAVE_CONFIG_EVAL,
-+[AC_MSG_CHECKING([for $1 in octave-config])
-+$2=`$OCTAVE_CONFIG -p $1`
-+AC_MSG_RESULT($$2)
-+AC_SUBST($2)
-+])
-+
-+AC_DEFUN(MKOCTFILE_EVAL,
-+[AC_MSG_CHECKING([for $1 in mkoctfile])
-+$2=`$MKOCTFILE -p $1`
-+AC_MSG_RESULT($$2)
-+AC_SUBST($2)
-+])
-+
-+
- dnl Check status of an octave variable
- dnl
- dnl OCTAVE_CHECK_EXIST(variable,action_if_true,action_if_false)
-@@ -321,13 +344,16 @@
- 
- dnl should check that $(OCTAVE) --version matches $(MKOCTFILE) --version
- AC_CHECK_PROG(OCTAVE,octave,octave)
--OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION)
-+dnl OCTAVE_EVAL(OCTAVE_VERSION,OCTAVE_VERSION)
-+OCTAVE_CONFIG_EVAL(VERSION,OCTAVE_VERSION)
- 
- dnl grab canonical host type so we can write system specific install stuff
--OCTAVE_EVAL(octave_config_info('canonical_host_type'),canonical_host_type)
-+dnl OCTAVE_EVAL(octave_config_info('canonical_host_type'),canonical_host_type)
-+OCTAVE_CONFIG_EVAL(CANONICAL_HOST_TYPE,canonical_host_type)
- 
- dnl grab SHLEXT from octave config
--OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT)
-+dnl OCTAVE_EVAL(octave_config_info('SHLEXT'),SHLEXT)
-+OCTAVE_CONFIG_EVAL(SHLEXT,SHLEXT)
- 
- AC_PROG_LN_S
- 
-@@ -346,8 +372,10 @@
- OF_CHECK_LIB(m,sin,[OTHERLIBS=-lm])
- AC_SUBST(OTHERLIBS)
- 
--OCTAVE_EVAL(octave_config_info('AR'),AR)
--OCTAVE_EVAL(octave_config_info('ARFLAGS'),ARFLAGS)
-+dnl OCTAVE_EVAL(octave_config_info('AR'),AR)
-+dnl OCTAVE_EVAL(octave_config_info('ARFLAGS'),ARFLAGS)
-+MKOCTFILE_EVAL(AR,AR)
-+MKOCTFILE_EVAL(ARFLAGS,ARFLAGS)
- 
- CPPFLAGS="$CPPFLAGS -DSTATIC_LINKED"
- 
-@@ -402,4 +430,6 @@
-    CXXFLAGS:    $CXXFLAGS
-    octave:      $OCTAVE (version $OCTAVE_VERSION)
-    mkoctfile:	$MKOCTFILE for Octave $subver
-+   octave-config: $OCTAVE_CONFIG for Octave $subver
-    swig:        $SWIG"
-+
-diff -ur sparsersb-1.0.0.orig/src/Makeconf.in sparsersb-1.0.0/src/Makeconf.in
---- sparsersb-1.0.0.orig/src/Makeconf.in	2015-11-10 06:07:55.808398969 -0500
-+++ sparsersb-1.0.0/src/Makeconf.in	2015-11-10 06:19:13.844014051 -0500
-@@ -61,6 +61,7 @@
- OCTAVE = @OCTAVE@
- OCTAVE_VERSION = @OCTAVE_VERSION@
- MKOCTFILE = @MKOCTFILE@ -DHAVE_OCTAVE_$(ver) -v
-+OCTAVE_CONFIG = @OCTAVE_CONFIG@
- SHLEXT = @SHLEXT@
- 
- ver = @ver@
-diff -ur sparsersb-1.0.0.orig/src/Makefile sparsersb-1.0.0/src/Makefile
---- sparsersb-1.0.0.orig/src/Makefile	2015-11-10 06:07:55.811398945 -0500
-+++ sparsersb-1.0.0/src/Makefile	2015-11-10 06:21:58.401707659 -0500
-@@ -23,7 +23,7 @@
- #LIBRSB_LIBS=$(RSBLIBDIR)/librsb.a
- 
- $(SPARSERSB_OCT): sparsersb.cc
--	CXXFLAGS="$(CXXFLAGS)" $(MKOCTFILE)  -D''RSB_SPARSERSB_LABEL=sparsersb $(RSBOI_CXXFLAGS) $(LIBRSB_CXXFLAGS) -o $@ $< $(LIBRSB_LIBS) $(SPARSERSB_LIBS)
-+	CXXFLAGS="$(CXXFLAGS)" $(MKOCTFILE)  -D'RSB_SPARSERSB_LABEL=sparsersb' $(RSBOI_CXXFLAGS) $(LIBRSB_CXXFLAGS) -o $@ $< $(LIBRSB_LIBS) $(SPARSERSB_LIBS)
- 
- rtest: $(SPARSERSB_OCT)
- 	$(OCTAVE) --silent ../inst/sparsersbtester.m
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/of-sparsersb-1-fixes.patch	Sun Aug 07 19:38:56 2016 -0400
@@ -0,0 +1,339 @@
+diff -ur sparsersb-1.0.1.orig/src/sparsersb.cc sparsersb-1.0.1/src/sparsersb.cc
+--- sparsersb-1.0.1.orig/src/sparsersb.cc	2016-08-07 18:22:30.539481175 -0400
++++ sparsersb-1.0.1/src/sparsersb.cc	2016-08-07 19:29:31.945709584 -0400
+@@ -1239,7 +1239,7 @@
+ 
+ 	private:
+ 	public:
+-		DECLARE_OCTAVE_ALLOCATOR
++//		DECLARE_OCTAVE_ALLOCATOR
+ 			DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
+ };/* end of class octave_sparsersb_mtx definition  */
+ 
+@@ -1256,7 +1256,8 @@
+ static octave_base_value * default_numeric_conversion_function (const octave_base_value& a)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_CONV_ARG (const octave_sparsersb_mtx&);
++	//CAST_CONV_ARG (const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx &v = dynamic_cast<const octave_sparsersb_mtx&> (a) 
+ 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
+ 	RSBOI_WARN(RSBOI_0_UNFFEMSG);
+ 	if(v.is_real_type())
+@@ -1274,7 +1275,8 @@
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
+-	CAST_CONV_ARG (const octave_sparsersb_mtx &);
++	//CAST_CONV_ARG (const octave_sparsersb_mtx &);
++        const octave_sparsersb_mtx &v = dynamic_cast<const octave_sparsersb_mtx&> (a);
+ 	return new octave_sparse_matrix (v.matrix_value ());
+ }
+ 
+@@ -1292,7 +1294,8 @@
+ {
+ 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++	// CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v = dynamic_cast<const octave_sparsersb_mtx&> (a);
+ 	return new octave_sparsersb_mtx (v);
+ }
+ 
+@@ -1330,21 +1333,24 @@
+ {
+ 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++	//CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v = dynamic_cast<const octave_sparsersb_mtx&> (a);
+ 	return v.cp_ubop(RSB_ELOPF_NEG);
+ }
+ 
+ DEFUNOP (transpose, sparse_rsb_mtx)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++	//CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v = dynamic_cast<const octave_sparsersb_mtx&> (a);
+ 	return v.rsboi_get_scaled_copy(rsboi_pone[0],RSB_TRANSPOSITION_T);
+ }
+ 
+ DEFUNOP (htranspose, sparse_rsb_mtx)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++	//CAST_UNOP_ARG (const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v = dynamic_cast<const octave_sparsersb_mtx&> (a);
+ 	return v.rsboi_get_scaled_copy(rsboi_pone[0],RSB_TRANSPOSITION_C);
+ }
+ 
+@@ -1454,7 +1460,9 @@
+ DEFBINOP(ldiv, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 
+ 	if(v1.is__triangular()) 
+ 		return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N);
+@@ -1469,7 +1477,9 @@
+ DEFBINOP(trans_ldiv, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 
+ 	if(v1.is__triangular()) 
+ 		return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T);
+@@ -1485,7 +1495,9 @@
+ DEFBINOP(c_ldiv, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2);
+ 
+ 	if(v1.is__triangular()) 
+ 		return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_N);
+@@ -1500,7 +1512,9 @@
+ DEFBINOP(trans_c_ldiv, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2);
+ 	if(v1.is__triangular()) 
+ 		return rsboi_spsm(v1,v2,RSB_TRANSPOSITION_T);
+ 
+@@ -1539,7 +1553,9 @@
+ #if RSBOI_WANT_DOUBLE_COMPLEX
+ DEFBINOP(rsb_c_div, sparse_rsb_mtx, complex)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy_inv(v2.complex_value());
+ }
+@@ -1547,14 +1563,18 @@
+ 
+ DEFBINOP(rsb_s_div, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy_inv(v2.scalar_value());
+ }
+ 
+ DEFBINOP(rsb_s_mul, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy(v2.scalar_value());
+ }
+@@ -1562,7 +1582,9 @@
+ #if RSBOI_WANT_DOUBLE_COMPLEX
+ DEFBINOP(rsb_c_mul, sparse_rsb_mtx, complex)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy(v2.complex_value());
+ }
+@@ -1581,7 +1603,9 @@
+ {
+ 	rsb_err_t errval = RSB_ERR_NO_ERROR;
+ 	RSBOI_FIXME("I dunno how to trigger this!");
+-	CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_sparsersb_mtx&);
++	//CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_sparsersb_mtx&);
++        octave_sparsersb_mtx& v1 = dynamic_cast<octave_sparsersb_mtx&> (a1);
++        const octave_sparsersb_mtx& v2 = dynamic_cast<const octave_sparsersb_mtx&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	//rsb_assign(v1.mtxAp, v2.mtxAp);
+ 	errval = rsb_mtx_clone(&v1.mtxAp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,NULL,v2.mtxAp,RSBOI_EXPF);
+@@ -1590,7 +1614,9 @@
+ 
+ DEFASSIGNOP (assignm, sparse_rsb_mtx, matrix)
+ {
+-	CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++	//CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++        octave_sparsersb_mtx& v1 = dynamic_cast<octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	RSBOI_DESTROY(v1.mtxAp);
+ 	octave_value retval;
+@@ -1666,7 +1692,9 @@
+ 
+ DEFBINOP(rsb_el_mul_s, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy(v2.scalar_value());
+ }
+@@ -1674,7 +1702,9 @@
+ #if RSBOI_WANT_DOUBLE_COMPLEX
+ DEFBINOP(rsb_el_mul_c, sparse_rsb_mtx, complex)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy(v2.complex_value());
+ }
+@@ -1682,7 +1712,9 @@
+ 
+ DEFBINOP(rsb_el_div_s, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy_inv(v2.scalar_value());
+ }
+@@ -1690,7 +1722,9 @@
+ #if RSBOI_WANT_DOUBLE_COMPLEX
+ DEFBINOP(rsb_el_div_c, sparse_rsb_mtx, complex)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_complex&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex& v2 = dynamic_cast<const octave_complex&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	return v1.rsboi_get_scaled_copy_inv(v2.complex_value());
+ }
+@@ -1710,21 +1744,27 @@
+ DEFASSIGNOP(rsb_op_el_mul_eq_sc, sparse_rsb_mtx, matrix)
+ {
+ 	rsb_err_t errval = RSB_ERR_NO_ERROR;
+-	CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++	//CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++        octave_sparsersb_mtx& v1 = dynamic_cast<octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 	return v1.scale_rows(v2,false);
+ }
+ 
+ DEFASSIGNOP(rsb_op_el_div_eq_sc, sparse_rsb_mtx, matrix)
+ {
+ 	rsb_err_t errval = RSB_ERR_NO_ERROR;
+-	CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++	//CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_matrix&);
++        octave_sparsersb_mtx& v1 = dynamic_cast<octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 	return v1.scale_rows(v2,true);
+ }
+ #endif /* RSBOI_WANT_DOUBLE_COMPLEX */
+ 
+ DEFBINOP(el_pow, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx &, const octave_scalar&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	RSBOI_T alpha=v2.scalar_value();
+ 	return v1.cp_ubop(RSB_ELOPF_POW,&alpha);
+@@ -1733,7 +1773,9 @@
+ #ifdef RSB_FULLY_IMPLEMENTED
+ DEFASSIGNOP (assigns, sparse_rsb_mtx, scalar)
+ {
+-	CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_scalar&);
++	//CAST_BINOP_ARGS (octave_sparsersb_mtx &, const octave_scalar&);
++        octave_sparsersb_mtx& v1 = dynamic_cast<octave_sparsersb_mtx&> (a1);
++        const octave_scalar& v2 = dynamic_cast<const octave_scalar&> (a2);
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+ 	v1.assign(idx, v2.matrix_value());
+ 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
+@@ -1744,28 +1786,36 @@
+ DEFBINOP(op_sub, sparse_rsb_mtx, sparse_rsb_mtx)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_sparsersb_mtx& v2 = dynamic_cast<const octave_sparsersb_mtx&> (a2);
+ 	return v1.rsboi_sppsp(&rsboi_mone[0],v2);
+ }
+ 
+ DEFBINOP(op_add, sparse_rsb_mtx, sparse_rsb_mtx)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_sparsersb_mtx& v2 = dynamic_cast<const octave_sparsersb_mtx&> (a2);
+ 	return v1.rsboi_sppsp(&rsboi_pone[0],v2);
+ }
+ 
+ DEFBINOP(op_spmul, sparse_rsb_mtx, sparse_rsb_mtx)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_sparsersb_mtx&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_sparsersb_mtx& v2 = dynamic_cast<const octave_sparsersb_mtx&> (a2);
+ 	return v1.rsboi_spmsp(v2);
+ }
+ 
+ DEFBINOP(op_mul, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 	return v1.rsboi_spmm(v2, false);
+ }
+ 
+@@ -1773,7 +1823,9 @@
+ {
+ 	// ".'*"  operator
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_matrix& v2 = dynamic_cast<const octave_matrix&> (a2);
+ 	return v1.rsboi_spmm(v2, true);
+ }
+ 
+@@ -1781,14 +1833,18 @@
+ DEFBINOP(op_c_mul, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2);
+ 	return v1.rsboi_spmm(v2, false);
+ }
+ 
+ DEFBINOP(op_c_trans_mul, sparse_rsb_mtx, matrix)
+ {
+ 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
+-	CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++	//CAST_BINOP_ARGS (const octave_sparsersb_mtx&, const octave_complex_matrix&);
++        const octave_sparsersb_mtx& v1 = dynamic_cast<const octave_sparsersb_mtx&> (a1);
++        const octave_complex_matrix& v2 = dynamic_cast<const octave_complex_matrix&> (a2);
+ 	return v1.rsboi_spmm(v2, true);
+ }
+ #endif /* RSBOI_WANT_DOUBLE_COMPLEX */
+Only in sparsersb-1.0.1/src: .sparsersb.cc.swp
--- a/src/of-sparsersb.mk	Fri Aug 05 21:24:58 2016 -0400
+++ b/src/of-sparsersb.mk	Sun Aug 07 19:38:56 2016 -0400
@@ -3,8 +3,8 @@
 
 PKG             := of-sparsersb
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 1.0.0
-$(PKG)_CHECKSUM := 
+$(PKG)_VERSION  := 1.0.1
+$(PKG)_CHECKSUM := 49bfbd55d3fbbf264dba6d96b117492b20b6978d
 $(PKG)_REMOTE_SUBDIR := 
 $(PKG)_SUBDIR   := sparsersb-$($(PKG)_VERSION)
 $(PKG)_FILE     := sparsersb-$($(PKG)_VERSION).tar.gz