From 0cf73da9ad035089c66d21021a656e4606796c47 Mon Sep 17 00:00:00 2001 From: Shinya Sato Date: Thu, 29 Feb 2024 20:27:00 +0900 Subject: v0.11.3 --- Changelog.md | 20 ++++++++++++++++++++ README.md | 8 +++----- src/inpla.y | 10 ++++++---- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Changelog.md b/Changelog.md index db8b8ac..3892706 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,5 +1,25 @@ # Change log +### v0.11.3 (released on 29 Feb 2024) + +#### Bug Fix + +- **Segmentation fault caused by rules of Int and an agent**: Rules of Int and an agent could cause Segmentation fault error, though rules of an agent and Int were safe: + + ``` + >>> A(r) >< (int x) => r~x; + >>> A(r)~3; + (1 interactions, 0.00 sec) + >>> free ifce; + >>> (int x) >< A(r) => r~x; + >>> A(r)~3; + Segmentation fault + ``` + + This issue has now been resolved. + + + ### v0.11.2 (released on 16 Feb 2024) #### Polished diff --git a/README.md b/README.md index b9569aa..9467fb3 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Inpla is a multi-threaded parallel interpreter of interaction nets. Once you write programs for sequential execution, it works also in multi-threaded parallel execution. Each thread is managed on each CPU-core with POSIX-thread library. -* The current version is 0.11.2, released on **16 Feb 2024**. (See [Changelog.md](Changelog.md) for details.) +* The current version is 0.11.3, released on **29 Feb 2024**. (See [Changelog.md](Changelog.md) for details.) * The below graph shows speed-up ratio to threads numbers for programs in the following benchmark table. ![speedup-ratio](pic/benchmark_reuse_v0.11.0.png) @@ -291,11 +291,9 @@ Electronic Communications of the EASST, Volume 73: Graph Computation Models - Se ## Related Works -* [Train: Translator of a functional language to interaction nets (Inpla)](https://github.com/inpla/train) -* [High-order Virtual Machine (HVM)](https://github.com/Kindelia/HVM) -* [Language, interpreter and compiler for interaction nets](https://github.com/szeiger/interact) -* [HINet: Interaction Nets in Haskell](http://www.cas.mcmaster.ca/~kahl/Haskell/HINet/) +* [HINet: Interaction Nets in Haskell](http://www.cas.mcmaster.ca/~kahl/Haskell/HINet/) +* [High-order Virtual Machine (HVM)](https://github.com/Kindelia/HVM) diff --git a/src/inpla.y b/src/inpla.y index 26ffe63..27ad535 100644 --- a/src/inpla.y +++ b/src/inpla.y @@ -22,8 +22,8 @@ // ---------------------------------------------- -#define VERSION "0.11.2" -#define BUILT_DATE "16 Feb 2024" +#define VERSION "0.11.3" +#define BUILT_DATE "29 Feb 2024" // ------------------------------------------------------------------ @@ -7803,12 +7803,14 @@ int set_metaR(Ast *ast) { } void set_metaL_as_IntName(Ast *ast) { - CmEnv_set_symbol_as_meta(ast->left->sym, CmEnv.reg_agentL, NB_INTVAR); + // CmEnv_set_symbol_as_meta(ast->left->sym, CmEnv.reg_agentL, NB_INTVAR); + CmEnv_set_symbol_as_meta(ast->left->sym, VM_OFFSET_ANNOTATE_L, NB_INTVAR); } void set_metaR_as_IntName(Ast *ast) { - CmEnv_set_symbol_as_meta(ast->left->sym, CmEnv.reg_agentR, NB_INTVAR); + // CmEnv_set_symbol_as_meta(ast->left->sym, CmEnv.reg_agentR, NB_INTVAR); + CmEnv_set_symbol_as_meta(ast->left->sym, VM_OFFSET_ANNOTATE_L, NB_INTVAR); } -- cgit v1.2.3