- Errors in global scripts now show up in the jsonpatcher log
- The main log now only gets a summary
- Updated lang module to beta 3
- Fixed issues with resolving inner classes in reflection
- Implemented loading of resource patches from global directory
- Cleanup of dumping locations
- Expose compiler error nicer
First beta of v2. This release has overhauled large parts of the language and not everything can be listed here.
Some highlights:
- Replaced tree-walking interpreter with compiler for jvm bytecode
- Noticeable performance uplift
- Expanded standard library
- Minor changes everywhere
- More of the stdlib is now written in jsonpatcher code
- Add reflection library for accessing java code
- Locked by default to patches from mods and modpacks
- Allows for more to be done in jsonpatcher without having to write wrappers in java
- Global patch system for libraries and startup patches for mods and modpacks
- Due to design limitations, metapatches now use a library instead of a global
Lots of improvements have also been done to tooling and the language server, but they will mostly be released at a later time.
- Updated to 1.21
- Use an alternative hook point in order
- Provides better compatibility with mods reading resources outside of reloads
- Only loads patches once per pack load
- No longer warns when a file isn't being patched (most such cases should have been fixed anyway)
- Renamed
abort_reload_on_failure
tothrow_on_failure
to better reflect its behaviour - Update language library
- Made debug library functions that throw errors slightly cleaner
- Added default arguments (no named arguments yet)
- Added varargs support
- Added
objects
library - Replaced
arrays.mapped
andarrays.filtered
witharrays.replace
andarrays.removeIf
respectively - Added various other library functions
- Cleaned up stack traces
- Improved many error messages
- Added option for metapatches to filter files using targets
- There's now a VSCode Extension available!
- Moved core language to its own project
- Added ternary operator
- Added option to dump patched files
- Added metapatches
- They are patches that don't change a file, but instead add or remove existing files
- Added priority system for patches
- Updated language
- Meta tags can now be empty, will be interpreted as null
- String keys are now supported in objects
- Support negative numbers in meta tags