Skip to content

Releases: evo-lua/evo-runtime

v0.0.20

20 Oct 23:30
9183fe3
Compare
Choose a tag to compare

Breaking Changes

  • Due to a larger rework in the RML library, its WebGPU render interface has seen significant changes

New Features

  • Three more table utilities have been added: table.keys,table.values, and table.shuffle
  • A new and experimental event-based AsyncFileReader module is now part of the file system API
  • It's now possible to read ZIP archives while avoiding disk I/O via miniz.new_reader_memory

Improvements

  • Self-contained executables can now easily require scripts and extract files from the virtual file system

Pull Requests

  • [9183fe3] - Update the changelog for v0.0.20
  • [33b4519] - Prevent sporadic dbus errors in the Linux build workflow
  • [cbc0052] - Update uWebSockets to the latest HEAD
  • [5f24ea5] - Update lua-utf8 to the latest HEAD (and remove the embedded version)
  • [3991bb0] - Enable verbose logging for xvfb errors in the Linux build workflow
  • [8cc8dc8] - Update FreeType to the latest HEAD
  • [37e145b] - Update all third-party actions to their latest version
  • [92724db] - Enable caching for build artifacts in the Windows release workflow
  • [08bcb53] - Set the C++ compiler explicitly in RML build scripts
  • [f6ae516] - Update miniz to the latest HEAD
  • [a6ba58c] - Streamline the autoformat workflow to enable version pinning for all platforms
  • [5583e79] - Strip GDB debug symbols from generated object files
  • [8269a2b] - Enable parallel builds for LuaJIT
  • [cf94b6c] - Update LuaJIT to the latest HEAD
  • [403863a] - Update luv to the latest HEAD
  • [6d9e9be] - Update stb to the latest HEAD
  • [9a5e848] - Update PCRE2 to the latest HEAD
  • [c02e989] - Update lua-openssl to the latest HEAD
  • [2015a57] - Update OpenSSL to the latest HEAD
  • [a51c1b7] - Fix clang-format inconsistencies for different SpaceInEmptyBlock settings
  • [cf94c17] - Add a missing nil test case for validateString
  • [5eadd75] - Add a vfs.extract function to more easily load asset files from within LUAZIP apps
  • [6c5c929] - Always apply +x to self-contained executables after they've been built
  • [7f0e071] - Eliminate unnecessary I/O in vfs.dofile by using an in-memory ZIP reader
  • [de27e7b] - Fix the default checksum for miniz.adler32
  • [13f04cf] - Update OpenSSL to the latest HEAD
  • [9647cb7] - Enable loading modules from within the LUAZIP VFS
  • [6d91bc9] - Fix warnings turned fatal by GCC 14 when building lua-openssl and LabSound
  • [b679f0c] - Update RML to the latest HEAD
  • [6966c31] - Update wgpu-native to the latest HEAD
  • [08dc7f8] - Update stb to the latest HEAD
  • [f34da4b] - Update FreeType to the latest HEAD
  • [02a1c3c] - Update GLFW to the latest HEAD
  • [9697098] - Update uWebSockets to the latest HEAD
  • [02838f5] - Update lua-openssl to the latest HEAD
  • [1b9f874] - Update OpenSSL to the latest HEAD
  • [df82671] - Update PCRE2 to the latest HEAD
  • [25cc95d] - Update LuaJIT to the latest HEAD
  • [7b19f7c] - Update luv to the latest HEAD
  • [10e19b3] - Replace a hardcoded error message for async reads
  • [c16d1a3] - Add an AsyncFileReader module to the FileSystem API
  • [89dd18a] - Fix a perpetually-running timer in the webview tests
  • [b041030] - Fix an issue with perpetually-running timer tests that manifests when another test attempts to use the event loop
  • [bdf9e21] - Fix the flaky uws-echo-server test by using a ticker
  • [33b8e3a] - Add a new table.shuffle extension for use in the benchmark scripts (and elsewhere)
  • [9402ea9] - Add a new CI step for running the benchmark scripts to all build workflows
  • [e4b3787] - Add table extensions for key and value retrieval
  • [007660e] - Add observability hooks for the builtin require system
  • [0cc9157] - Update the list of global aliases in .luacheckrc
  • [26edf02] - Update the rapidjson version used by lua-rapidjson to the latest HEAD
  • [4bde6fc] - Streamline the static exports table creation using C++ initializers
  • [38c26be] - Enable automatic version discovery for the stduuid library
  • [0d45483] - Add validation for all static exports tables
  • [a0b5e44] - Disable the static analysis workflow for changelog updates

