libixion, py-libixion: Update to 0.15.0

Changelog:
ixion 0.15.0

* fill_down_cells() method has been added to model_context, to fill duplicate
  values downward from an arbitrary cell position.  For now, it always
  duplicate the value of the source cell; cell value enumerations are not
  supported.  Also, filling down of formula cells is not yet supported.

* cell iterator has been aded to model_context, for efficient horizontal and
  vertical iterations of cell values in an arbitrary range within a sheet.

* improved the cmake-based build, with all test cases integrated.

* switched to spdlog for compile-time debug log outputs.

* improved performance by removing repeated fetching of each formula
  cell prior to interpretation.

* reworked topological sorting of formula cells to avoid having to
  unnecessarily build dependency relations twice; once during the
  dirty cell determination and twice prior to interpretation of
  formula cells.  The new code performs topological sorting during the
  dirty cell determination phase.

* reworked the cell reference tracker to use R-tree.  This allows more
  accurate tracking of references involving grouped formulas.

* fixed a resource leak with dynamic loading of compute engine modules.
This commit is contained in:
ryoon 2020-02-05 13:46:13 +00:00
parent bad1893135
commit 5852859814
9 changed files with 95 additions and 51 deletions

View file

@ -1,6 +1,4 @@
# $NetBSD: Makefile,v 1.16 2020/01/12 20:20:31 ryoon Exp $
PKGREVISION= 3
# $NetBSD: Makefile,v 1.17 2020/02/05 13:46:13 ryoon Exp $
.include "Makefile.common"

View file

@ -1,9 +1,9 @@
# $NetBSD: Makefile.common,v 1.1 2019/12/04 13:33:15 nros Exp $
# $NetBSD: Makefile.common,v 1.2 2020/02/05 13:46:13 ryoon Exp $
#
# used by math/libixion/Makefile
# used by math/py-libixion/Makefile
DISTNAME= libixion-0.14.1
DISTNAME= libixion-0.15.0
CATEGORIES= math devel
MASTER_SITES= http://kohei.us/files/ixion/src/
EXTRACT_SUFX= .tar.xz
@ -19,8 +19,10 @@ DISTINFO_FILE= ../../math/libixion/distinfo
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
USE_TOOLS+= pkg-config
USE_LANGUAGES= c c++
USE_LANGUAGES= c c++11
BUILDLINK_TRANSFORM.NetBSD+= rm:-ldl
PTHREAD_AUTO_VARS= yes
.include "../../devel/spdlog/buildlink3.mk"

View file

