Skip to content

Releases: Rohansi/Mond

v0.10.2

07 Jun 15:29
Compare
Choose a tag to compare
  • 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, and parseHex functions

v0.10.1

06 Jun 17:00
Compare
Choose a tag to compare
  • Add support for Task and Task<T> return types in source generated function bindings

v0.10.0

17 Feb 17:27
Compare
Choose a tag to compare
  • 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

11 Feb 03:44
Compare
Choose a tag to compare
  • 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

15 Jan 22:54
Compare
Choose a tag to compare
  • 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

06 Aug 03:41
Compare
Choose a tag to compare
  • 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

06 Aug 03:35
Compare
Choose a tag to compare
  • 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

18 Feb 14:57
Compare
Choose a tag to compare
  • 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

08 Feb 19:27
Compare
Choose a tag to compare
  • Breaking: MondValue is now a struct instead of a class
  • Performance improvements
  • Bytecode format changed - not compatible with previous releases

v0.7.0

09 Aug 16:11
b2164ee
Compare
Choose a tag to compare
  • 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