Contributors (in alphabetical order)

  • No external contributors

v0.0.19

20 Feb 19:56
81c6d55
Compare
Choose a tag to compare

New Features

  • LuaJIT's built-in CPU profiler can be enabled with the new profile command, or loaded as profiler
  • A syslog library has been added to support formatted log messages that tie into the event system
  • The eval command provides a REPL for interactive code evaluation if no arguments were passed
  • Added a debug command that allows running apps in debug mode, where event logging is always enabled
  • Two extensions have been added to the table library: table.reverse and table.invert
  • The etrace library received support for event listeners via publish,subscribe, and notify
  • Optimized bit operations for C++ numerics are now available: ceil, floor, ispow2, and width

Improvements

  • Error details are now displayed in reverse order by bdd reports to reduce the need for scrolling
  • Encoding options should correctly be passed to json.stringify (and not just json.encode)
  • Apps can now use json.encode with cdata and other values that provide a __tostring metamethod

Breaking Changes

  • Replaced the global EVO_VERSION variable with runtime.version(), which supports multiple returns
  • The WebGPU FFI bindings are now preloaded as wgpu instead of webgpu, providing the same API
  • Moved stbi.replace_pixel_color_rgba from Lua to C++ (apps must now access it via stbi.bindings)
  • The assertions.export method has been replaced with a new package.open extension

