Skip to content

Releases: vtereshkov/umka-lang

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

Umka 0.8

15 Jul 13:38
Compare
Choose a tag to compare
  • Built-in maps (map.um is deprecated)
  • Module aliases
  • Unused identifier/unused import warnings
  • Sandbox mode (disables accessing the file system and/or UMIs)
  • Bug fixes

Umka 0.7

14 May 21:27
Compare
Choose a tag to compare
  • Variadic functions
  • Default parameters of structured types
  • Implicit interface-to-concrete conversions are no longer allowed
  • Null strings are equivalent to empty strings
  • fiber is now a pointer; ^fiber is no longer needed
  • Dynamic arrays are now accessible through the C API (read only)
  • valid() checks if a dynamic array, interface or function variable is not null
  • Improved garbage collection for long lists
  • Web-based playground
  • Bug fixes