Skip to content

Commit 7550bb1

Browse files
committed
chore: update changelog for 4.1.2
1 parent a41f30e commit 7550bb1

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Change Log
22

3-
## [Unreleased changes] - 20XX-XX-XX
3+
## [4.1.2] - 2026-01-09
44
### Added
55
- the repl prints the output of the last expression it ran
66
- new super instructions: `MUL_BY`, `MUL_BY_INDEX`, `MUL_SET_VAL` that can do multiplications (and optional storing in vars) in place
@@ -19,8 +19,6 @@
1919
- the REPL attempts to load a file from `ARKSCRIPT_REPL_STARTUP` environment variable, to preload code
2020
- rename LOAD_SYMBOL and LOAD_SYMBOL_BY_INDEX to LOAD_FAST and LOAD_FAST_BY_INDEX to emphasize they load refs
2121

22-
### Removed
23-
2422
## [4.1.1] - 2025-12-13
2523
### Fixed
2624
- the formatter was breaking functions' arguments list containing argument attributes on multiple lines for no reason
@@ -85,11 +83,11 @@
8583
- new operator `@@` to get elements in list of lists / list of strings
8684
- new builtin `random`, returning a random number between INT_MIN and INT_MAX, or in a custom range
8785
- `$as-is` to paste a node inside a maro without evaluating it further ; useful to stop recursive evaluation of nodes inside function macros
88-
- `LOAD_FAST_BY_INDEX` instruction, loading a local from the current scope by an index (0 being the last element added to the scope)
86+
- `LOAD_SYMBOL_BY_INDEX` instruction, loading a local from the current scope by an index (0 being the last element added to the scope)
8987
- `STORE_FROM_INDEX` and `SET_VAL_FROM_INDEX` instructions for parity with the super instructions not using load by index
9088
- `INCREMENT_BY_INDEX` and `DECREMENT_BY_INDEX` instructions for parity with the super instructions not using load by index
9189
- `STORE_TAIL_BY_INDEX`, `STORE_HEAD_BY_INDEX`, `SET_VAL_TAIL_BY_INDEX`, `SET_VAL_HEAD_BY_INDEX` super instructions added for parity with the super instructions not using load by index
92-
- `RESET_SCOPE_JUMP` instruction emitted at the end of a while loop to reset a scope so that we can create multiple variables and use `LOAD_FAST_BY_INDEX`
90+
- `RESET_SCOPE_JUMP` instruction emitted at the end of a while loop to reset a scope so that we can create multiple variables and use `LOAD_SYMBOL_BY_INDEX`
9391
- instruction source location ; two new bytecode tables were added: one for filenames, another for (page pointer, instruction pointer, file id, line), allowing the VM to display better error messages when the source is available
9492
- show source location when a runtime error is thrown in the VM
9593
- `LT_CONST_JUMP_IF_FALSE` and `LT_SYM_JUMP_IF_FALSE` to compare a symbol to a const and a symbol to a symbol (respectively), then jump to an address if false (useful for while loops that check a simple `(< x n)` condition)
@@ -187,7 +185,7 @@
187185
- magic numbers for value types in bytecode files have been changed from 0x01, 0x02, 0x03 to 0xF1, 0xF2, 0xF3 (number, string, function)
188186
- numbers in the values table in bytecode files are no longer turned to string, but their IEEE754 representation is now encoded on 12 bytes (4 for the exponent, 8 for the mantissa)
189187
- changed how scopes are stored inside the VM to enhance performances. All scope data are now contiguous!
190-
- when possible, accessing variables from the current scope is compiled to a new instruction `LOAD_FAST_BY_INDEX`, to avoid the sometimes expansive lookup by id
188+
- when possible, accessing variables from the current scope is compiled to a new instruction `LOAD_SYMBOL_BY_INDEX`, to avoid the sometimes expansive lookup by id
191189
- this works inside normal scopes (introduced by while loops) and functions scopes, but not for closures
192190
- VM stack size is now 4096 instead of 8192
193191
- `Ark::CodeError` now takes a `CodeErrorContext` to store the source (filename, line, column, expression) of an error

0 commit comments

Comments
 (0)