@ -1,35 +1,35 @@
@comment $NetBSD: PLIST,v 1.3 2019/02/19 15:55:47 ryoon Exp $
@comment $NetBSD: PLIST,v 1.4 2020/02/05 13:46:13 ryoon Exp $
bin/ixion-formula-tokenizer
bin/ixion-parser
bin/ixion-sorter
include/libixion-0.14/ixion/address.hpp
include/libixion-0.14/ixion/address_iterator.hpp
include/libixion-0.14/ixion/cell.hpp
include/libixion-0.14/ixion/cell_listener_tracker.hpp
include/libixion-0.14/ixion/column_store_type.hpp
include/libixion-0.14/ixion/compute_engine.hpp
include/libixion-0.14/ixion/config.hpp
include/libixion-0.14/ixion/depth_first_search.hpp
include/libixion-0.14/ixion/env.hpp
include/libixion-0.14/ixion/exceptions.hpp
include/libixion-0.14/ixion/formula.hpp
include/libixion-0.14/ixion/formula_function_opcode.hpp
include/libixion-0.14/ixion/formula_name_resolver.hpp
include/libixion-0.14/ixion/formula_opcode.hpp
include/libixion-0.14/ixion/formula_result.hpp
include/libixion-0.14/ixion/formula_tokens.hpp
include/libixion-0.14/ixion/formula_tokens_fwd.hpp
include/libixion-0.14/ixion/global.hpp
include/libixion-0.14/ixion/info.hpp
include/libixion-0.14/ixion/interface/formula_model_access.hpp
include/libixion-0.14/ixion/interface/session_handler.hpp
include/libixion-0.14/ixion/interface/table_handler.hpp
include/libixion-0.14/ixion/macros.hpp
include/libixion-0.14/ixion/matrix.hpp
include/libixion-0.14/ixion/mem_str_buf.hpp
include/libixion-0.14/ixion/model_context.hpp
include/libixion-0.14/ixion/module.hpp
include/libixion-0.14/ixion/table.hpp
include/libixion-0.14/ixion/types.hpp
lib/libixion-0.14.la
lib/pkgconfig/libixion-0.14.pc
include/libixion-0.15/ixion/address.hpp
include/libixion-0.15/ixion/address_iterator.hpp
include/libixion-0.15/ixion/cell.hpp
include/libixion-0.15/ixion/column_store_type.hpp
include/libixion-0.15/ixion/compute_engine.hpp
include/libixion-0.15/ixion/config.hpp
include/libixion-0.15/ixion/dirty_cell_tracker.hpp
include/libixion-0.15/ixion/env.hpp
include/libixion-0.15/ixion/exceptions.hpp
include/libixion-0.15/ixion/formula.hpp
include/libixion-0.15/ixion/formula_function_opcode.hpp
include/libixion-0.15/ixion/formula_name_resolver.hpp
include/libixion-0.15/ixion/formula_opcode.hpp
include/libixion-0.15/ixion/formula_result.hpp
include/libixion-0.15/ixion/formula_tokens.hpp
include/libixion-0.15/ixion/formula_tokens_fwd.hpp
include/libixion-0.15/ixion/global.hpp
include/libixion-0.15/ixion/info.hpp
include/libixion-0.15/ixion/interface/formula_model_access.hpp
include/libixion-0.15/ixion/interface/session_handler.hpp
include/libixion-0.15/ixion/interface/table_handler.hpp
include/libixion-0.15/ixion/macros.hpp
include/libixion-0.15/ixion/matrix.hpp
include/libixion-0.15/ixion/mem_str_buf.hpp
include/libixion-0.15/ixion/model_context.hpp
include/libixion-0.15/ixion/model_iterator.hpp
include/libixion-0.15/ixion/module.hpp
include/libixion-0.15/ixion/table.hpp
include/libixion-0.15/ixion/types.hpp
lib/libixion-0.15.la
lib/pkgconfig/libixion-0.15.pc

View file

@ -1,11 +1,11 @@
# $NetBSD: buildlink3.mk,v 1.5 2019/02/22 06:15:50 gutteridge Exp $
# $NetBSD: buildlink3.mk,v 1.6 2020/02/05 13:46:13 ryoon Exp $
BUILDLINK_TREE+= libixion
.if !defined(LIBIXION_BUILDLINK3_MK)
LIBIXION_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.libixion+= libixion>=0.14.0
BUILDLINK_API_DEPENDS.libixion+= libixion>=0.15.0
BUILDLINK_PKGSRCDIR.libixion?= ../../math/libixion
.include "../../devel/mdds/buildlink3.mk"

View file

