February 13, 2018 --------------------------------------------------------------- Yesterday I wrote a new `s:eq?` implementation. The old one was messy, and I wanted a cleaner implementation. While I suspected it would be faster, it makes a much bigger difference than I had expected. Here's a table with the average of four runs each of the examples, under `rre`, using the 2018.1 image and the current development image. Example 2018.1 CURRENT ========================== ====== ======= 1D-Cellular-Automota.forth 0.56 0.05 99Bottles.forth 0.59 0.21 AddingVectors.forth 0.38 0.04 Atua.forth 11.77 4.96 Autopsy.forth 1.28 0.09 Chess.forth 0.55 0.05 DictionaryStats.forth 0.34 0.04 Disassembler.forth 0.95 0.09 GCD.forth 0.10 0.02 IterativeFibonacci.forth 0.12 0.02 LeastCommonMultiple.forth 0.15 0.02 NumbersWithoutPrefix.forth 0.62 0.05 Parse-UPS.forth 0.38 0.04 Primes.forth 40.61 11.94 RecursiveFactorial.forth 0.16 0.02 RecursiveFibonacci.forth 0.19 0.03 StringToNumberWithBase.forth 0.82 0.06 TokenizeString.forth 0.32 0.03 VT100.forth 0.71 0.05 accumulator.forth 0.14 0.02 hanoi.forth 0.23 0.03 is-palindrome.forth 0.10 0.02 is-pangram.forth 0.18 0.03 rot13.forth 0.16 0.02 sort-on-stack.forth 0.20 0.03 unicode.forth 0.09 0.02 Total Time: 61.70 17.98 So I'm *very* happy with this. There's a few more small areas of the kernel I'd like to revisit, but I doubt any of them will have an impact like this. ---------------------------------------------------------------