Highlights
- New
C
module for C FFI (foreign functions interface) - New
keyboard
module to read or send keys - New
sysutils
module for various Windows functionalities, includingProcess
launch and control - LuaRT now uses the latest Lua 5.4.7 VM
- Drag and drop operations are now implemented in desktop applications (text and file list format)
- Better Windows clipboard support (text and file list format)
- Record sounds with various encodings in
audio
module - Compiled executables with
rtc
can now embed and use DLL dependencies seamlessly - Faster Tasks scheduling
- Faster
canvas
module with lots of bugfixes
LuaRT interpreter
- Console
luart.exe
and desktopwluart.exe
interpreters now use latest Lua 5.4.7 VM
LuaRT Studio
- Updated: LuaRT Studio is now using the LuaRT 1.9.0 toolchain
- Fixed: Task function can now be debugged (Fixes #237)
rtc
- New:
sys.File()
constructor now checks for files embedded in the compiled executable if they do not exist - Updated: DLL binary modules dependencies are now resolved transparently in the embedded content
- Fixed:
sleep()
now waits for the provided delay to elapse in compiled executables (Fixes #226)
QuickRT
- New: QuickRT uses now an asynchronous loop, to use
Task
instances and any other asynchronous functions - Fixed: Objets are now correctly pretty printed (Fixes #221)
RTBuilder
LuaRT C API
- New:
lua_wait()
to wait for a Task to finish from the C side - New:
lua_throwevent()
to launch a new ui event when implementing third party widgets - New:
lua_update()
to set an update C function during Task scheduling - Updated:
lua_pushTask()
now push a Task with the provided continuation C function and starts it, with a context and optional cleanuplua_CFunction
C
module
- New
C
module for foreign functions interface (FFI) - Still a work in progress (bugs may occur)
- Call C functions directly from Lua using
Library
object and functions prototypes definition - Define C data structures with
Struct
andUnion
objects - Automatic type conversion between Lua and C types with
Value
object - Manipulate C pointers with the
Pointer
object - Use C arrays as if you were using Lua tables with the
Array
object
sysutils
module
- New
sysutils
module that provides various system utility functions and properties - New
Process
object to start and manage a new process
keyboard
module
- New
keyboard
module with keyboard management functions and properties - Get keyboard status, wait for keypress asynchronously, bind Lua functions to key presses
- Send virtual key presses to any Windows application
debug
module
- New
debug.settaskhook()
function to set debug hook for all new Tasks
string
module
- New:
string.normalize()
function to replace accentued characters by non accentued ones in a string
sys
module
- New:
Buffer.encoding
property to specify an encoding value, to be used when converting theBuffer
to astring
- New:
sys.locale
property to get/set current locale forDatetime
format and error messages fromsys.error
andnet.error
- New:
COM
objects now support calling items-like properties to access sub items (asRange
,Cells
and so on...) - New:
File:copytask()
andDirectory:copytask()
methods to copy files and directories asynchronously (without blocking) - Updated:
sys.clipboard
property now returns the kind of clipboard data and its content - Updated:
File:copy()
andDirectory:copy()
now returns aboolean
value indicating if the operation succeeded or not - Updated:
Pipe:read()
now returns bothstderr
andstdout
output (Pipe:readerror()
have been removed) - Fixed:
Task.after
is now called even if the Task returns no result (Fixes #233) - Fixed:
Task
switching is now faster (Fixes #210) - Fixed:
Task
objects don't cause memory leaks anymore (Fixes #209) - Fixed: errors thrown inside a running
Task
don't cause aPANIC: unprotected error in call to Lua API
error anymore (Fixes #228) - Fixed:
COM
objects methods now uses more than one argument (Fixes #205)
console
module
- Fixed: Using an unknown color with
console.bgcolor
,console.color
,console.clear()
andconsole.writecolor()
won't crash anymore (Fixes #211) - Fixed:
Console.x
andConsole.y
properties now return a correct cursor position (Fixes #212)
compression
module
- New:
Zip.async.extractall()
andZip.async.extract()
to extract ZIP archives asynchronously
crypto
module
- Fixed :
Cipher.constructor()
won't crash anymore if themode
parameter is invalid
net
module
- New: property
Http.content
to get the current response content
ini
module
- Updated : INI property names and values are now trimmed
json
module
- Fixed : JSON numbers are now correctly parsed (Fixes #217)
- Fixed :
json.decode()
don't unescape escaped characters from json strings (Fixes #227)
webview
module
- New :
Webview.useragent
property to get/set the user agent string
sqlite
module
- Fixed : module functions
query()
andexec()
now set column values correctly (Fixes #234)
canvas
module
- New:
canvas:onMouseDown()
,canvas:onMouseUp()
events - Updated : Changing
canvas.bgcolor()
don't clears the canvas anymore - Updated :
canvas.begin()
andcanvas.flip()
are now required before and after drawing content in event and Tasks. - Updated:
canvas.onPaint()
event is now called constantly, providing faster drawing operations - Updated:
Image.draw()
andImage.drawrect()
now accept an image interpolation mode argument - Removed:
canvas.sync
property have been removed - Removed :
canvas.map()
function has been removed - Removed :
canvas.onLeave()
event has been removed - Fixed:
Canvas
dpi support don't use wrong pixel coordinates anymore but DIP instead (Fixes #224) - Fixed:
Canvas
rendering is now way faster (Fixes #207) - Fixed:
Canvas
widget don't blinks anymore when parent Windows goes fullscreen (Fixes #206) - Fixed:
LinearGradient
,RadialGradient
andImage
objects are now drawn correctly when the Canvas is resized - Fixed:
Canvas:fillrect()
andCanvas:fillroundrect()
won't crash anymore if thebrush
parameter is omitted (Fixes #236)
audio
module
- New:
audio.playdevice
andaudio.recdevice
properties to set/get the current playback and record devices - New:
audio.devices
property to enumerate audio devices - New:
audio.record.start()
andaudio.record.stop()
methods to record and encode audio - Updated:
Sound.play()
now returns aTask
that will complete once the sound has finished playing. - Removed:
audio.device
property have been removed.
ui
module
- New:
Window.notify()
to send Windows toast notifications - New:
ui.drag()
function to start a drag and drop operation - New:
allowdrop
property to set the widget as a drop target - New:
onDrop()
event, thrown when the user dropped the mouse on the widget - New:
Edit.hscroll()
andEdit.vscroll()
horizontal and vertical scrolling functions - New:
Edit.mousepos
property to get the nearest character position from the current mouse screen coordinates - New:
ui.selectdir()
uses the previous shell directory selection dialog - Removed:
Edit.scroll()
method have been removed (replaced by thevscroll()
andhscroll()
methods) - Updated: GUI events are now thrown asynchronously as Tasks
- Updated:
ui
events responsiveness have been increased (as seen in theexamples\ui\balls.wlua
) - Updated:
ui.dirdialog()
now uses modern folder selection dialog - Updated:
onHover()
events now provides a third argument for mouse button status - Updated:
cursor
property now can be set/can returnnil
in case no cursor is displayed - Fixed: GUI won't freeze anymore when calling
sleep()
inside an event handler (Fixes #232) - Fixed :
Panel:onLeave()
event if now thrown as expected (Fixes #231) - Fixed :
Edit.cursor
now changes the cursor as expected (Fixes #228) - Fixed :
Groupbox.parent
property now returnsTab
intead ofTabItem
(Fixes #225) - Fixed:
ui.opendialog()
andui.savedialog()
don't uses old Windows 3.1 theme anymore (Fixes #223) - Fixed:
Calendar
widget now supportsdark
mode (Fixes #218) - Fixed:
Combobox
won't draw white background indark
mode anymore (Fixes #202) - Fixed: Using
Entry
widget indark
mode won't crash application anymore (Fixes #201) - Fixed:
Picture.resize()
now works as expected (Fixed #213) - Fixed:
Label.textalign
property now is respected when Label text is changed (Fixes #208)
🛡️ VirusTotal detection
LuaRT-v1.9.0-x64.zip
LuaRT-v1.9.0-x86.zip
🔒 Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF
If you ❤️ LuaRT, don't forget to put a ⭐ on the GitHub repository !