Skip to content

Releases: vtereshkov/umka-lang

Umka 1.5

29 Sep 15:26
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

Umka 1.2

16 Sep 18:02
Compare
Choose a tag to compare
  • Closures
  • Type switch statements
  • Closing braces are allowed on a new line
  • Faster string implementation
  • C API for creating dynamic arrays
  • Bug fixes

Umka 1.1

19 Jun 20:13
0dd6a25
Compare
Choose a tag to compare
  • Ternary conditional operator: a ? b : c
  • repr replaced with %v format specifier in printf, sprintf, fprintf
  • Bytecode compiler optimizations
  • Bug fixes

Umka 1.0

27 Apr 22:47
Compare
Choose a tag to compare
  • Type inference in composite literals
  • Optional initializer in new()
  • All standard library modules are embedded into Umka executable
  • Memory leak sanitizer
  • Optimized function calls
  • Optimized UTF-8 encoding/decoding
  • Optimized len() for strings
  • Improved std.rand()
  • New Umka API documentation
  • Bug fixes

Umka 0.10

08 Jan 10:14
Compare
Choose a tag to compare
  • Uninitialized dynamic arrays and maps are treated as valid
  • Optimized append(), insert(), delete()
  • cap() for dynamic arrays, copy() for maps
  • Covariant dynamic arrays
  • Map key types must be comparable
  • any as an alias for interface{}
  • Optimized += for strings
  • OS-specific suffixes (_windows or _linux) are allowed in UMI file names
  • Better error messages
  • Bug fixes

Umka 0.9

14 Oct 12:43
Compare
Choose a tag to compare
  • Strings are now immutable
  • Interface-typed map keys are no longer allowed
  • New dynamic array handling functions: copy, insert
  • New math functions: ceil, floor and the % operator for reals
  • New date/time handling functions: std.localtime, std.gmtime, std.mktime, std.timestr
  • New flow control function: exit
  • Improved I/O functions: sprintf, std.fread, std.fwrite
  • C API for garbage collection and map items access
  • Source file and line in stack traces
  • Bug fixes