Releases: Rohansi/Mond
Releases Β· Rohansi/Mond
v0.11.1
v0.11.0
- Breaking: Changed (fixed) the execution order of function calls
x(y, z)
fromy, z, x
tox, y, z
- Breaking: Replaced automatic wrapping of functions inside objects with instance calls
- Calls in the form of
x.y(z, w)
will turn intox.y(x, z, w)
conceptually at compile time wherex
will only be evaluated once - If
x
isglobal
orCapitalized
then it will not transform into an instance call - Caching an object's method will no longer automatically bind the method to the object
person.greet(); // βοΈ const greet = person.greet; greet(person); // βοΈ greet(); // βοΈ will not pass the instance to the method
- Calls in the form of
- Breaking: Writing values to objects will no longer attempt to write to something in the prototype chain when the key doesn't exist
- Breaking:
__get
and__set
metamethods have been replaced by proxy objects - Breaking: Replaced
params MondValue[]
withparams Span<MondValue>
everywhere - Made
.mnd
file extensions optional inrequire()
- Added an
export
modifier to make creating modules easier// Math.mnd export fun add(x, y) -> x + y; export const pi = 3.14159; export * from MoreMath; // merge another module's exports into this one
- Added an
import
statement to make it easier to use modulesimport Math; // or... from Math import { add }; // or... from 'Math.mnd' import { add };
- Added support for function syntax inside of object literals
const obj = { method() { // ... }, fun methodB() { // ... }, seq methodC() { // ... }, @decorator fun methodD() { // ... } };
- Optimized increment/decrement operation when the result is not needed
v0.10.2
- Breaking: Merged Mond.SourceGenerator into the Mond NuGet package. The Mond.SourceGenerator NuGet package is now deprecated.
- Fixed
Json.serialize
incorrectly formatting numbers using the operating system's culture info - Added
parseFloat
,parseInt
, andparseHex
functions
v0.10.1
v0.10.0
- Breaking: Replaced runtime, reflection-based bindings with a compile-time source generator using the same attributes
- Install the
Mond.SourceGenerator
package to add this functionality to your project - Bound classes must be
partial
or there will be a compiler error - The source generator will generate a
Library
nested class in every class/module you bound - The
Library
classes implementIMondLibrary
so you can add them to yourMondState
directly
- Install the
- Breaking:
MondDebugger.ShouldBreak
will no longer be called for nearly every instruction, only on checkpoints now- New VM instruction
DebugCheckpoint
is inserted before every statement when compiling withMondDebugInfoLevel.Full
- Improves overall performance by moving code out of the VM's hot path, even when a debugger is not attached
- New VM instruction
- New website: https://mond.rohan.dev/
- Add a new option
MondModuleAttribute.BareMethods
to bind all the type's methods as standalone methods instead of nested under a module object - Mond debug protocol implementation extracted into
Mond.Debugger.MondProtocolDebugger
so alternative transports can easily be made
v0.9.4
v0.9.3
- Breaking: Make
MondValue.RShiftSlow
private - Implement some optimizations to improve inlinability in the runtime
- Improve the selection of breakpoints so it lines up more with editors
Visual Studio Code
- Improve the reliability of launching Mond scripts and attaching the debugger
- Fix the debugger getting stuck when requesting it to stop on entry
- Disable conditional breakpoints and log points (not supported)
- Fixed several issues causing broken/wonky breakpoint behavior
- Updated dependencies
v0.9.2
- Fix a possible parse error when calling
require()
on files that do not end in a line break - Support adding
IMondLibrary
instances directly toMondState.Libraries
, so implementingIMondLibraryCollection
is now optional - Breaking change:
IMondLibrary.GetDefinitions
updated with an additional parameter forMondState
v0.9.1
v0.9.0
- Breaking: Removed the integrated interface from the remote debugger
- New Visual Studio Code extension with syntax highlighting and debugging for Mond
- Improved performance of accessing function arguments
- Delete the expressions binder (it was broken and going to be replaced)
- Breaking: Made serialized
MondProgram
version field a 32-bit integer, bumped version - Breaking: Dropped support for .NET Standard 1.3