Up to Main Index                          Up to Journal for December, 2023

                  JOURNAL FOR WEDNESDAY 13TH DECEMBER, 2023
______________________________________________________________________________

SUBJECT: Mere ICE updated to v0.0.10
   DATE: Wed 13 Dec 19:55:37 GMT 2023

Mere ICE has been updated to v0.0.10 in the annexed works[1]. The update comes
just over two weeks after the v0.0.9 release. This release sees the addition
of three new tilde operators: ~l (lower-case matches), ~u (upper-case matches)
and ~j (concatenate string array elements with separator). Two new bit-wise
shift augmented assignment operators have been added: <<= and >>=, these were
previously omitted by accident. The performance of range-next loops over
non-trivial arrays and maps has been fixed. A issue with break/continue in
consecutive loops that are nested in other loops has been fixed.

A lot of work has been going on behind the scenes cleaning up and improving
the various phases of the compiler. As a result some bugs may have snuck in :(
All tests in the current test suite on AMD64, ARM32 and ARM64 platforms are
passing. If you have any odd issues please drop me an email and I’ll look into
it promptly: diddymus@wolfmud.org

NOTE: Please make sure the version in the top right of Mere ICE shows ‘v0.0.10’
      and if not hard refresh the web page in your browser.

From the “What’s New” section:

  v0.0.10 — Wednesday 13th December, 2023
  ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

    • Fixed float to uint conversions on ARM64.

    • Fixed performance when using range-next loop on non-trivial arrays and
      maps — where non-trivial is over a few thousand elements.

    • Fixed break/continue within consecutive loops that are nested in other
      loops.

    • New tilde operators added:

        ~l Lowercase regular expression matches
        ~u Uppercase regular expression matches
        ~j Join string array elements together with a separator

      Examples:

        println "CAT" ~l \`(?:.(..))\` // displays "Cat"
        println "the quick brown fox" ~u \`(\\b\\w)\`
                                     // displays "The Quick Brown Fox"
        sa := []string "c" "a" "t"
        println sa ~j ", "           // displays "c, a, t"
        println sa ~j ""             // displays "cat"

    • New bit-wise shift augmented assignment operators added:

        i := 4;  i <<= 2  // i is 16
        i := 32; i >>= 2  // i is 8

    • Internal reworking of compiler phases — there may be bugs!

--
Diddymus

  [1] The annexed works: /annex/


  Up to Main Index                          Up to Journal for December, 2023