|
For the latest stable version, please use Emilua API 0.11! |
ChangeLog
0.4
-
A new
byte_spantype akin to Go slices is used for IO ops. -
Actor channels now can transceive file descriptors.
-
Support for Linux namespaces. Now you can set up sandboxes and run isolated actors (or just the well-known containers).
-
Upgrade to C++20. The motivating feature for the upgrade was
std::atomic<std::weak_ptr<T>>. However, other C++20 features are being used as well. -
Removed
println(). -
Removed
sleep_for. Its functionality has been replaced by the moduletime. -
Moved
steady_timerto the new moduletime. -
Removed
ip.tcp.resolver. Its functionality has been replaced byip.get_address_info(). -
tls.ctxrenamed totls.context. -
Modules
ipandtlsgrew a lot. The API for sockets now supports IO ops onbyte_spaninstances, and plenty of new functions and classes (including UDP) were added. -
inbox.recv()renamed toinbox.receive() -
Module
condrenamed tocondition_variable. -
error_code.catrenamed toerror_code.category. -
spawn_ctx_threads()renamed tospawn_context_threads(). -
inherit_ctxrenamed toinherit_contextinspawn_vm(). -
New modules.
-
time: clocks and timers. -
pipe. -
unix: UNIX domain sockets. -
serial_port: serial ports. -
system: UNIX signals, CLI args, env vars, process credentials, and much more. -
file: file IO. Only available on systems with proactors (e.g. Windows with IOCP, and Linux with io_uring). BSD can still be supported later (with kqueue + POSIX AIO). -
filesystem: portable path-manipulation, and plenty of filesystem operations & algorithms. -
stream: AWK-inspired scanner and common stream algorithms. -
regex: Basic regex functions. The interface has been inspired by C++, Python and AWK. -
generic_error: portable error comparison for filesystem, sockets, and much more. -
asio_error: errors thrown by the asio layer. -
websocket.
-
-
Lua programs can define their own error categories now.
-
Several new OS-specific APIs (e.g. Linux capabilities, and Windows'
TransmitFile()). -
Add
http.request.upgrade_desired(). -
http.socketcan work on top of UNIX domain stream sockets now. -
Now Emilua is less liberal on accepted values for env var
EMILUA_COLORS. -
Finer-grained cancellation of IO ops.
-
Locales are set at application startup.
-
Bug fixes.
-
The build system now makes use of Meson’s wrap system.
-
Documentation can now be installed as manpages.
-
Support for io_uring.
0.3
-
HTTP request and response objects now use read-write locks and there is some limited sharing that you can do with them without stumbling upon EBUSY errors.
-
Improvements to the module system (that’s the main feature for this release). You should be able to use guix as the package manager for your emilua projects.
-
EMILUA_PATH environment variable.
-
Native plugins API (it can be disabled at build configure time).
-
Add logging module.
-
Add manpage.
-
--versionCLI arg. -
Build configure options to disable threading.
-
Use fmtlib from host system.
0.2
-
Fix build when compiler is GCC.
-
Refactor module system. The new module system is incompatible with the previous one. Please refer to the documentation.
-
Add HTTP query function:
http.request.continue_required(). -
Remove
failed_to_load_moduleerror code. Now you should see"iostream error"or other more informative error reasons upon a failed module load. -
Numeric values for error codes changed.