Pull Requests

  • [81c6d55] - Update the changelog for v0.0.19
  • [0ace06b] - Remove an unused variable from the REPL code
  • [3fac5e3] - Update webview to the latest HEAD
  • [550f648] - Replace assertions.export with a new package.open extension (that's more generally useful)
  • [3d165b6] - Replace the Lua implementation of stbi.replace_pixel_color_rgba with a C++ version
  • [dec4c81] - Add FFI bindings for some of the C++ standard library bit operations (from the Numerics library)
  • [27af943] - Update GLFW to the latest HEAD
  • [814de07] - Rename the webgpu library to wgpu
  • [60d7032] - Reorganize the directory structure for the FFI bindings
  • [3661c7d] - Enable automated synchronization of cdefs for the FFI bindings
  • [3d270e8] - Add a new table.invert standard library extension
  • [c5cf4cf] - Add support for encoding cdata values (and other objects with a __tostring metamethod) to json.encode
  • [c6ff7ea] - Remove an unused typedef for lua_CFunction from the LuaVirtualMachine header
  • [a53d9c5] - Move all setup code for the Lua environment to the runtime library
  • [39ba113] - Fix various errors in the CodeQL workflow
  • [75f6079] - Add a new debug command to the interpreter CLI
  • [eb68da9] - Filter the uploaded CodeQL log to reduce the amount of spam in security alerts
  • [96f817f] - Streamline the initialization of the FFI bindings
  • [b25b5bf] - Fix some inconsistencies in the json library
  • [a3c0ee2] - Streamline the input validation in the text transformation library
  • [09368ee] - Add some usage instructions to the interpreter's "live edit" (REPL) interface
  • [ba5c5db] - Prevent event notifications from being suppressed if logging for the given event happens to be disabled
  • [a9212d4] - Use the fancy new-fangled macOS name consistently (instead of the "good old" Mac OS X)
  • [3d60cbc] - Enable the CodeQL workflow to run for PR updates
  • [5c0defb] - Add a missing cleanup step to the snapshot test for the profiling command
  • [fec9dab] - Integrate LuaJIT's REPL and expose it via the eval command
  • [f058c48] - Update luv to the latest HEAD
  • [38da2b6] - Update OpenSSL to the latest HEAD
  • [772eef8] - Introduce a new syslog library that provides standardized SYSLOG_MESSAGE events
  • [37312c3] - Fix a CodeQL warning due to potential (but virtually impossible) overflow in the RML WebGPU backend
  • [6187557] - Add a missing installation step for PulseAudio to the CodeQL workflow
  • [92d0c09] - Provide access to LuaJIT's built-in CPU profiler via a preloaded library and CLI command
  • [b9e49b7] - Add support for event listener subscriptions and notifications to the etrace library
  • [79e11e2] - Reverse the order of error details that are being displayed by the test runner
  • [e731852] - Fix a typo in the unit tests for the etrace library
  • [4c7b728] - Disable the static analysis workflow for changelog updates

Contributors (in alphabetical order)

  • No external contributors

v0.0.18

02 Feb 12:19
092896a
Compare
Choose a tag to compare

New Features

  • Spatialized 3D audio is now available as part of the labsound bindings (PannerNode APIs)
  • Experimental platform support for macOS 14 and the M1 architecture, as well as M1 release binaries
  • New assertion shorthand for floating-point number comparisons: assertApproximatelyEquals

Improvements

  • Native WebGPU extension APIs, enums, and types are now supported by the webgpu bindings
  • The interpreter CLI now displays the exact commit hash for embedded library versions

Pull Requests

  • [092896a] - Update the changelog for v0.0.18
  • [52e382d] - Update the autoformat workflow to use the latest StyLua version (and action)
  • [d311877] - Fix an outdated section label in the etrace unit tests
  • [13171ac] - Fix some section labels in the labsound unit tests
  • [1e91fdc] - Add 3D spatialization APIs to the LabSound FFI bindings
  • [b7af51f] - Modify the macOS build workflow to also include M1
  • [2f19002] - Introduce a shorthand for float equality assertions
  • [8517621] - Update OpenSSL to the latest HEAD
  • [a2f57ad] - Update LuaJIT to the latest HEAD
  • [ac954c9] - Update zlib to the latest HEAD
  • [78e1a25] - Update GLFW to the latest HEAD
  • [2accfa0] - Update LabSound to the latest HEAD
  • [2511a94] - Set up a global alias for oop.implements
  • [7f10049] - Store global aliases in the evo library
  • [4bc89c4] - Fix the order of args being passed to zip apps
  • [77e385f] - Add a way to detect mixins to the oop library
  • [e6ad71d] - Fix a bug in the default oop constructor
  • [5e5bf0f] - Preload LuaJIT's table.clear extension by default
  • [654d815] - Update wgpu-native to the latest HEAD
  • [5f82b31] - Add FFI bindings for native wgpu extensions to the webgpu library
  • [4b3d847] - Display embedded library versions in the CLI help text
  • [5f533e3] - Disable git's autocrlf feature in the Windows CI runner
  • [8fd5faa] - Ensure the clang-format install script fails on error
  • [c60ad76] - Enable building with n2 to avoid unnecessary recompilation of object files
  • [6c70ee0] - Enable the autoformat workflow to run on Windows and macOS as well
  • [4e86d9e] - Set up linting via selene (in addition to luacheck)

Contributors (in alphabetical order)

  • No external contributors

v0.0.17

18 Jan 22:30
034c89c
Compare
Choose a tag to compare

New Features

  • Added a new utf8 library for unicode string manipulation (powered by lua-utf8)
  • Added a new oop library that provides some basic object-orientation utilities
  • The new transform.strip function can be used to undo text transformations
  • LPEG has returned to the runtime and is available via the lpeg library

Improvements

  • Revamped the interpreter's command-line interface with colors and better failure modes
  • The CLI now includes a new test command to automatically discover and run test files
  • Another CLi shorthand - typing evo . will automatically attempt to start the main.lua script
  • There's now an alias for MT-generated uuids: uuid.create helps save some typing

Breaking Changes

  • The global extend builtin has been removed in favor of oop.extend

Pull Requests

  • [034c89c] - Improve the failure mode for CLI commands
  • [272fca7] - Update the changelog for v0.0.17
  • [6fd83e2] - Make sure the clang-format version used is consistent between Windows and Linux
  • [ac79f65] - Add a new utf8 library (powered by lua-utf8)
  • [6044a88] - Pin the clang-format version used by CI runs
  • [d53ebb3] - Colorize the interpreter's command line interface (and standardize some outputs)
  • [705ea36] - Add a new library for OOP primitives
  • [1101edf] - Remove a duplicated unit test for the printf global
  • [0558545] - Set up a default UUID generator shorthand (via uuid.create)
  • [bcb0015] - Update GLFW to the latest HEAD
  • [4924264] - Update the description of the test command
  • [a1d40a8] - Update the code scanning workflow to use CodeQL v3
  • [57c9834] - Enable verbose output for Lua files in the autoformat script
  • [fc7779c] - Rework the HTTP event queue integration test to make it work consistently
  • [d833c47] - Preload LuaJIT's table.new extension by default
  • [defae74] - Disable build workflow runs on feature branch creation
  • [e2623af] - Add a test command to the interpreter CLI
  • [0f906b5] - Add a fallback for running the default entry point from cwd if a dot was passed to the interpreter CLI
  • [719bc94] - Update RML to the latest HEAD
  • [002f2e9] - Add Lua bindings for LPEG
  • [59c1909] - Update GLFW to the latest HEAD
  • [1d0874e] - Update PCRE2 to the latest HEAD
  • [22a6750] - Update LuaJIT to the latest HEAD
  • [01e6b15] - Update uWebSockets to the latest HEAD
  • [ef3652d] - Update FreeType to the latest HEAD
  • [866ce76] - Update OpenSSL to the latest HEAD

Contributors (in alphabetical order)

  • No external contributors

v0.0.16

09 Jan 14:13
8b4e8bc
Compare
Choose a tag to compare

New Features

  • Added FFI bindings for RmlUI (including a WebGPU render interface)
  • Added FFI bindings for LabSound
  • glfwSetWindowIcon is now exposed via the GLFW FFI bindings

Pull Requests

  • [8b4e8bc] - Update the changelog for v.0.0.16
  • [105714a] - Update glfw3webgpu to the latest HEAD
  • [89d816e] - Add FFI bindings for LabSound
  • [89669e9] - Increase the delay for various HTTP integration tests
  • [93163dd] - Improve the output format for debug.sbuf string buffer and userdata value dumps
  • [7c21003] - Enable Lua script handlers inside RML documents
  • [ff6a6db] - Add GLFW input hooks to the RML bindings
  • [e67a075] - Implement RML rendering and system interfaces to integrate with WebGPU-based render loops
  • [33d6024] - Add FFI bindings for several RML UI core APIs
  • [a1f758d] - Add FFI and Lua bindings for glfwSetWindowIcon
  • [13134d7] - Enable xvfb for automated tests in the Linux build workflow
  • [77636c9] - Exclude .DS_Store from VCS tracking
  • [e216838] - Disable GitHub Actions on .gitignore changes

Contributors (in alphabetical order)

  • No external contributors

v0.0.15

21 Dec 06:19
06c2721
Compare
Choose a tag to compare

New Features

  • Introduced a new etrace library for realtime event tracing
  • Added table.copy (deep copy) and table.scopy (shallow copy) as extensions

Pull Requests

  • [06c2721] - Update the changelog for v0.0.15
  • [47fbcac] - Disable the build workflows for changelog updates
  • [ea0d1c1] - Fix a buffer overflow in the iconv bindings
  • [56a3b91] - Repair nested setup and teardown functions in the bdd library
  • [66a1112] - Update OpenSSL to the latest HEAD
  • [80e72f8] - Rename etrace.create to etrace.record
  • [b966f84] - Update webview to the latest HEAD
  • [7df667d] - Update stb to the latest HEAD
  • [c8c599f] - Update luv to the latest HEAD
  • [90369e4] - Add a new etrace library for event tracing
  • [ae7dff0] - Add table functions for deep and shallow copying

Contributors (in alphabetical order)

  • No external contributors

v0.0.14

14 Dec 05:12
d5dd1ba
Compare
Choose a tag to compare

New Features

  • Added table.count as a convenient shorthand for counting all elements in a table

Breaking Changes

  • Improved error handling in the iconv FFI bindings (some return values have changed)

Pull Requests

  • [d5dd1ba] - Update the changelog for v0.0.14
  • [c0b26d3] - Update wgpu-native to the latest HEAD
  • [5a25ee2] - Update the luacheck config to ignore jit modules
  • [4a4a1c2] - Update the StyLua version used for autoformat to v0.19.1
  • [d60f546] - Fix a CodeQL warning in the miniz bindings
  • [808e307] - Fix a CodeQL warning in the stbi FFI bindings
  • [904d1c9] - Improve error handling in the iconv bindings
  • [8439bd4] - Update all GitHub Actions workflows to use checkout v4
  • [cf97748] - Streamline the build process for lua-rapidjson
  • [279e72f] - Update LuaJIT to the latest HEAD
  • [8590adb] - Update OpenSSL to the latest HEAD
  • [6b3a714] - Update PCRE2 to the latest HEAD
  • [72ae45f] - Update GLFW to the latest HEAD
  • [1f15f5f] - Add proper input validation to iconv.convert (should fix the sporadic crashes)
  • [eb56e7e] - Fix a crash in os.exit when the close parameter is set to true
  • [e5181e1] - Fix ASAN warnings due to (inconsequential) memory leaks in the main loop
  • [71a3326] - Ensure a clean shutdown of the uws event loop
  • [35be295] - Move the ninjabuild target configuration logic to a separate BuildTarget module
  • [8e5d53e] - Fix an oversight in the base64-decode benchmark
  • [96fa731] - Add a new table.count utility method

Contributors (in alphabetical order)

  • No external contributors

v0.0.13

24 Nov 18:20
e7ed9c2
Compare
Choose a tag to compare

New Features

  • The interpreter CLI now supports shorthands (such as -e for eval), which enables live debugging in VS Code
  • Added FFI bindings for several missing GLFW functions related to window management

Breaking Changes

  • The parameters for certain miniz checksum APIs have been reordered to make them easier to use in the common case (no existing state)

Pull Requests

  • [e7ed9c2] - Update the changelog for v0.0.13
  • [9a6723a] - Add more window APIs to the GLFW bindings
  • [bf499bc] - Update miniz to the latest HEAD (and remove the manual DEFLATE patch)
  • [84f2633] - Forward the macOS deployment target to miniz
  • [1dab75a] - Remove a problematic iconv test case
  • [9eb62ca] - Update uWebSockets to the latest HEAD
  • [57c4ceb] - Update GLFW to the latest HEAD
  • [0f203ff] - Update LuaJIT to the latest HEAD
  • [8b97fd8] - Add a script to enable semi-automated submodule updates
  • [7fbfe92] - Update webview to the latest HEAD
  • [35151c4] - Update lua-openssl to the latest HEAD
  • [6a96f0c] - Update lrexlib to the latest HEAD
  • [2ff6c26] - Update miniz to the latest HEAD
  • [639b738] - Update luv to the latest HEAD
  • [306dc0e] - Update zlib to the latest HEAD
  • [595b42b] - Update stb to the latest HEAD
  • [0ebec8d] - Update OpenSSL to the latest HEAD
  • [49c292d] - Update PCRE2 to the latest HEAD
  • [5a7d03f] - Slightly modify the format for CLI shorthands
  • [5562818] - Fix various issues in the lua-openssl build scripts
  • [61f5ab3] - Reorder the parameters of miniz checksum APIs
  • [c9c3609] - Move printf to the console library
  • [ca21187] - Consolidate multiple copies of the CLI help text
  • [086e26b] - Implement aliases for registered CLI commands via the CommandLine API
  • [3f22023] - Add a function to clear the standard output to the console library
  • [6ee5518] - Fix a minor inconsistency in the CLI help text

Contributors (in alphabetical order)

  • No external contributors

v0.0.12

01 Oct 09:52
8a1a688
Compare
Choose a tag to compare

New Features

  • Introduced a new crypto library to support password hashing and verification (using OpenSSL's Argon2 implementation)

Pull Requests

  • [8a1a688] - Update the changelog for v0.0.12
  • [f3d1fea] - Fix some potential stability issues in the iconv FFI bindings
  • [6dead2c] - Simplify the CLI version display logic for OpenSSL
  • [dac4bb6] - Implement password hashing and verification using the Argon2 KDF
  • [21d65e1] - Add a string buffer debug utility via debug.sbuf
  • [6450e1f] - Introduce a new FFI-based crypto library
  • [656eb59] - Move a stray include around to maintain order
  • [b15c694] - Streamline the format for stack traces being displayed on runtime errors
  • [b7b1f98] - Add a license notice to the lua-rapidjson bindings
  • [c17b000] - Apply retroactive fixes to the changelog for v0.0.11

Contributors (in alphabetical order)

  • No external contributors

v0.0.11

24 Sep 22:53
93d8b0b
Compare
Choose a tag to compare

New Features

  • Integrated FFI bindings to iconv that allow converting between different character encodings

Improvements

  • A number of additional console colors are now supported by the transform library

Pull Requests

  • [93d8b0b] - Update the changelog for v0.0.11
  • [ebb68d7] - Embed the Ninja file generator as a "hidden" module
  • [a1b0117] - Fix the incomplete LuaJIT library path for LuaOpenSSL
  • [8b952bf] - Add support for additional console colors to the transform library
  • [75afe2c] - Update OpenSSL and LuaOpenSSL to enable using the KDF API
  • [d6b1077] - Re-enable tracking of new submodule commits
  • [e9fdea0] - Fix an outdated label in the iconv test suite
  • [df0ef47] - Improve error handling in the iconv FFI bindings
  • [804c757] - Set all changes in submodules to be ignored
  • [01853aa] - Fix decoding for JPG and PNGs without alpha channel not returning RGBA image data
  • [c77701d] - Streamline the README contents
  • [f5cb41e] - Enable codepage conversions via FFI bindings to iconv

Contributors (in alphabetical order)

  • No external contributors