Mond Versions Save

A scripting language for .NET Core

v0.10.0

3 months ago
  • 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 implement IMondLibrary so you can add them to your MondState directly
  • 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 with MondDebugInfoLevel.Full
    • Improves overall performance by moving code out of the VM's hot path, even when a debugger is not attached
  • 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

2 years ago
  • Allow applying decorators to variable declarations (example)
  • Added clamp, log(d, b), log10, and pow functions to Math
  • Added normalize function to string prototype
  • Fixed a minor decorator parsing bug to improve break positions on decorated expression functions

v0.9.3

2 years ago
  • 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

2 years ago
  • Fix a possible parse error when calling require() on files that do not end in a line break
  • Support adding IMondLibrary instances directly to MondState.Libraries, so implementing IMondLibraryCollection is now optional
  • Breaking change: IMondLibrary.GetDefinitions updated with an additional parameter for MondState

v0.9.1

2 years ago
  • Fix require throwing a bounds exception trying to find the script's path
  • Case insensitive search when looking for program indices in debugger

v0.9.0

3 years ago
  • 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

v0.8.0

3 years ago
  • Breaking: MondValue is now a struct instead of a class
  • Performance improvements
  • Bytecode format changed - not compatible with previous releases

v0.7.0

3 years ago
  • Breaking: Dropped support for .NET 4.6
  • Breaking: Made MondValue constructors private -- use the new ``MondValue` static builder methods instead
  • Strings are now written to bytecode files as length-prefixed UTF-8
  • Added the --wait flag to the REPL which pauses scripts so you can connect a debugger

v0.6.4

5 years ago
  • Added the MondState.Global property to get the global object

v0.6.3

5 years ago
  • Fixed stack overflow in VM when using array literals with over 250 values in them (#72)