diff options
Diffstat (limited to 'Changelog.md')
| -rw-r--r-- | Changelog.md | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/Changelog.md b/Changelog.md index 99f5cb6..b26692b 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,10 +1,34 @@ # Change log +### v0.10.6 (released on 6 February 2023) + +| | Haskell | OCaml | SML | Python | Inpla8 | Inpla8r | +| ------------ | :-----------------------------------------: | :-------------------------------------: | :-------------------------------------: | :----------------------------------------: | :---------------------------------------------: | :----------------------------------------------------: | +| n-queens 12 | [**0.23**](comparison/Haskell/nqueen-12.hs) | [0.44](comparison/OCaml/nqueen12.ml) | [0.60](comparison/SML/ack3-11.sml) | [3.79](comparison/Python/nqueen-12.py) | [0.53](comparison/Inpla/src/nqueen-12.in) | [0.36](comparison/Inpla/src/nqueen-12-reuse.in) | +| ack(3,11) | [2.37](comparison/Haskell/ack3-11.hs) | [0.57](comparison/OCaml/ack3_11.ml) | [**0.42**](comparison/SML/ack3-11.sml) | [-](comparison/Python/ack3-11.py) | [0.86](comparison/Inpla/src/ack-stream_3-11.in) | [0.75](comparison/Inpla/src/ack-stream_3-11-reuse.in) | +| fib 38 | [1.61](comparison/Haskell/fib-38.hs) | [**0.15**](comparison/OCaml/fib38.ml) | [0.27](comparison/SML/fib-38.sml) | [9.27](comparison/Python/fib-38.py) | [0.41](comparison/Inpla/src/fib-38.in) | [0.43](comparison/Inpla/src/fib-38-reuse.in) | +| bsort 20000 | [5.03](comparison/Haskell/bsort-20000.hs) | [6.47](comparison/OCaml/bsort20000.ml) | [2.39](comparison/SML/bsort-20000.sml) | [20.02](comparison/Python/bsort-20000.py) | [2.23](comparison/Inpla/src/bsort-20000.in) | [**1.48**](comparison/Inpla/src/bsort-20000-reuse.in) | +| isort 20000 | [2.15](comparison/Haskell/isort-20000.hs) | [1.48](comparison/OCaml/isort20000.ml) | [0.60](comparison/SML/isort-20000.sml) | [8.83](comparison/Python/isort-20000.py) | [**0.31**](comparison/Inpla/src/isort-20000.in) | [0.33](comparison/Inpla/src/isort-20000-reuse.in) | +| qsort 260000 | [0.36](comparison/Haskell/qsort-800000.hs) | [0.22](comparison/OCaml/qsort260000.ml) | [0.27](comparison/SML/qsort-260000.sml) | [10.33](comparison/Python/qsort-260000.py) | [0.15](comparison/Inpla/src/qsort-260000.in) | [**0.12**](comparison/Inpla/src/qsort-260000-reuse.in) | +| msort 260000 | [0.38](comparison/Haskell/msort-800000.hs) | [0.17](comparison/OCaml/msort260000.ml) | [0.29](comparison/SML/msort-260000.sml) | [11.09](comparison/Python/msort-260000.py) | [0.15](comparison/Inpla/src/msort-260000.in) | [**0.15**](comparison/Inpla/src/msort-260000-reuse.in) | + +#### Polished + +- **Two-addressing for mkagent4**: Two-addressing, which reduces the number of operands by one, is now available for `mkagent4` by default. To disable it, comment out the following line in `config.h`: + + ``` + #define OPTIMISE_TWO_ADDRESS_MKAGENT4 // For MKAGENT4 + ``` + + In the benchmark result, we could expect that `n-queen` could be performed faster in the `Inpla8` execution, but it seems that the effect is small and just within the noise margin. + + + ### v0.10.5 (released on 3 February 2023) #### Bug fix -- **Code generation for Tail Call Optimisation**: Tail Call Optimisation turns an active pair execution into a loop operation. When the loop is executed, each port information needs to be updated, but some were skipped if the names in the ports were the same but changed during execution. This is now fixed. +- **Code generation for Tail Call Optimisation**: Tail Call Optimisation turns an active pair execution into a loop operation. When the loop is executed, each port information needs to be updated, but some were skipped if the argument names in the ports were the same and their assigned registers are changed during execution. This is now fixed. ### v0.10.4 (released on 28 January 2023) @@ -16,7 +40,7 @@ foo(r) >< (int n) | n == 0 => r~n | _ => r << (*L)foo(n-1); - // ^ The (*L) setting caused a parse error in a previous version. + // ^ This (*L) setting caused a parse error in a previous version. ``` @@ -84,7 +108,7 @@ Warning: `y' is used as a property variable, although is is not declared as so. ``` #### Minor change -* **Messages of applying Tail Call Optimisation** : A message was put when the optimisation is applied, but now it turns off because this is for developers. To change it on, make the following line uncommented in `config.h`: +* **Messages of applying Tail Call Optimisation** : A message was put when the optimisation is applied, but now it turns off because this is for developers. To enable this, make the following line uncommented in `config.h`: ``` //#define VERBOSE_TCO // Put message when TCO is enable. @@ -93,6 +117,17 @@ ### v0.10.0 (released on 17 September 2022) + +| | Haskell | OCaml | SML | Python | Inpla8 | Inpla8r | +| ------------ | :-----------------------------------------: | :-------------------------------------: | :-------------------------------------: | :----------------------------------------: | :---------------------------------------------: | :----------------------------------------------------: | +| n-queens 12 | [**0.23**](comparison/Haskell/nqueen-12.hs) | [0.44](comparison/OCaml/nqueen12.ml) | [0.60](comparison/SML/ack3-11.sml) | [3.81](comparison/Python/nqueen-12.py) | [0.54](comparison/Inpla/src/nqueen-12.in) | [0.36](comparison/Inpla/src/nqueen-12-reuse.in) | +| ack(3,11) | [2.36](comparison/Haskell/ack3-11.hs) | [0.57](comparison/OCaml/ack3_11.ml) | [**0.42**](comparison/SML/ack3-11.sml) | [-](comparison/Python/ack3-11.py) | [0.88](comparison/Inpla/src/ack-stream_3-11.in) | [0.76](comparison/Inpla/src/ack-stream_3-11-reuse.in) | +| fib 38 | [1.61](comparison/Haskell/fib-38.hs) | [**0.15**](comparison/OCaml/fib38.ml) | [0.27](comparison/SML/fib-38.sml) | [9.17](comparison/Python/fib-38.py) | [0.42](comparison/Inpla/src/fib-38.in) | [0.43](comparison/Inpla/src/fib-38-reuse.in) | +| bsort 20000 | [5.01](comparison/Haskell/bsort-20000.hs) | [6.44](comparison/OCaml/bsort20000.ml) | [2.37](comparison/SML/bsort-20000.sml) | [20.58](comparison/Python/bsort-20000.py) | [2.17](comparison/Inpla/src/bsort-20000.in) | [**1.49**](comparison/Inpla/src/bsort-20000-reuse.in) | +| isort 20000 | [2.16](comparison/Haskell/isort-20000.hs) | [1.48](comparison/OCaml/isort20000.ml) | [0.60](comparison/SML/isort-20000.sml) | [9.34](comparison/Python/isort-20000.py) | [**0.30**](comparison/Inpla/src/isort-20000.in) | [0.33](comparison/Inpla/src/isort-20000-reuse.in) | +| qsort 260000 | [0.36](comparison/Haskell/qsort-800000.hs) | [0.22](comparison/OCaml/qsort260000.ml) | [0.27](comparison/SML/qsort-260000.sml) | [15.04](comparison/Python/qsort-260000.py) | [0.16](comparison/Inpla/src/qsort-260000.in) | [**0.12**](comparison/Inpla/src/qsort-260000-reuse.in) | +| msort 260000 | [0.38](comparison/Haskell/msort-800000.hs) | [0.17](comparison/OCaml/msort260000.ml) | [0.26](comparison/SML/msort-260000.sml) | [15.55](comparison/Python/msort-260000.py) | [0.16](comparison/Inpla/src/msort-260000.in) | [**0.15**](comparison/Inpla/src/msort-260000-reuse.in) | + #### Polished (inner) * **New instruction set for reuse active pairs**: Inpla supports annotations to reuse active active pairs by putting (\*L) and (\*R) in front of agents in rules as an experiment option. It was just to reuse only nodes for active pairs, but now we can specify the reuse method in the level of ports. As an example, we take the following rule: @@ -115,7 +150,7 @@ ``` It becomes quite reasonable, but there is no significant improvement in terms of execution speed than I expected. It becomes useful to demonstrate the execution performance obtained by the theoretical analysis. - To keep using the old version, make the following uncommented in `config.h`: + To keep using the old version, uncomment the following in `config.h`: ``` //#define OLD_REUSEAGENT |
