Releases: samyeyo/LuaRT
LuaRT 2.1.0
LuaRT v2.1.0 (Sept 11 2025)
Highlights
- New hardware modules :
cpu,power, andwifi - New data serialization format modules :
xmlandyaml - Improved asynchronous Task operations and scheduling
uimodule is no more integrated to desktop interpreters- Lua VM updated to 5.4.8
- LuaRT binaries and setup files are now digitally signed
- Various additions and bugfixes
Lua VM
- Updated to Lua VM to 5.4.8
rtc
- New:
-Loption to specify a new search path for Lua modules - Updated: Link only the correct module dll (either the static or dynamic version)
- Fixed: static linking is more reliable now
LuaRT C API
- New:
lua_taskcount()function to get current total Tasks count - Updated:
lua_pushtask()now returns the pointer to the newly created Task struct - Updated:
lua_schedule()now returns a boolean value
sys module
- New:
Task.priority,Task.timeoutandTask.expiredproperties - New:
Task.pause()andTask.resume()methods - New
sys.idleThresholdproperty to adjust the task scheduler cpu usage - Updated:
waitall()now accepts to wait on the provided Tasks and gathers all results - Updated: Improved Task scheduler with faster Task switching and lower CPU charge
- Fixed: Errors in Task are now correctly propagated when waiting
- Fixed: Getting an integer value from a
sys.COMproperty or method won't crash anymore
module
- New
cpumodule to get CPU information and manage process priority. - Various CPU properties
cpu.usage,cpu.cores,cpu.threads,cpu.name,cpu.vendor,cpu.clock,cpu.currentclock,cpu.features,cpu.priorityandcpu.cache - New
cpu:prefetch()method to prefetch a Lua string into the cache.
power module
- New
powermodule to manage power state and battery information. - Power information properties with
power.battery,power.plugged - Various functions to manage power mode :
power:hibernate(),power:sleep(),power:hold(),power:unhold()andpower:displayoff() - Power events
power.onPlugged(),power.onSuspend(),power.onResume()andpower.onBatteryLow()
wifi module
wifi:scan()method to scan for available Wi-Fi networks.wifi:connect()andwifi:disconnect()methods to manage Wi-Fi connections.- Various Wi-Fi network properties :
wifi.name,wifi.connected,wifi.quality,wifi.macandwifi.channel wifi.onConnected()andwifi.onDisconnected()events.
xml module
- New
xmlmodule to parse and write XML strings and files. - New
xml.Nodeobject to manipulate XML nodes. xml.encode()method to encode a string toxml.Node.xml.load()andxml.save()methods for loading/savingxml.Nodefrom/to file.
yaml module
- New
yamlmodule to convert YAML form/to Lua tables yaml.decode()andyaml.encode()methods for YAML strings.yaml.load()andyaml.save()methods for YAML files.- Support for placeholder substitution with
{{variable}}syntax. yaml.nullreadonly property to represent a YAMLnullvalue.
net module
- New:
net.urlencode()method to encode astringas a valid URL - Updated:
Socket.recv()now returns aBufferobject instead of astring
json module
- Fixed:
json.load()now closes the file correctly
serial module
- Fixed:
Port.rtsproperty now accepts `"on"`` value - Fixed:
Port.bytesizenow returns the correct value - Fixed:
Port.write(),Port.read()andPort.readline()won't crash anymore
webview module
- Updated: Webview module updated to support new standalone
uimodule
canvas module
- New:
Canvas.capture()method to save a snapshot of the Canvas - Updated: Canvas module updated to support new standalone
uimodule - Fixed:
Canvasmouse events are now fired correctly - Fixed:
Canvas:onPaint()event will keep throwing even if the parent window shows/hides
ui module
- New:
ui.taskandui.mainWindowproperties - Updated:
uimodule is now standalone - Updated:
uimodule now throws a Task to update the event loop constantly - Updated:
ui.run()is deprecated and will be removed (replaced byui.mainWindowandui.task) - Fixed: Better ui responsiveness
- Fixed:
Picture.save()method now uses the correct format from file extension - Fixed: Sizes of widgets are now fixed when the text is empty
- Fixed: Checking a Checkbox widget won't draw a selection rect anymore
- Fixed:
ui.info(),ui.warn(),ui.confirm()andui.msg()now put the owner Window to modal state
π‘οΈ VirusTotal detection
LuaRT-v2.1.0-x64.zip
LuaRT-v2.1.0-x86.zip
π Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 2.0.1
LuaRT v2.0.1 (June 08 2025)
Highlights
- Bugfix release for LuaRT 2.0.0
- New
onThemeChangemethod forWindowandWebviewwidgets
RTBuilder
- Fixed some ui glitches, but the problem may still occur at times (still investigating)
- Fixed various themes related bugs
- Fixed Window loading bug
- Fixed cursor property bug
- Fixed widget name bug with non authorized characters
net module
- Http requests with 204 status code won't return an error anymore
serial module
- Fixed: Writing to serial port won't crash anymore
ui module
- New:
Window:onThemeChange()event when the Windows theme have been changed - Fixed: Events for Window maximize/restore/minimize are now fired as expected
- Fixed: "raw" styled Window not returns correct width and height values
- Fixed: Windows graphical bugs when switching themes have been fixed
- Updated
Notepad.wluaexample with the new onThemeChange() event - Fixed:
Window.childsproperty won't crash anymore - Fixed: notepad.wlua example to take in count Windows theme changes
webview module
- New:
Webview:onThemeChange()event when the Windows theme have been changed - Updated YouTube.wlua example to take in count Windows theme changes
π‘οΈ VirusTotal detection
LuaRT-v2.0.0-x64.zip
LuaRT-v2.0.0-x86.zip
π Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 2.0.0
LuaRT v2.0.0 (May 10 2025)
Highlights
- Static compilation : no more
lua54.dlldependency even with Lua binary modules - New
serialmodule for asynchronous serial communications - Various community reported suggestions and bug fixes
LuaRT C API
- New
lua54-static.libto build static Lua 5.4 binary modules withoutlua54.dlldependency - New
RTSTATICdefine for static compilation - Updated:
lua_toBuffer()renamed tolua_pushBuffer()
LuaRT interpreters
luart-staticandwluart-staticinterpreters can now load static binary modules suffixed by-static.dllluart-staticandwluart-staticinterpreters don't includenetandcryptomodules anymore
RTBuilder
- Fixed: Putting a Canvas or Webview widget inside a Panel won't crash RTBuilder anymore
rtc
- New:
sys.File()andsys.Directorynow uses embedded files and directories first for compiled scripts. - Updated: static compiled executables can now embed and load Lua binary modules (linked with
lua54-static.liband suffixed by-static.dll) - Updated:
rtcnow displays more information during compilation - Updated:
wrtcnow supports static linking of binary modules - Updated: static compiled executables can now load Lua 5.4 binary modules suffixed by
-static.dll - Updated: arg[0] now contains the current executable fullpath for compiled scripts
- Fixed:
sys.File()won't crash anymore for embedded files
serial module
- New module for serial communications
- New
Portobject supporting asynchronous COM ports operations with Tasks, and fine control for baud rate, parity, stop bits, etc.
embed module
- New:
embed.Directoryobject to access directories from embedded content
sys module
- New:
COMobject can now be indexed by any of its constant values - Updated:
sys\word.luaexample updated with the newCOMobject constants indexing - Fixed:
Pipe:read()won't wait indefinitely if the running process exits - Fixed:
Datetime:interval()now returns correctly rounded values - Fixed: Setting
Datetimeproperties now updates/normalizes correctly its internal date/time representation
compression module
- Fixed:
Zip.async.extract()works now correctly - Fixed:
Zipentries now can use either\or/separator characters for paths - Fixed:
Zip:extract()won't fail anymore when extracting directories
console module
- New:
console:show()andconsole:hide()methods - New:
console.visibleproperty - Updated:
console.read()argument is now optional, defaulting to 1
C module
- Updated:
Structcan now use multidimensional array members in signature - Fixed:
C.Library()now can load embedded DLL files as expected - Fixed:
Structvalues can now be initialized with anotherStructvalue - Fixed: Any Lua C Object can now be used as C pointer
net module
- New:
Http:patch()method for PATCH HTTP requests - Updated:
Http:put(),Http:delete()andHttp:patch()now takes a second parameter to set the body content of the request - Updated:
sys.Buffercan now be used to set HTTP requests body content
sysutils module
- Fixed:
sysutils.userwon't include a terminal\0character anymore - Updated:
sysutils.shellexec()now waits for the child process to terminate before returning
ui module
- Updated:
ui.themevalue now changes when the user changes the Windows theme setting - Updated:
Button.hastextproperty now remembers last Button size - Updated: Mouse events will now have their x,y mouse position corrected with current DPI
- Fixed: Windows can now be closed using
ALT+F4 - Fixed:
Tabwidget now draws correctly when changing Tab font properties - Fixed:
Groupboxnow draws correctly and adapts to the parent background color - Fixed:
Buttonsize is now correct when setting a button icon - Fixed:
Widget.fontproperty changes now the Widget font as expected - Fixed: Changing
Editwidth will now adapt the text input area
canvas module
- New
Image:drawsub()method to draw a part of an image with new examplesubimage.wlua - New
Canvas:onMouseWheel()event for detecting mouse wheel rotation - Fixed:
Canvas:measure()won't leak memory anymore
webview module
- Updated: URL starting by
"file:///"now search the resource on the current directory, and if not found, search in the embedded content - Updated:
Webview.cdpproperty is now read/write, allowing to set a Chrome DevTools Protocol callback function for events - New:
Webview\Chrome DevTools Protocol\event.wluaexample - Fixed:
Webview:show(),Webview:hide()andWebview.visiblenow update Webview state correctly
π‘οΈ VirusTotal detection
LuaRT-v2.0.0-x64.zip
LuaRT-v2.0.0-x86.zip
π Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 1.9.5
LuaRT v1.9.5 (March 16 2025)
Highlights
- Bugfix release for LuaRT 1.9.0 with some user requested updates
- Completely rewritten Webview widget, with ability to set options, to use Chrome DevTools Protocol and printing support
- Updated dependencies for less bugs (miniaudio, miniz and Kuba zip library)
rtc
- Updated:
rtcnow supports submodules linking and requiring from the generated executable
QuickRT
- Fixed: Indentation for structured statements works now as expected
C module
- New:
C.Library()now can load embedded DLL files - Fixed:
size_tshould now be correctly handled - Fixed:
Structcan now be passed as C function argument by value - Fixed: C functions can now return
lightuserdatato be used asStructcontructor parameter
sys module
- Updated:
Pipe.read()now take an optionaldelayparameter to wait for before starting reading - Updated: String conversion from
Buffernow provides the full buffer (with its entire size) as a string - Fixed:
Bufferwon't over-read anymore with "base64" encoding (Fixes #242) - Fixed:
Pipe:read()won't enter an infinite loop anymore if the process is terminated, but will returnnilinstead (Fixes #241)
compression module
- Updated: miniz updated to 3.0.2 with lots of bug fixes
- Updated: kuba zip library to 0.3.3 with lots of bug fixes
- Zip compression/decompression is now less prone to bugs
sqlite module
- Fixed: removed debugging console output in
Database.query()andDatabase.exec()
json module
- Fixed:
json.encode()function now escapes double quoted strings correctly
audio module
- Updated: audio module now uses latest miniaudio v0.11.22
- Updated:
record.start()won't throw an error anymore, and will now return abooleanvalue indicating if the operation succeeded or not
ui module
- Fixed:
uimodule won't consume too much CPU time now (Fixes #243) - New:
Window.startmoving()method to initiate a drag and move operation (even for"raw"windows)
webview module
- New
Webview.cdpproperty for Chrome DevTools Protocol support - New
Webview.print()andWebview.printPDF()methods to print Webview content - Updated:
Webview.eval()now returns two values : abooleanindicating if the operation succeeded and the result as a JSONstring - Updated: Full rewrite of Webview widget
- Updated: Webview constructor now takes a table as second argument instead of a string, to set
urlandoptions
π‘οΈ VirusTotal detection
LuaRT-v1.9.5-x64.zip
LuaRT-v1.9.5-x86.zip
π Minisign public key RWRK6uteH2/OgTJtsry5+VODe6I8693ywMtm+MkYNvT7kge2W/CyWQdF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 1.9.0
Highlights
- New
Cmodule for C FFI (foreign functions interface) - New
keyboardmodule to read or send keys - New
sysutilsmodule for various Windows functionalities, includingProcesslaunch 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
audiomodule - Compiled executables with
rtccan now embed and use DLL dependencies seamlessly - Faster Tasks scheduling
- Faster
canvasmodule with lots of bugfixes
LuaRT interpreter
- Console
luart.exeand desktopwluart.exeinterpreters 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
Taskinstances 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
Cmodule for foreign functions interface (FFI) - Still a work in progress (bugs may occur)
- Call C functions directly from Lua using
Libraryobject and functions prototypes definition - Define C data structures with
StructandUnionobjects - Automatic type conversion between Lua and C types with
Valueobject - Manipulate C pointers with the
Pointerobject - Use C arrays as if you were using Lua tables with the
Arrayobject
sysutils module
- New
sysutilsmodule that provides various system utility functions and properties - New
Processobject to start and manage a new process
keyboard module
- New
keyboardmodule 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.encodingproperty to specify an encoding value, to be used when converting theBufferto astring - New:
sys.localeproperty to get/set current locale forDatetimeformat and error messages fromsys.errorandnet.error - New:
COMobjects now support calling items-like properties to access sub items (asRange,Cellsand so on...) - New:
File:copytask()andDirectory:copytask()methods to copy files and directories asynchronously (without blocking) - Updated:
sys.clipboardproperty now returns the kind of clipboard data and its content - Updated:
File:copy()andDirectory:copy()now returns abooleanvalue indicating if the operation succeeded or not - Updated:
Pipe:read()now returns bothstderrandstdoutoutput (Pipe:readerror()have been removed) - Fixed:
Task.afteris now called even if the Task returns no result (Fixes #233) - Fixed:
Taskswitching is now faster (Fixes #210) - Fixed:
Taskobjects don't cause memory leaks anymore (Fixes #209) - Fixed: errors thrown inside a running
Taskdon't cause aPANIC: unprotected error in call to Lua APIerror anymore (Fixes #228) - Fixed:
COMobjects 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.xandConsole.yproperties 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 themodeparameter is invalid
net module
- New: property
Http.contentto 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.useragentproperty 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.syncproperty have been removed - Removed :
canvas.map()function has been removed - Removed :
canvas.onLeave()event has been removed - Fixed:
Canvasdpi support don't use wrong pixel coordinates anymore but DIP instead (Fixes #224) - Fixed:
Canvasrendering is now way faster (Fixes #207) - Fixed:
Canvaswidget don't blinks anymore when parent Windows goes fullscreen (Fixes #206) - Fixed:
LinearGradient,RadialGradientandImageobjects are now drawn correctly when the Canvas is resized - Fixed:
Canvas:fillrect()andCanvas:fillroundrect()won't crash anymore if thebrushparameter is omitted (Fixes #236)
audio module
- New:
audio.playdeviceandaudio.recdeviceproperties to set/get the current playback and record devices - New:
audio.devicesproperty to enumerate audio devices - New:
audio.record.start()andaudio.record.stop()methods to record and encode audio - Updated:
Sound.play()now returns aTaskthat will complete once the sound has finished playing. - Removed:
audio.deviceproperty 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:
allowdropproperty 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.mouseposproperty 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:
uievents 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:
cursorproperty now can be set/can returnnilin 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.cursornow changes the cursor as expected (Fixes #228) - Fixed :
Groupbox.parentproperty now returnsTabintead ofTabItem(Fixes #225) - Fixed:
ui.opendialog()andui.savedialog()don't uses old Windows 3.1 theme anymore (Fixes #223) - Fixed:
Calendarwidget now supportsdarkmode (Fixes #218) - Fixed:
Comboboxwon't draw white background indarkmode anymore (Fixes #202) - Fixed: Using
Entrywidget indarkmode won't crash application anymore (Fixes #201) - Fixed:
Picture.resize()now works as expected (Fixed #213) - Fixed:
Label.textalignproperty 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 !
LuaRT 1.8.0
LuaRT v1.8.0 (May 15 2024)
Highlights
- β Warning : Windows versions older than 8.1 are no more supported
- This release focuses on the
uimodule, bringing modern Desktop Windows functionnalities :- Windows dark and light themes (requires Windows 10+)
- Theme switching depends on Windows system setting, and can be changed programmatically during runtime
- Seamless HighDPI support
- Widgets are now double buffered better user experience
- Parent widgets/windows can now list all their childs widgets
- Monitors enumeration
LuaRT interpreter
- Updated: The
Runtime errorwindow when an error occurs withwluart.exenow uses the current Windows theme
LuaRT Studio
- New: Theme selection is now available in the new
Edit\Preferences\Thememenu - New:
DarkDefaultandLightDefaultthemes - Fixed: Themes now applies to the left pane too (Projects/Symbols)
- Fixed: Better dark mode autodetection for Windows 10/11
rtc
- Updated:
wrtchas been updated to support HighDPI - Updated: When requiring for an embedded Lua or binary modules,
rtcnow usespackage.pathandpackage.cpathto conform to Lua search path - Fixed: Changing executable icon with
-ioption updates immediately in Windows explorer
RTBuilder
- New: Option to switch to dark/light theme
LuaRT C API
- New:
lua_uigetinfo()to get current dpi and theme - New:
luaL_checkDirname()to get the fullpath of a Directory object on the stack - New:
lua_regparentwidget()andlua_regparentwidgetmt() to register parent widgets
LuaRT documentation
- Fixed:
ui.rtldocumentation is now available - Updated: now the documentation contains all new LuaRT 1.8.0 changes
sys module
- Fixed:
sys.cmd()now returnsfalseif the command fails (fixes #187)
string module
- New:
string.split()function to split a string in substrings using a separator
canvas module
- New:
Canvaswidget updated to support double buffering and HighDPI
webview module
- New: New event
Webview.onFullScreenChange()when the current HTML page ask for fullscreen switch - New: Webview can now access
"file:///"resources from embedded content if available
ui module
- New:
Windowand other widgets now supports HighDPI (runtime change of DPI not yet supported) - New: Widgets now uses double buffering
- New
ui.dpiproperty that returns current dpi scale - New
ui.themeandui.systhemeproperties for dark/light Windows themes management - New
ui.monitorsproperty to retrieve the list of current connected displays - New
ui.windowsproperty to get a list of all createdWindows - New
Window.transparencyproperty to get/set Window's degree of transparency - New
Window.monitorproperty to get the monitor on which theWindowis located - New
Window.parentto retrieve the parentWindow - New
Window.childs,Groupbox.childs,TabItem.childsandPanel.childsproperties to get a list of childs widgets - New
Edit.border,List.borderandTree.borderproperties to show/hide the widget's border - New
Edit.scroll()method to scroll theEditcontent vertically - New:
Tree.readonlyproperty to prevent anyTreeItemediting by the user - Updated: Resizing
Picturewidget now uses cubic interpolation for better image quality - Updated : Widgets position and size properties now take count of the current DPI scale
- Fixed:
Combobox.tooltipproperty now shows its tooltip as expected (Fixes #179) - Fixed:
Picture:load()now uses correct parameter for the height argument (Fixes #185) - Fixed:
Edit.selection.visiblenow shows/hides selection as expected
π VirusTotal detection for LuaRT-v1.8.0-x64.zip
π VirusTotal detection for LuaRT-v1.8.0-x86.zip
π Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 1.7.1 (Bugfix)
LuaRT v1.7.1 Bugfix release (Jan 26 2024)
LuaRT interpreter
- Updated: Now LuaRT uses an
argtable implementation closer to PUC Lua : - arg[2] => command line argument at position 2
- arg[1] => command line argument at position 1
- arg[0] => The executing script path (or
nilin case of a compiled executable) - arg[-1] => The current executable ("luart.exe", "wluart.exe", or the compiled executable file)
- Fixed: Errors from command line switch
-eare now thrown as expected (Fixes #176)
LuaRT Updater
- Fixed: LuaRT Updater now downloads updates correctly (Fixes #168)
LuaRT Studio
- Fixed: Running scripts with arguments now set the
argtable correctly
QuickRT
- Fixed: Can't change values of a global variable defined in another environment (using
loadfile()for example) - Fixed: QuickRT exits when printing custom
userdata
rtc
- Fixed:
wrtcerror message "no input file" fixed (Fixes #172) - Updated:
rtcnow use LuaRT 1.7.1argtable
RTBuilder
- Fixed: RTBuilder won't crash anymore when changing current Window name
- Fixed: Shortcuts
CTRL+OandCTRL+Swork now as expected - Fixed: Changing the
Tab.selectedproperty in inspector shows the selectedTabItem - Fixed: Assigning icon to
TreeItemnow works as expected - Updated: Setting an icon in the TreeItems editor will switch the
Tree.styleproperty to"icons"in inspector window - Updated:
RTBuildernow uses LuaRT 1.7.1argtable - Updated: RTBuilder windows are not
topmostanymore
LuaRT documentation
- Updated: now the documentation contains all new LuaRT 1.7.1 changes
sys module
- Fixed: Calling
COMobject methods withnilargument won't crash the program anymore (Fixes #177) - Fixed:
COMmethod or property returning a COMNothingvalue won't crash the program anymore (Fixes #173) - Fixed:
Taskthat returns abooleanornumbervalue will crash the program when calling theTask.afterfunction (Fixes #175)
ui module
- Fixed:
TreeItem:loadicon()now load icon correctly (Fixes #170) - Fixed:
Tab:onSelect()event is now fired when the propertyTab.selectedis set (Fixes #171) - Fixed:
Tabkey can now be used to navigate between widgets inside aPanelorTabItem(Fixes #174)
π VirusTotal detection for LuaRT-v1.7.1-x64.zip
π VirusTotal detection for LuaRT-v1.7.1-x86.zip
π Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !
LuaRT 1.7.0
LuaRT v1.7.0 (Jan 05 2024)
Highlights
- This release introduces RTBuilder, a new GUI RAD tool to design LuaRT desktop interfaces using
uimodule - Lots of bugs have been fixed, especially for the
uimodule, thertccompiler and the LuaRT Studio IDE
LuaRT toolchain
- Updated: MSVC builds now use better optimizations for faster execution
- Fixed:
rtcheckwon't propose to update for an inferior version now (Fixes #167)
rtc
- New:
rtcnow accepts mutiple files (the first one will be considered the main script) - Updated:
-loption now search for modules in the current directory too - Fixed: Errors thrown by any compiled executables now mention source file and error line (Fixes #5)
LuaRT Studio
- Updated: LuaRT Studio is now using the LuaRT 1.7.0 toolchain
- Fixed: Debugger will now pause once a breakpoint is hit inside an
uievent function, when using aTaskto update the GUI - Fixed: Output panel bug with Unicode input/output fixed
- Fixed: require of modules using
init.luafrom compiled executable is now working as expected - Fixed: Setting project arguments won't add a blank space to the first argument anymore
Examples
- New:
balls_demo.wluaexample forcanvasmodule
sys module
- Fixed:
Task:cancel()won't try to close an already closed Task - Fixed:
sys.cmd()now returnstruein LuaRT Studio as expected (Fixes #155) - Fixed:
File:write()method now flush data to disk when the file is a standard stream (Fixes #165)
ui module
- New:
Windowconstructor now takes a first optional argument to provide a parent Window - New:
Window:restore()method - New:
Window.topmostproperty - New:
Window.onMaximize(),Window.onMinimize()andWindow.onRestore()events - New:
Tree.itemsproperty can now be indexed by integer value, returning theTreeItemin numerical order from the firstTreeItemto the last one - New:
Tree.itemsproperty is now iterable with theeach()iterator - New:
TreeItem.indexproperty to get the numerical order of theTreeItemin theTree - Updated: Setting
Entry.textproperty now moves the caret at the start Updated: Setting theCalendar.dateproperty from astringis now possible - Fixed:
Treeitem: Loadicon()won't fail to load a new icon after having removed the previous one (Fixes #160) - Fixed: Providing a filename without extension in
ui.savedialog()now returns correct filename when using multiple filters (Fixes #166) - Fixed:
Windowkeyboard shortcuts now execute binded Lua functions as expected (Fixes #162) - Fixed: After
Progressbarconstruction,Progressbar.themedreturnstruenow as expected (Fixes #154) - Fixed:
Canvas.fontstylenow returns a string value as expected (Fixes #164) - Fixed: Third party widgets now use initial size/position when the
alignproperty is set tonil(Fixes #158) - Fixed:
Widget:center()method now work as expected inside aGroupbox(Fixes #163 and #153) - Fixed:
Window.heightreturns now the correct value and aWindow.menuproperty is set (Fixes #161) - Fixed: Setting
Edit.fontproperty now preserve the current foreground color (Fixes #159)
π VirusTotal detection for LuaRT-v1.7.0-x64.zip
π VirusTotal detection for LuaRT-v1.7.0-x86.zip
π Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF
LuaRT 1.6.0
LuaRT v1.6.0 (Nov 26 2023)
Highlights
- This release focuses on fixing many bugs in the
uimodule, to prepare for the launch of the LuaRT GUI builder - It also offers many suggestions proposed by LuaRT users
- New:
inimodule to convert from/to Windows INI configuration file from/to Lua table - New:
Panelwidget that can contain other child widgets - New: New tool
rtcheck.exeto check/install LuaRT updates
LuaRT toolchain
- Updated: Using
require()to load.wluafiles is now possible - New: New tool
rtcheck.exeto check/install LuaRT updates - Fixed:
rtccompiled executables with embedded modules can have now multiple running instances (Fixes #124) - Fixed:
QuickRTnow pretty prints correctlyObjectvalues (Fixes #9). - Fixed:
wluart.exedon't crash anymore in case of error (Fixes #121) - Fixed:
wluart.exeerrors are now shown, without the empty "Runtime error" message box (Fixes #123)
LuaRT Studio
- Updated: LuaRT Studio is now using the LuaRT 1.6.0 toolchain
- New: New
Check for LuaRT updatecommand inFilemenu - New: New toolbar icon for the "Analyze" command
- Updated:
Helpmenu now contains links related to LuaRT webiste - Fixed: Debugging a script that contains a call to the
Task:wait()method won't crash the program anymore (Fixes #20) - Fixed: Clicking on the "stop" button will now really stop the running program (Fixes #19)
QuickRT
- Updated: QuickRT now uses LuaRT 1.6.0 runtime (Lua 5.4.6 VM)
- Fixed: interacting with
uiwidgets and windows won't hang the GUI anymore - Fixed: Pretty printing of LuaRT
Objectis now fixed
LuaRT documentation
- Updated: now the documentation contains all new LuaRT 1.6.0 changes, and a lot of fixes
- Fixed:
Canvasdocumentation for transformations methods are now published as expected
Examples
- Updated:
net\download.luahides now the cursor during downloading - Updated:
ui\notepad.wluacan now open *.rtf files - Fixed:
net\server.wluanow shows text as expected - Fixed: Syntax highlighting fixed in
ui\zoom.wlua
sys module
- Updated: Faster
Taskswitching in internal scheduler providing more responsiveness - Updated:
sys.cmd()now has a third argument to specify whether the launched process is a standalone one or a child process - Fixed: Setting a number
COMproperty value don't cause an error anymore when using a string (Fixes #113) - Fixed:
COMobjects don't crash once garbage collection/program exit (Fixes #116) - Fixed:
Datetime:interval()now returns a to...from interval as expected (Fixes #114)
console module
- Fixed:
console.reset()now resets cursor height too
net module
- Fixed:
Httpobject can now send new requests without crashing (Fixes #149)
ui module
- New:
Panelwidget that can contain other child widgets - New:
Edit.rtfproperty to set Rich Text Format mode without loosing content - Updated:
Edit.richtextproperty now set/get the current Edit content in Rich Text Format - Updated: Setting
Edit.textproperty won't scroll the content to the bottom anymore - Updated: Autosized widgets now conforms more with Windows UI standards
- Updated:
Widget.alignnow remembers last widget position and size - Updated:
Widget.bgcolorproperty now returnsnilif bgcolor was not previously set, meaning the widget uses the parent background color - Updated:
List.selected,Tree.selectedandCombobox.selectedcan now be set tonilto unselect current selection - Fixed: Examples using
Edit.colorinstead ofEdit.fgcolorsince LuaRT 1.5.0 are now fixed - Fixed:
Label.bgcolorandLabel.fgcolorcannot be set whenLabelis inside aTabItem(Fixes #119) - Fixed:
ui.run()Taskwon't run indefinitely anymore in some cases - Fixed:
Groupboxchild widgets events now provides the correctself(Fixes #125) - Fixed:
Tab.cursorproperty don't set cursor forTabItems, only on the tabsheet part (Fixes #134) - Fixed:
Tabdon't align TabItems correctly when setting theTab.alignproperty (Fixes #128) - Fixed: Widget background color may not be drawn correctly (Fixes #127)
- Fixed: Clicking on a
Listblank space unselects the current selected item (Fixes #143) - Fixed: Deleting a
Treeitemmay crash the program (Fixes #137) - Fixed:
Entryis still focused when ENTER/RETURN key is pressed (Fixes #135) - Fixed:
Groupboxdoes not dispatch theonClick()event to its child widgets as expected (Fixes #147) - Fixed:
Window:maximize()does not work on first display (Fixes #142) - Fixed:
Picture:load()don't adjust image toPicturealignment (Fixes #132) - Fixed:
Label.textalignreturns"center"instead of"right"when text alignement was previously set to right (Fixes #139) - Fixed: Widgets property
tooltipreturns incorrect or empty string (Fixes #138) - Fixed: Centering a Widget with the
center()method in aWindowwith a status bar resulting in a vertical position too far up (Fixes #146) - Fixed:
Picture:load()don't adjust image toPicturealignment (Fixes #132) - Fixed:
Progressbar.fgcolorandProgressbar.bgcolorreturn wrong0x000000colors in non themed mode (Fixes #131) - Fixed:
ui.opendialog()andui.savedialog()should not change current directory (Fixes #133) - Fixed: Clicking on a
MenuItemwithout anonClickevent handler should not throw a runtime error (Fixes #145) - Fixed:
ListItem:loadicon()TabItem:loadicon()ComboItem:loadicon()andTreeItem:loadicon()don't remove icon when called with anilvalue (Fixes #129) - Fixed: Setting
Edit.textproperty don't work whenEdit.richeditis set totrue(Fixes #130) - Fixed:
Edit:load()andEdit:save()methods don't closes the file (Fixes #148)
webview module
- New:
Webview.acceleratorkeysproperty - Updated:
Webview:eval()now returns aTaskthat will be finished once the Javascript engine has returned the result - Updated:
Webview:onResult()event removed due to theeval()rework - Updated:
hostfromfolder()now allows local resource access when usingloadstring() - Fixed: Compiling
Webviewmodule won't throw library missing errors anymore
json module
- New:
json.load()andjson.save()to load/save lua table from/to a JSON file - Fixed :
json.encode()failed memory allocation fixed (Fixes #117) - Fixed :
json.encode()now encodes Lua"null"values to JSONnull(Fixes #118)
π VirusTotal detection for LuaRT-v1.6.0-x64.zip
π VirusTotal detection for LuaRT-v1.6.0-x86.zip
π Minisign public key RWQePKEZPWae5LOhoGMWSH8l3tbnk1lG9Lxufdu6wSk3oxyiPzYdvylF
LuaRT 1.5.2
LuaRT v1.5.2 Bugfix (Sept 16 2023)
LuaRT installer
- Fixed: now the LuaRT installer window will always show over other windows.
LuaRT toolchain
- Updated:
rtcnow prevents access to embedded content from generated executables. - Fixed: LuaRT can now be built with
mingw-w64compiler again (Fixes #105)
LuaRT documentation
- Updated: now the documentation contains all new LuaRT 1.5.0 (and later) changes
- Fixed: Checking for a Widget instance won't throw a "((null)) instance expected, found..." anymore
LuaRT C API
- New:
lua_gettask()function to get the current executing Task.
sys module
- Fixed: Getting COM enumeration property value don't crash anymore (Fixes #104)
Asynchronous programming
- Fixed: Calling
sleep()from a compiled script don't cause a fatal error anymore (Fixes #103)
ui module
- New:
Progressbar.themedproperty (as a side effect theisthemedconstructor parameter is no more used). - New:
Button.textalign, andEntry.textalignproperties. - New: example
filelist.wluathat implements an explorer-like List widget. - Updated:
ui.run()function now returns aTaskobject that will update the GUI asynchronously. - Updated:
bgcolorandfgcolorproperties now returns the default color instead ofnil. - Updated:
Edit.selection.colorrenamed toEdit.selection.fgcolorfor consistency. - Updated:
Edit.colorrenamed toEdit.fgcolorfor consistency. - Fixed:
ui.colordialog()andui.fontdialog()now return a RGB color value as expected (Fixes #111) - Fixed:
Tab.onMouseUp()andTab.onMouseDown()events are now fired when the mouse is over the entire Tab (Fixes #108) - Fixed: Setting
List.selectedproperty now ensures the selected item is visible (Fixes #107) - Fixed:
Label.bgcolornow renders the Label background correctly (Fixes #102) - Fixed:
Pictureconstructor now uses the width and height parameters as expected (Fixes #106) - Fixed:
Picturetransparency bug fixed when inside a Tab (Fixes #100) - Fixed:
Listnow redraws correctly when resized (Fixes #110) - Fixed:
Label.textalignproperty now behave as expected (Fixes #99)
π VirusTotal detection for LuaRT-v1.5.2-x64.zip
π VirusTotal detection for LuaRT-v1.5.2-x86.zip
If you β€οΈ LuaRT, don't forget to put a β on the GitHub repository !