Releases: evo-lua/evo-runtime
Releases · evo-lua/evo-runtime
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 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 andextract
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
New Features
- LuaJIT's built-in CPU profiler can be enabled with the new
profile
command, or loaded asprofiler
- 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
andtable.invert
- The
etrace
library received support for event listeners viapublish
,subscribe
, andnotify
- Optimized
bit
operations for C++ numerics are now available:ceil
,floor
,ispow2
, andwidth
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 justjson.encode
) - Apps can now use
json.encode
withcdata
and other values that provide a__tostring
metamethod
Breaking Changes
- Replaced the global
EVO_VERSION
variable withruntime.version()
, which supports multiple returns - The WebGPU FFI bindings are now preloaded as
wgpu
instead ofwebgpu
, providing the same API - Moved
stbi.replace_pixel_color_rgba
from Lua to C++ (apps must now access it viastbi.bindings
) - The
assertions.export
method has been replaced with a newpackage.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
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
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 themain.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 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
etrace
library 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
-e
foreval
), 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
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
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