Releases: evo-lua/evo-runtime
Releases · evo-lua/evo-runtime
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
v0.0.10
New Features
- Add a function to encode TGA images to the
C_ImageProcessing
API namespace - Add a function to swap pixel formats to the stbi FFI bindings
Pull Requests
- [
1ec411a
] - Update the changelog for v0.0.10 - [
6ef9491
] - Update OpenSSL to the latest HEAD - [
153f9dd
] - Correct the default branch name for wgpu-native in scan-submodules.lua - [
8e9ca87
] - Update LuaJIT to the latest HEAD - [
115b769
] - Add linkage of ntdll.lib on Windows to the Ninja build script - [
6b3d3a3
] - Add a function to swap pixel formats to the stbi FFI bindings - [
1c4cffc
] - Fix a typo in the stbi test suite - [
273e4a5
] - Add EncodeTGA to the image processing API - [
d291241
] - Update the phrasing in the changelog for v0.0.9
Contributors (in alphabetical order)
- No external contributors