@ -1,8 +1,10 @@
$NetBSD: distinfo,v 1.5 2019/12/04 13:31:43 nros Exp $
$NetBSD: distinfo,v 1.6 2020/02/05 13:46:13 ryoon Exp $
SHA1 (libixion-0.14.1.tar.xz) = 8c8f17550177f11f26343c18c6e18cfa260df0e6
RMD160 (libixion-0.14.1.tar.xz) = ff80ec9b91c64a89c5ae459f749031304148ee57
SHA512 (libixion-0.14.1.tar.xz) = e4ae6348833d2178c1dc76916937bcc9d7821dc6570fe13093c441ca22e0301a1ca6a4cf85d9814b83534733dba98f4c4a372791f93bc57173317657675b9ae3
Size (libixion-0.14.1.tar.xz) = 360568 bytes
SHA1 (patch-configure.ac) = 47f20ec412c7f8b8ae91b12fea9e211cecdd7d5a
SHA1 (libixion-0.15.0.tar.xz) = cdf61f14b9587620573b3e6e7d8b11c686419dc0
RMD160 (libixion-0.15.0.tar.xz) = 96f24812a77611c5554e213788bb0633ecd1d5aa
SHA512 (libixion-0.15.0.tar.xz) = feecaa4a8e6191649a7ecbc6c0f4d7db6dba3a5e4a031c1f55236907bf94e2ece9ee05d18ed345e3503cffb4a380b04f6c4941ef4214ddf92687998a070b7543
Size (libixion-0.15.0.tar.xz) = 447388 bytes
SHA1 (patch-configure) = 7931b66d933b3ffd932ddfad3494eb40424e6b0e
SHA1 (patch-configure.ac) = 46c9d080102842d5edba6844a51d6b38063af220
SHA1 (patch-include_ixion_model__context.hpp) = 89456eacf54deb95bf48a5836d674f97ff64eb37
SHA1 (patch-src_python_Makefile.am) = f67180858a87e6a5af941642d1ffbfbc4610ad2a

View file

@ -0,0 +1,15 @@
$NetBSD: patch-configure,v 1.1 2020/02/05 13:46:13 ryoon Exp $
* Improve POSIX shell portability
--- configure.orig 2019-08-08 20:57:52.000000000 +0000
+++ configure
@@ -19424,7 +19424,7 @@ else
fi
-if test x"$enable_werror" == "xyes"; then :
+if test x"$enable_werror" = "xyes"; then :
CXXFLAGS="$CXXFLAGS -Werror"

View file

@ -1,8 +1,12 @@
$NetBSD: patch-configure.ac,v 1.1 2019/12/04 13:31:43 nros Exp $
$NetBSD: patch-configure.ac,v 1.2 2020/02/05 13:46:13 ryoon Exp $
* check for pkgsrc libixion, used by math/py-libixion
--- configure.ac.orig 2018-09-14 19:32:48.000000000 +0000
* Improve POSIX shell portability
--- configure.ac.orig 2019-08-08 20:56:25.000000000 +0000
+++ configure.ac
@@ -123,6 +123,7 @@ PKG_CHECK_MODULES([MDDS],[mdds-1.4 >= 1.
@@ -142,6 +142,7 @@ AS_IF([test "x$enable_log_trace" != "xno
AS_IF([test "x$enable_python" != "xno"], [
AM_PATH_PYTHON(3)
PKG_CHECK_MODULES([PYTHON], [python3 >= 3.4])
@ -10,3 +14,12 @@ $NetBSD: patch-configure.ac,v 1.1 2019/12/04 13:31:43 nros Exp $
])
AS_IF([test "x$enable_threads" != "xno"], [
@@ -169,7 +170,7 @@ AC_ARG_ENABLE([werror],
[enable_werror="$enableval"],
[enable_werror=no]
)
-AS_IF([test x"$enable_werror" == "xyes"], [
+AS_IF([test x"$enable_werror" = "xyes"], [
CXXFLAGS="$CXXFLAGS -Werror"
])

View file

@ -0,0 +1,15 @@
$NetBSD: patch-include_ixion_model__context.hpp,v 1.1 2020/02/05 13:46:13 ryoon Exp $
* Fix build under NetBSD.
--- include/ixion/model_context.hpp.orig 2019-03-09 04:05:04.000000000 +0000
+++ include/ixion/model_context.hpp
@@ -61,7 +61,7 @@ public:
} value;
/** Initializes the cell to be empty. */
- input_cell(nullptr_t);
+ input_cell(std::nullptr_t);
/** Boolean cell value. */
input_cell(bool b);
/** The char array must be null-terminated. */

View file

@ -1,6 +1,5 @@
# $NetBSD: Makefile,v 1.3 2020/01/12 20:20:31 ryoon Exp $
# $NetBSD: Makefile,v 1.4 2020/02/05 13:46:14 ryoon Exp $
PKGREVISION= 1
.include "../../math/libixion/Makefile.common"
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}