Skip to content

Releases: vtereshkov/umka-lang

Umka 1.5.5

24 Dec 22:55

Choose a tag to compare

  • Optimized maps
  • Multi-line string literals
  • Static type checking in printf/scanf format strings
  • std::File closed automatically upon going out of scope
  • cap for strings
  • typeptr deprecated
  • New C API functions for accessing Umka data types: umkaGetParamType, umkaGetResultType, umkaGetBaseType, umkaGetFieldType, umkaGetMapKeyType, umkaGetMapItemType
  • umkaRun may be called multiple times or not called at all
  • Bug fixes

Umka 1.5.4

21 Aug 21:23
806cc03

Choose a tag to compare

  • Intuitive value-based comparison semantics for structured types
  • Dynamic arrays allowed as map keys
  • Safer and more flexible weak pointers
  • Full UTF-8 support on Windows
  • Shadowed declarations diagnostics
  • New C API functions to store arbitrary user metadata
  • Virtual machine optimizations
  • Numerous bug fixes

Umka 1.5.3

28 Mar 09:41

Choose a tag to compare

  • Trailing commas allowed in composite literals
  • selfptr built-in function
  • Bug fixes

Umka 1.5.2

28 Jan 18:15
cfc0e10

Choose a tag to compare

  • Digit group separator _ in numeric literals
  • Better error detection
  • Bug fixes

Umka 1.5.1

26 Dec 13:28

Choose a tag to compare

  • Builtin abs for integers
  • Better overflow diagnostics
  • Bytecode optimizations
  • Bug fixes

Umka 1.5

29 Sep 15:26

Choose a tag to compare

  • New builtin functions for fibers: make, valid, resume
  • Builtin sort
  • New pseudo-random number generator
  • Heavily optimized maps
  • New C API for accessing Umka functions: umkaGetParam, umkaGetUpvalue, umkaGetResult, umkaGetInstance, umkaMakeFuncContext
  • Optimized bytecode generator
  • Better error diagnostics
  • Improved syntax highlighting for Sublime Text
  • Bug fixes

Umka 1.4.1

03 Jul 21:51

Choose a tag to compare

  • Dynamic array literals are allowed in constant expressions
  • Umka->C->Umka call chains are allowed
  • Improved syntax highlighting for Sublime Text
  • Bug fixes

Umka 1.4

25 May 16:24
c7d905e

Choose a tag to compare

  • New a::b syntax for imported identifiers to distinguish them from field/method access
  • Separate namespace for module names
  • Enumeration type
  • Improved type inference for composite literals and enumeration constants
  • Recursive types containing dynamic arrays or maps
  • Friendly weak pointers
  • %lv and %llv format specifiers for pretty-printing with printf()
  • main() is optional
  • New std::assert() and improved std::exitif()
  • Improved disassembly output
  • Bytecode optimizations
  • Bug fixes

Umka 1.3.1

28 Feb 00:00

Choose a tag to compare

  • for..in now allows accessing collection items by pointer
  • Error handling:
    • error() is removed
    • exit() now accepts an error code returned to the OS and an optional error message
    • umkaRun() and umkaCall() now return an error code (0 on success)
    • umkaAlive() is added to check if the interpreter can still execute umkaRun() or umkaCall()
    • std.Err, std.error(), std.exitif() are added for graceful error handling
  • Unicode support:
    • printf() on Windows fixed
    • Locale parameter in umkaInit() is deprecated
  • Bytecode optimizations
  • Cyclic import detection
  • Bug fixes

Umka 1.3

17 Jan 10:06

Choose a tag to compare

  • Closures compatible with conventional functions
  • Variable redeclarations allowed in multiple assignments
  • std.stdin(), std.stdout(), std.stderr(), std.fflush()
  • Dynamic access to API via umkaGetAPI() without linking against Umka
  • API change: umkaGetType() replaced with typeptr()
  • Bug fixes