Releases: evo-lua/evo-runtime
Releases · evo-lua/evo-runtime
v0.0.22
v0.0.21
Breaking Changes
- Due to upstream changes, the required version of WebKitGTK has been upgraded
- The iconv FFI bindings now act on and return structured data instead of primitives
New Features
- Added FFI bindings for libcurl's URL parsing APIs
- The low-level conversion interface is now part of the iconv FFI bindings
- Self-contained executables can now load dynamic libraries via the
vfsAPI
Improvements
- The built-in WebServer should no longer prevent apps from walking the event loop manually
Pull Requests
- [
efccc1f] - Update the changelog for v0.0.21 - [
1870ece] - Update openssl to the latest HEAD - [
373f8db] - Update LuaJIT to the latest HEAD - [
43c878a] - Update curl to the latest HEAD - [
612e1af] - Update openssl to the latest HEAD - [
356dda0] - Bump the expected LuaRocks version to v3.12.0 - [
bd90e43] - Update luv to the latest HEAD - [
82d3a65] - Update pcre2 to the latest HEAD - [
182b753] - Update LabSound to the latest HEAD - [
3aa21c4] - Update rapidjson to the latest HEAD - [
364e890] - Update lua-openssl to the latest HEAD - [
ca02b2f] - Update LuaJIT to the latest HEAD - [
34de8bc] - Update lrexlib to the latest HEAD - [
07f73d1] - Update uWebSockets to the latest HEAD - [
3b2dfc7] - Update glfw to the latest HEAD - [
a31e4d2] - Update glfw3webgpu to the latest HEAD - [
17623e2] - Update miniz to the latest HEAD - [
d232934] - Update RmlUi to the latest HEAD - [
e96318c] - Update lua-zlib to the latest HEAD - [
2785af7] - Update freetype to the latest HEAD - [
dbde2c9] - Update lua-openssl to the latest HEAD - [
5afbdc6] - Update curl to the latest HEAD - [
3ba334c] - Update openssl to the latest HEAD - [
935f23c] - Fix CI builds that were broken due to changes in the GHA environment - [
021fd20] - Update luv to the latest HEAD - [
d880970] - Update lua-openssl to the latest HEAD - [
721ebd2] - Update uWebSockets to the latest HEAD - [
424c688] - Update LuaJIT to the latest HEAD - [
502c20b] - Update RmlUi to the latest HEAD - [
dcf6814] - Update freetype to the latest HEAD - [
f885f70] - Update pcre2 to the latest HEAD - [
836ec5f] - Update curl to the latest HEAD - [
43db0b1] - Update openssl to the latest HEAD - [
f39e1b3] - Substitute buildin IDs for more readable names when reporting test failures - [
c27d9ae] - Update PCRE2 to the latest HEAD - [
50d7202] - Update curl to the latest HEAD - [
37db815] - Update openssl to the latest HEAD - [
a4b248c] - Replace CURLVERSION_NOW with a function - [
83fa85b] - Add FFI bindings for the libcurl URL parsing APIs - [
d790270] - Rework the interface for the iconv.convert FFI bindings - [
0b4c727] - Update curl to the latest HEAD - [
4ad11c3] - Update openssl to the latest HEAD - [
3f0542e] - Disable some unnecessary zlib build options - [
dd5296a] - Fix temporary file permission errors on Windows - [
ead7b8d] - Implement VFS functions to load shared libraries from within LUAZIP archives - [
ab8369f] - Enable fail-fast for the CodeQL workflow - [
a836d92] - Fix a typo in the vfs.decode test suite - [
117efe5] - Specify how multiple app args should be treated by the test command - [
08b2007] - Expose the low-level conversion interface as part of the iconv FFI bindings - [
42de395] - Update the OpenSSL and lua-openssl build flags - [
040105c] - Fix an assertion message in the OpenSSL tests - [
673aea3] - Correct the OPENSSL_ROOT_DIR used when building curl - [
e2199c4] - Set up new FFI bindings for libcurl - [
d85f6fa] - Update wgpu-native to the latest HEAD - [
e9b0e3a] - Reintroduce glfw3wgpu as a git submodule - [
ed5fb45] - Update RML to the latest HEAD - [
a25eed4] - Disable C++ trap caching for CodeQL runs - [
f0d0612] - Update webview to the latest HEAD - [
d9cb11e] - Exclude .ninja_lock from VCS tracking - [
8be77e3] - Remove the paths-ignore filter from all CI workflows - [
3e56b90] - Remove the paths-ignore option from all build workflows - [
c455a9a] - Update rapidjson to the latest HEAD - [
3c2ceba] - Update freetype to the latest HEAD - [
246ab76] - Update luv to the latest HEAD - [[
75e332e](https://github.com/evo-lua/evo-r...
v0.0.20
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, andtable.shuffle - A new and experimental event-based
AsyncFileReadermodule 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
requirescripts andextractfiles 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
New Features
- LuaJIT's built-in CPU profiler can be enabled with the new
profilecommand, or loaded asprofiler - A
sysloglibrary has been added to support formatted log messages that tie into the event system - The
evalcommand provides a REPL for interactive code evaluation if no arguments were passed - Added a
debugcommand that allows running apps in debug mode, where event logging is always enabled - Two extensions have been added to the
tablelibrary:table.reverseandtable.invert - The
etracelibrary received support for event listeners viapublish,subscribe, andnotify - Optimized
bitoperations for C++ numerics are now available:ceil,floor,ispow2, andwidth
Improvements
- Error details are now displayed in reverse order by
bddreports to reduce the need for scrolling - Encoding options should correctly be passed to
json.stringify(and not justjson.encode) - Apps can now use
json.encodewithcdataand other values that provide a__tostringmetamethod
Breaking Changes
- Replaced the global
EVO_VERSIONvariable withruntime.version(), which supports multiple returns - The WebGPU FFI bindings are now preloaded as
wgpuinstead ofwebgpu, providing the same API - Moved
stbi.replace_pixel_color_rgbafrom Lua to C++ (apps must now access it viastbi.bindings) - The
assertions.exportmethod has been replaced with a newpackage.openextension
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
New Features
- Spatialized 3D audio is now available as part of the
labsoundbindings (PannerNodeAPIs) - 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
webgpubindings - 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
New Features
- Added a new
utf8library for unicode string manipulation (powered by lua-utf8) - Added a new
ooplibrary that provides some basic object-orientation utilities - The new
transform.stripfunction can be used to undo text transformations - LPEG has returned to the runtime and is available via the
lpeglibrary
Improvements
- Revamped the interpreter's command-line interface with colors and better failure modes
- The CLI now includes a new
testcommand to automatically discover and run test files - Another CLi shorthand - typing
evo .will automatically attempt to start themain.luascript - There's now an alias for MT-generated uuids:
uuid.createhelps save some typing
Breaking Changes
- The global
extendbuiltin has been removed in favor ofoop.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
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
New Features
- Introduced a new
etracelibrary for realtime event tracing - Added
table.copy(deep copy) andtable.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
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
New Features
- The interpreter CLI now supports shorthands (such as
-eforeval), 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
minizchecksum 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