umka-lang

Umka: a statically typed embeddable scripting language

BSD-2-CLAUSE License

Stars
1K

Bot releases are visible (Hide)

umka-lang - Umka 1.4.1 Latest Release

Published by vtereshkov 4 months ago

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

Published by vtereshkov 5 months ago

  • 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-lang - Umka 1.3.1

Published by vtereshkov 8 months ago

  • 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-lang - Umka 1.3

Published by vtereshkov 9 months ago

  • 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-lang - Umka 1.2

Published by vtereshkov about 1 year ago

  • Closures
  • Type switch statements
  • Closing braces are allowed on a new line
  • Faster string implementation
  • C API for creating dynamic arrays
  • Bug fixes
umka-lang - Umka 1.1

Published by vtereshkov over 1 year ago

  • Ternary conditional operator: a ? b : c
  • repr replaced with %v format specifier in printf, sprintf, fprintf
  • Bytecode compiler optimizations
  • Bug fixes
umka-lang - Umka 1.0

Published by vtereshkov over 1 year ago

  • 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-lang - Umka 0.10

Published by vtereshkov almost 2 years ago

  • 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-lang - Umka 0.9

Published by vtereshkov about 2 years ago

  • 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-lang - Umka 0.8

Published by vtereshkov over 2 years ago

  • 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-lang - Umka 0.7

Published by vtereshkov over 2 years ago

  • 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
umka-lang - Umka 0.6

Published by vtereshkov almost 3 years ago

  • Stricter equivalence rules for declared types
  • Equivalence rules for functions no longer require parameter names to match
  • Interfaces can be converted back to non-pointer types
  • Pointers to pointers cannot be stored in interfaces
  • All structures have natural alignment
  • Support for sizeof(T) and std.system(command)
  • Storing pointers as void * rather than int64_t in VM stack
  • Static storage size is no longer required in umkaInit()
  • Bug fixes
  • Tested on 32-bit PowerPC and SPARC
umka-lang - Umka 0.5.3

Published by vtereshkov about 3 years ago

  • Limited UTF-8 support
  • Improved hash maps
  • String trimming functions
  • Standard library module embedded into the executable file
  • Bug fixes
umka-lang - Umka 0.5.2

Published by vtereshkov over 3 years ago

  • Constant lists as enumerations
  • Stack trace output on runtime errors
  • Reordered command-line options
  • Bug fixes
umka-lang - Umka 0.5.1

Published by vtereshkov over 3 years ago

  • More consistent type casts
  • Stricter rules for method receiver types
  • slice() for strings
  • Loading modules from string buffers
  • -check command-line option
  • Bug fixes
umka-lang - Umka 0.5

Published by vtereshkov over 3 years ago

  • Improved memory safety
  • Virtual machine optimizations
  • Maps
  • slice(), clock(), getenv()
  • Bug fixes
umka-lang - Umka 0.4.1

Published by vtereshkov almost 4 years ago

  • Automatic linking of native shared libraries that implement external functions
  • Safe weak pointers
  • Interfaces are no longer allowed as method receivers
  • Partially initialized structure literals
  • Bug fixes
umka-lang - Umka 0.4

Published by vtereshkov almost 4 years ago

  • API change: Script source can be loaded from a string buffer
  • Composite literal address can be safely returned from a function
  • Bug fixes
umka-lang - Umka 0.3.4

Published by vtereshkov almost 4 years ago

  • Safer I/O
  • Extensible interface type
  • Dynamic array literals
  • More flexible append()
  • Language specification
umka-lang - Umka 0.3.3

Published by vtereshkov almost 4 years ago

  • Multiple assignment / return values
  • Simple 3D vector/matrix library
  • Syntax highlighting for Sublime Text
  • Better error messages
  • Bug fixes