List of Design Decisions - Spicery/Nutmeg GitHub Wiki

In reverse chronological order:


07 Nov 2021

  • Adopting the term sealing in preference to 'permanent locking'.
  • Removed reversible locking from the language. Reversible locking doesn't have any key use-cases, so I have dropped this complexity. (SL)

02 Jan 2021

  • Adopting the term const in preference to "fully immutable" or "recursively immutable".

04 Oct 2020

  • To reduce the overuse of the word 'function' the "kind":"function" is now "kind":"lambda"

02 Sep 2020

  • Modifier local replaces private as the latter is reserved for actor-like semantics.

30 Aug 2020:

  • Modifiers var, val and const adopted meaning re-assignable, single-assignment, single-assignment-to-immutable value.
    • var x means x can be reassigned after the initial binding
    • val y means y cannot be reassigned after the initial binding but may be bound to any kind of value
    • const z means z cannot be assigned after the initial binding and may only be bound to immutable* values
  • The default is const in functions and val in procedures and finesses.

24 Aug 2020:

  • private modifier introduced along with block scope (renamed local 02 Sep 2020).
  • class ... endclass is implicitly a block scope.