- Lua VM updated to 5.5
- New optional source preprocessor with language extensions (
async function,class,try/catch, string interpolation with${},import) - New
capturemodule for camera/video capture (requires Windows 10+) - New LuaRT interpreters options
-p,-l,-v - Various additions and bugfixes
- Updated to Lua VM 5.5
- Optional preprocessor that expands to standard Lua code
- Preserves Lua 5.5 compatibility by default
- New:
--! luart-extensionscomment at first line to activate the LuaRT preprocessor - New:
async function name(args) ... endsyntax for async task factories - New:
await exprsyntax for awaiting tasks - New:
import mod.pathsyntax for requiring modules - New:
class Name { ... }andclass Name(Parent) { ... }syntax for Object definition - New:
try ... catch err ... endsyntax for simple error handling - New: String interpolation with
"hello ${name}"syntax - New: LuaRT interpreter
-pCLI option to preprocess a file and print output to stdout
- New:
-l nameoption to require a library before running the script - New:
-voption to show version information - Fixed: requiring for binary modules on
x86won't crash anymore
- Updated: Faster loading time for compiled executables startup
- Updated: embedded content is now obfuscated (simple encryption)
- Fixed: Now Lua files included in the embedded content are really compiled to Lua bytecode
- Fixed: multiple compiled executables instances can now execute at the same time
- Fixed: multiple compiled executables with different LuaRT versions can now execute at the same time
- New:
lua_starttask()to start a Task from C - New:
luaL_loadfilep()for preprocessor-aware file loading
- New:
sys.TaskFactory(fn)for method-style async functions - New:
sys.tasksproperty to get a list of all active tasks - Fixed:
sys.clipboard.contenttext is no more trimed by one character - Updated:
COMobject now supports using properties with parameters (using a function call) - Updated:
Bufferconcatenation now returns a Luastring
- Fixed: Flushing
console.stdinworks now as expected
- New
capturemodule for camera and video capture - New
capture.devicesproperty to enumerate video and audio devices - New
Cameraobject to record video (with preview widget ifuimodule is already loaded) - New
Camera:snapshot(path)method to take a photo - New
Camera.record.start()andCamera.record.stop()methods for video recording
- New:
ui.taskis a Task object that manages ui updates in the background - New:
Window:showasync()method to show the Window with a helper Task that ends when the Window hides. - New:
Edit.textlimitandEdit.textlengthproperty - New: Drag and drop support with
Listbox:onDropItem()andTree:onDropItem()events - New:
List:insert(),Tab:insert(),Tree:insert(),Combobox:insert()methods (buggy with icons...) - New:
ListItem:move(),TreeItem:move(),TabItem:move(),ComboboxItem:move()methods (buggy with icons...) - Removed:
ui.run()function have been removed (use nowui.taskorWindow:showasync()) - Fixed: No more random
uimodule crashes onx86 - Fixed:
uiwon't crash when some custom Windows messages are received - Fixed:
Buttonclicks won't beep anymore - Fixed:
tooltipis now correctly dark/light themed - Fixed:
ui.opendialog()andui.savedialog()are now modals as expected - Fixed:
Edit:onChange()andEntry:onChange()won't go in an onChange() loop anymore
- Fixed:
Httprequests with large content are no more truncated
- Updated:
sysutils.drivesnow returns serial number of each drive in thehexserialfield
- Fixed:
Webviewnow uses correctly embedded content for requests
- Fixed:
c.sizeof()andc.Array()now accepts the'Z'character as a correct C type
- Fixed:
Port.stopbitsnow is correctly sets tooneby default
- Fixed:
db.query()now always release statement memory
- Fixed:
json:save()now correctly returnsfalsein case of error
- Fixed: XML attributes now works as expected
- Fixed:
save()andencode()functions now preserves tabulations and hierarchy
- 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
- Updated to Lua VM to 5.4.8
- 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
- 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
- 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
- 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.
- 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: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.
- 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.
- 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.
- New:
net.urlencode()method to encode astringas a valid URL - Updated:
Socket.recv()now returns aBufferobject instead of astring
- Fixed:
json.load()now closes the file correctly
- 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
- Updated: Webview module updated to support new standalone
uimodule
- 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
- 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
- Bugfix release for LuaRT 2.0.1
- New
onThemeChangemethod forWindowandWebviewwidgets
- 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
- Http requests with 204 status code won't return an error anymore
- Fixed: Writing to serial port won't crash anymore
- 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: `Windous graphical bugs when switching themes have been fixed
- Updated YouTw.childs` property won't crash
- Fixed: notepad.wlua example to take in count Windows theme changes
- New:
Webview:onThemeChange()event when the Windows theme have been changed - Updated YouTube.wlua example to take in count Windows theme changes
- Enhanced
rtcstatic compilation to use Lua static binary modules : no morelua54.dlldependency - New
serialmodule for asynchronous serial communications - Various community reported suggestions and bug fixes
- 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-staticandwluart-staticinterpreters can now load static binary module suffixed by-static.dllluart-staticandwluart-staticinterpreters don't includenetandcryptomodules anymore
- Fixed: Putting a Canvas or Webview widget inside a Panel won't crash RTBuilder anymore
- 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
- New module for serial communications
- New
Portobject supporting asynchronous COM ports operations with Tasks, and fine control for baud rate, parity, stop bits, etc.
- New:
embed.Directoryobject to access directories from embedded content
- 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
- 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
- New:
console:show()andconsole:hide()methods - New:
console.visibleproperty - Updated:
console.read()argument is now optional, defaulting to 1
- 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
- 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
- Fixed:
sysutils.userwon't include a terminal\0character anymore - Updated:
sysutils.shellexec()now waits for the child process to terminate before returning
- 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
- 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
- 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
- Bugfix release for LuaRT 1.9.0 with some user requested updates
- Completely rewritten Webview widget, with ability to set options, Chrome DevTools Protocol and printing support
- Updated dependencies for less bugs (miniaudio, miniz and Kuba zip library)
- Updated:
rtcnow supports submodules linking and requiring from the generated executable
- Fixed: Indentation for structured statements works now as expected
- 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
- 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)
- 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
- Fixed: removed debugging console output in
Database.query()andDatabase.exec()
- Fixed:
json.encode()function now escapes double quoted strings correctly
- 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
- 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)
- 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
- 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
- Console
luart.exeand desktopwluart.exeinterpreters now use latest Lua 5.4.7 VM
- Updated: LuaRT Studio is now using the LuaRT 1.9.0 toolchain
- Fixed: Task function can now be debugged (Fixes #237)
- 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)
- New: QuickRT uses now an asynchronous loop, to use
Taskinstances and any other asynchronous functions - Fixed: Objets are now correctly pretty printed (Fixes #221)
- 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
- 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
- New
sysutilsmodule that provides various system utility functions and properties - New
Processobject to start and manage a new process
- 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
- New
debug.settaskhook()function to set debug hook for all new Tasks
- New:
string.normalize()function to replace accentued characters by non accentued ones in a string
- 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)
- 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)
- New:
Zip.async.extractall()andZip.async.extract()to extract ZIP archives asynchronously
- Fixed :
Cipher.constructor()won't crash anymore if themodeparameter is invalid
- New: property
Http.contentto get the current response content
- Updated : INI property names and values are now trimmed
- Fixed : JSON numbers are now correctly parsed (Fixes #217)
- Fixed :
json.decode()don't unescape escaped characters from json strings (Fixes #227)
- New :
Webview.useragentproperty to get/set the user agent string
- Fixed : module functions
query()andexec()now set column values correctly (Fixes #234)
- 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)
- 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.
- 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)
- 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
- Updated: The
Runtime errorwindow when an error occurs withwluart.exenow uses the current Windows theme
- 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
- 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
- New: Option to switch to dark/light theme
- New:
string.split()function to split a string in substrings using a separator
- 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
- Fixed:
ui.rtldocumentation is now available - Updated: now the documentation contains all new LuaRT 1.8.0 changes
- Fixed:
sys.cmd()now returnsfalseif the command fails (fixes #187)
- New:
string.split()function to split a string in substrings using a separator
- New:
Canvaswidget updated to support double buffering and HighDPI
- 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
- 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
- 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)
- Fixed: LuaRT Updater now downloads updates correctly (Fixes #168)
- Fixed: Running scripts with arguments now set the
argtable correctly
- Fixed: Can't change values of a global variable defined in another environment (using
loadfile()for example) - Fixed: QuickRT exits when printing custom
userdata
- Fixed:
wrtcerror message "no input file" fixed (Fixes #172) - Fixed:
wrtcdon't throw "no input file" error anymore - Updated:
rtcnow use LuaRT 1.7.1argtable
- 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
- Updated: now the documentation contains all new LuaRT 1.7.1 changes
- 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)
- 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)
- 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
- Updated: MSVC builds now use better optimizations for faster execution
- Fixed:
rtcheckwon't propose to update for an inferior version now (Fixes #167)
- 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)
- 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
- New:
balls_demo.wluaexample forcanvasmodule
- 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)
- 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)
- 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
- 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)
- 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)
- 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
- 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
- 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
- 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)
- Fixed:
console.reset()now resets cursor height too
- Fixed:
Httpobject can now send new requests without crashing (Fixes #149)
- 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)
- 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
- 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)
- Fixed: now the LuaRT installer window will show over other windows.
- Updated:
rtcnow prevents access to embedded content from generated executables. - Fixed: LuaRT can now be built with
mingw-w64compiler again (Fixes #105)
- 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
- New:
lua_gettask()function to get the current executing Task.
- Fixed: Getting COM enumeration property value don't crash anymore (Fixes #104)
- Fixed: Calling
sleep()from a compiled script don't cause a fatal error anymore (Fixes #103)
- 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)
- Fixed: now the LuaRT installer will launch even if a previous LuaRT distribution is found
- Fixed: await/async/sleep from a compiled script is now possible (Fixes #95)
- New:
onMouseDown()andonMouseUp()events forWindowand any other widgets - New: example
mouse.wluato illustrate the new mouse events - Fixed: calling
sleep()from an ui event handler now works as expected (Fixes #96) - Fixed:
Window.onCreate()event is now fired as expected (Fixes #97)
- Asynchronous programming with LuaRT is now available with a thin layer around Lua coroutines, with an integrated scheduler
- New global functions
async(),await(), andwaitall()functions - New global function
sleep()that replacessys.sleep() - New
sys.Taskobject
- Visual C++ compiler support is now complete, thus becoming the default target compiler for LuaRT
- LuaRT release package is built using
cl.exeversion 19.35.32217.1 (Visual Studio 2022). See build instructions inREADME.md - Mingw-w64 compiler support still available, but is now deprecated (might be removed later)
- LuaRT won't use AVX2 instructions set by default anymore (causes crash on CPU that don't provide it)
- Updated: LuaRT is now using Lua 5.4.6
- New:
lua_pushtask()andlua_sleep()to createTaskobject and tosleepfrom C - Fixed:
luaL_checkFilename()now checks for a File instance
- Better support of
uimodule (Window/widget can now be created and manipulated interactively from the command prompt) (suggestion #72)
- New:
sys.COMobjects can now manage enumeration properties by getting/setting string values - New:
sys.COMconstructor can now use an already running instance of a COM object - New:
sys.Taskobject that encapsulates a Lua coroutine with scheduling capabilites - Updated:
Pipe.read()andPipe.readerror()methods are now asynchronous and returns aTaskobject instance - Removed:
sys.sleep()function have been replaced by the new globalsleep()function - Fixed:
File.open()with "append" mode don't recreate a new file instead of appending to it anymore (Fixes #79) - Fixed: Errors now uses current locale encoding when displayed (Fixes #89)
- Fixed:
console.fullscreennow works as expected on x64 (Fixes #90)
- Total rework of the
netmodule to use asynchronous operations Httpobject uses asynchronous Tasks for GET, POST, PUT, and DELETE HTTP requestsHttpobject now supports headers, cookies and proxy connections (suggestion #63)Http.sheme,Http.status,Http.statuscode,Http.mime,Http.open()members have been removed- New
Http.put(),Http.delete(),Http.cookies,Http.proxy()members Ftpobject now uses asynchronous Tasks to perform operationsFtpobject now supports proxy connection and loggingFtp.open()andFtp.activemembers have been removed- New
Ftp.proxy()method Socketuses now asynchronous Tasks for non blocking sockets, forSocket.recv(),Socket.send(),Socket.connect()andSocket.accept()Socket.sendall()method have been removednetmodules examples have been updated accordingly
- New binary module for LuaRT that provides SQLite3 database support
- New
Databaseobject to execute SQL commands or queries and iterate over the results seamlessly
- Fixed crash on some integrated Intel GPU without Direct2D support (Fixes #76)
Canvas.print()prints now antialiased text.- New
Canvas.rotate(),Canvas.translate(),Canvas.scale(),Canvas.skew(),Canvas.identity()methods
- Fixed crash on CPU that don't have AVX2 instruction set (Fixes #77)
- New: Added support for RTL (right to left) layout, with layout autodetection and
ui.rtlproperty to force a RTL or LTR layout - New
ui.run()function to the specified main Window asynchronously, while processing events, and returning only when this Window have been closed - Updated
ui.update()that don't use thedelayargument anymore. - Fixed iterating
Tree.itemswitheach()(Fixes #91) - Fixed
Edit.append()that may crash when appending lot of lines (Fixes #88) - Fixed
Window.onMove()event that was not properly fired (Fixes #87) - Fixed
Groupboxnot redrawing correctly (Fixes #80 and #81) - Fixed
Edit.onCaret()event that was not fired (Fixes #75) - Fixed
Edit.selection.visiblethat was not hiding selection as expected (Fixes #74) - Fixed
Edit.load()to support BOM and prevent crash for big files (Fixes #73)
- Rework of the LuaRT codebase, now separated between the core framework and the other modules
- The core framework includes the LuaRT runtime and the toolchain.
- The core framework source code is in the
src\core\folder - Complementary modules source code is in the
src\modules\folder - Updated build system to build all or part of LuaRT
- Examples are now sorted by modules
- Updated: LuaRT is now using Lua 5.4.5
- New: Macros for easy registering modules/objects functions and properties
- New:
luaL_getlasterror()to push last Windows error message on Lua stack - Updated:
luaL_checkscinstance()now returns a more explicit error message - Fixed: Headers can now be included from C++
- Updated: LuaRT Studio now uses the LuaRT 1.4.0 toolchain
- New:
-loption to embed binary modules in the executable - Updated :
wrtchas a new field to embed modules
- Fixed: New mechanism to embed files when compiling LuaRT scripts to executables, compatible with x86 and x64 (Fixes #66 and #67)
- New:
sys.fsentry()function that returns aDirectoryorFileobject by name - Fixed:
sys.errorproperty no longer returns strange characters in certain locales
- New: Window have now an
onKey()event, thrown when the user press a key - New: Widgets have now an
onClick()event (except Radiobutton and Checkbox) - New: Window.fullscreen property, to switch the Window to full screen
- New: Widgets now have
tofront()andtoback()methods to control their Z position - Updated: Window
"single"style no longer allows the Window to be maximized - Updated: Default
Entry.heightincreased due to Segoe UI font - Fixed: Closing Window with status bar don't make it showing again when closing (Fixes #68)
- Fixed: Custom widgets events don't crash anymore in case of Lua error (Fixes #65)
- Fixed:
Tab.selectednow really selects the specifed TabItem (Fixes #64)
- New binary module
canvasthat provides a newuiwidget as a drawing surface, using Direct2D - You can now draw text, lines, circles, rectangles, images, with colors, gradients and transparency
- New documentation and examples for the
canvasmodule
- New binary module
audiofor audio playback - You can now play music and sounds encoded in WAV, MP3, FLAC, and OGG Vorbis
- New documentation and examples for the
audiomodule
- Webview module is now part of the LuaRT codebase
- Updated: Installer button now include platform version (x86/x64)
- Fixed
print()function prints only first argument in Lua interpreter panel (Fixes #15)
- Fixed Widgets inside a
Groupboxdon't display background and foreground colors correctly (Fixes #62) - Fixed Background colors of widgets may not display correctly (Fixes #61)
- Fixed
Groupboxwidget displays incorrectly in TabItem (Fixes #60) - Fixed
Button.onClick()event handler is called twice (Fixes #59) - Fixed Widgets
bgcolorproperty returns wrong RGB color value (Fixes #58) - Fixed
Window.alignproperty returns"all"instead ofnil(Fixes #57) - Fixed
Edit.bgcolorproperty returns wrong value (Fixes #56) - Fixed
Combobox:onClick()event not thrown (Fixes #55) - Fixed Clicking on Window keep the current widget focused (Fixes #54)
- Fixed Fast
Checkboxmouse click don't throwonClick()event (Fixes #53) - Fixed
Editselection is not visible when focus is lost (Fixes #52) - Fixed
tree:remove()called with string argument throws an error (Fixes #51) - Fixed
Combobox:remove()don't check for value type (Fixes #50) - Fixed
Combobox:clear()don't clear at all items (Fixes #49) - Fixed
Combobox:onChange()event not thrown when selection change
- Fixed running script fails due to spaces in path (Fixes #13)
- Fixed running with arguments fails (Fixes #14)
- Fixed Combobox:clear() don't clear at all items (Fixes #49)
- Fixed Combobox:remove(), Listbox:remove(), Tree:remove(), Tab:remove() don't check for value type (Fixes #50)
- Fixed Combobox:onChange() event not thrown when selection change
- New: compiled Lua scripts can now require for embedded DLL binary modules without extraction (may not work for all binary modules)
- New: binary modules inside the
\modulesfolder can now be required using a folder structure, while still usingluaopen_modulename()function - Updated
luart.exeandwluart.execommand line arguments (-e and script can now be specified together : the -e statement will be executed first) - String module now uses non-encoded strings by default, as standard Lua (UTF8 functions are now available, see
stringmodule below) - Updated default desktop application icon
- Now detects already installed LuaRT distribution
- Updated
wrtcso that it don't show a message box after compilation anymore - Updated to use the UTF8 string functions
- Updated to use the new UTF8 string functions
- LuaRT toolchain updated to v1.3.0
- Updated examples to LuaRT v1.3.0
- New integrated Lua code formatter/beautifier Alt + F (uses Stylua)
- New Variables pane shown during debugging that list all current scope variables
- New debugging view that shows Symbols and Variables pane during debugging
- New UTF8/UNICODE complete support in Output pane
- New LuaRT
modules\folder autodetection - New keyboard shortcut to copy line(s) down Alt + Shift + ↓ and up Alt + Shift + ↑
- New keyboard shortcut to move line(s) down Alt + ↓ and up Alt + ↑
- Changed comment keyboard shortcut to Ctrl + :
- Changed replace keyboard shortcut to Ctrl + H
- Changed replace in files keyboard shortcut to Ctrl + Shift + H
- Updated "Local console" pane to "Lua interpreter" pane
- Updated "Remote console" pane to "Debugging console" pane
- Updated breakpoint color to a more consensual one (red !)
- Updated wrtc to show message in Output panel after compilation succeeded instead of showing a message box
- Symbols pane now shows only symbols for the current opened file
- Project view now shows EXE and DLL files
- Removed Watch pane (replaced by the new Variables Pane)
- Fixed Lua scripts cannot be executed in the IDE
- Fixed "Show console when running option" has no effect
- Fixed document tab may contain more than one '*' after file change
- Fixed Symbols pane showing global variables multiple times
- Fixed Symbols pane showing a non transparent icon for anonymous functions
- Fixed Output pane don't support reading from console input
- Fixed LuaRT Console output module breaking Output pane redirection
- Fixed binary modules in LuaRT "modules\" folder not found during debugging session
- Examples have been updated to use the new UTF8 string functions
- Fixed
super()global function do not returns inherited parent object (Fixes #42) super()supports only method ancestor calls using the "." dot notation, specifying the self instance explicitly
- Fixed
luart.hC++ inclusion that was throwing errors regardingtypenamekeyword (Fixes #41) - New
lua_super()function in LuaRT C API to push on the stack the ancestor of the provided indexed Object/instance on the stack
- Fixed bad standard input redirection with
luart.exeandwluart.exe(Fixes #39) - Fixed
console.readchar()running forever when interpreter input is redirected (Fixes #40)
- Updated UTF8 functions in
stringmodule, now prefixed with auto preserve compatibility with standard Lua
- New
net.getmime()function to retrieve MIME type from URL, filename orsys.Fileinstance
- New
Directory:copy()method to copy a folder recursively - Fixed buffer overflow when reading long sized UTF8 character from
sys.Fileinstance (Fixes #43) - Fixed
Directory:removeall()that can be very slow on Windows 10 and later (Fixes #44)
- New
Zip:open("delete")mode - New
Zip.remove()method to delete one or more entries in ZIP archive. - Updated dependencies zip to 0.2.6 and miniz to 2.2.0
- New
"single"Window style (standard Window that cannot be resized) - Fixed widgets
alignproperty not working correctly - Fixed Parent align property don't propagate to childs widgets (Fixes #46)
- New
modules\folder in the root directory to put your binary/Lua modules - Fixed lots of modules memory leaks (string iterator,
embedmodule,COMmodule,uimodule,Zipobject)
- Updated installer with the new Progressbar widget and other cosmetics changes
- Fixed uninstaller from deleting installation folder even if it's not empty anymore (Implements #36)
- Updated LuaRT Studio with LuaRT 1.2.0 runtime
- Fixed LuaRT-Studio x64 program crash when starting a new debug session
-
Include files are now in the
include\folder in the root directory -
Library files are now in the
lib\ -
New
lua_registerevent()andlua_getevent()for custom widgets events -
New
lua_widgetdestructor()to be called during custom Widget destruction -
New
lua_widgetproc()to register a custom Widget messages procedure -
luart.hcan now be included in C++ files easily -
New header
Widget.hfor builtin and custom Widgets -
Fixed compilation warnings when using GCC 12+
-
lua_widgetfinalize()renamed tolua_widgetconstructor() -
Fixed
lua_checkcinstance()error when using a non instance value -
Fixed
lua_registerwidget()not setting Widget properties properly
-
New
Directory.isemptyproperty to check if a directory is empty -
Fixed crash when getting a
COMobject -
Fixed
COMmethods that might being called twice
- Fixed console to be not closeable anymore when using desktop applications (Fixes #32)
-
New
Progressbarwidget -
New
onClick()event for all Widgets -
New rounded corners for
"raw"windows on Windows 11 -
New
Widget.alignproperty (alignment now persists even if the size of the parent Widget changes) -
Removed
Widget:align()method (replaced by the newalignproperty) -
Updated
Window:status()to convert each argument to string -
Updated
ui.info(),ui.error(),ui.confirm()andui.warn()to convert first argument to string -
Updated
ui.update()to use registered events for custom Widgets -
Updated
ui.Listselection now spans to the entire row -
Updated
Edit:append()to scroll down automatically -
Fixed changing a widget font attribute alter other widget fonts (Fixes #18)
-
Fixed
Widget:center()not taking in count the presence of a Window statusbar -
Fixed
ui.Tabnot drawn properly and background color when parent window background color changes -
Fixed
Label.fgcolorandLabel.bgcolorproperties ineffective when parent is aTabItem(Fixes #35) -
Fixed Window statusbar not always showing on top of other widgets (Fixes #31)
-
Fixed
Tree,List,ComboboxandTabthat didn't check for atableargument in constructor -
Fixed readonly
Editscrollbars that coouldn't be used -
Fixed
Pictureconstructor not acceptingstringor aFileinstance (Fixes #30) -
Fixed
Windowfinalizer not being called -
Fixed taskbar showing ugly-resized Window icon when application is compiled with rtc -i option (Fixes #34)
-
Fixed
Widget:center()not taking in count the presence of the window statusbar -
Fixed selected
TreeItemnot staying higlighted
16/10/2022 -------- LuaRT 1.0.2 (bugfix)
----------- General [ NEW ] New examples img_viewer.wlua and binary.wlua
----------- QuickRT [ BUG ] Fixed nil variable names with underscore character "_" outputs no result
----------- LuaRT Studio [ BUG ] Fixed runtime error when compiling to executable without a project set
---------- net module [ BUG ] Http:get() method might return wrong results
----------- ui module [ UPDATE ] Segoe UI font is now used by default, as recommended since Windows Vista [ BUG ] Fixed Runtime error when compiling to executable without a project set [ BUG ] Fixed Groupbox painted with white background color when redrawn
08/10/2022 -------- LuaRT 1.0.1 (bugfix)
----------- General [ BUG ] Fixed GCC 10+ warnings during compilation [ BUG ] Fixed build error because of "bin" and "bin\std" folders missing
---------- rtc [ BUG ] Lua compiled scripts silently crash after execution
----------- ui module [ BUG ] Fixed strange characters with IME input when using Entry and Combobox widgets
25/09/2022 -------- LuaRT 1.0.0
----------- General [ NEW ] LuaRT is now open sourced, under the MIT License [ NEW ] LuaRT binary distribution now includes LuaRT Studio and QuickRT [ NEW ] New examples : syntax.wlua, iconbutton.wlua, balls.wlua, dir.lua
----------- rtc [ NEW ] New rtc -i option to change executable icon [ NEW ] New wrtc.exe GUI frontend for rtc
----------- OOP [ NEW ] New mixins implementation for Object() declarations [ NEW ] New super() global function to get inherited object [ NEW ] New Object.iterator() to iterate over an object instance [ UPDATED ] rawset() and rawget() global functions cannot operate on objects/instances anymore
----------- zip module [ UPDATED ] Zip object iteration now returns only the entry name [ BUG ] Fixed Zip:write() archive corruption when writing directories
----------- ui module [ NEW ] New Edit.selection.visible property to disable scrolling/visibility when manipulating the selection [ NEW ] New Button.hastext property [ NEW ] New readonly option in Combobox constructor [ NEW ] New Window.bgcolor, Label.bgcolor, Label.fgcolor properties [ NEW ] New Window:loadtrayicon() method, Window.traytooltip property and tray icon events [ UPDATED ] Tree:add(), Treeitem:add(), List:add(), Tab:add() and Combobox:add() now accepts more than one string [ UPDATED ] Menu:add() now has an optional parameter for a submenu, as Menu:insert() [ UPDATED ] Window:loadicon(), MenuItem:loadicon() and button:loadicon() called without argument removes the icon [ BUG ] Fixed edit.color and edit.bgcolor property (using RGB value and not BGR value) [ BUG ] Fixed application crash on status bar mouse click [ BUG ] Fixed runtime error once a MenuItem, without onClick event set, is clicked [ BUG ] Fixed widgets not redrawing once their position has changed [ BUG ] Fixed Groupbox childs widget not receiving events notification [ BUG ] Fixed TAB and ARROWS keys widget navigation on a Window [ BUG ] Fixed crash with Window.parent property
12/06/2022 -------- LuaRT 0.9.9 [ NEW ] LuaRT is now available for x64 and x86 Windows systems [ NEW ] New global _ARCH variable that holds LuaRT interpreter architecture ("x64" or "x86") [ NEW ] New sys.COM object added to interact with Microsoft Component Object Model [ NEW ] New examples illustrating the new sys.COM object : json.lua, speech.lua, shortcut.lua [ NEW ] New LuaRT interpreter option "-e" to execute a Lua statement from the command line
[ UPDATED ] LuaRT interpreter now accepts UTF8/UNICODE characters as arguments [ UPDATED ] Global _VERSION variable now holds full LuaRT version string [ UPDATED ] Now qrcode.wlua example can now save the generated QRCODE
[ BUG ] ComboItem:remove(), ListItem:remove(), TabItem:remove() are now working as expected [ BUG ] Window shortcuts are now calling the binded function correctly [ BUG ] TabItem:remove() now gives focus to the next remaining TabItem [ BUG ] Path registry key is no more corrupted during LuaRT installation [ BUG ] ComboItem, TabItem, TreeItem, ListItem and MenuItem objects are no more available from ui module
26/05/2022 -------- LuaRT 0.9.8
[ NEW ] New 'compatibility' LUA54.DLL runtime in bin\std, with better Lua 5.4 standard library compatibility (including io and os modules)
This runtime library provides better compatibility with Lua ecosystem (mobdebug, LuaSocket,...)
[ NEW ] LuaRT now uses generational garbage collector by default
[ NEW ] New sys.tempdir() function to create temporary directories
[ UPDATED ] sys.Directory constructor now uses the current directory by default
[ UPDATED ] File:copy() now returns a File object representing the copied file
[ UPDATED ] Buffer:contains() now returns only one value (sequence position or false)
[ UPDATED ] Edit.textlength property removed
[ UPDATED ] Edit.lines property now returns empty string instead of nil when line is empty
[ UPDATED ] "embed" module is now defined globally if embedded content is detected inside executable
[ UPDATED ] ui.Edit:onChange() event don't fire any other Edit:onChange() during its call
[ BUG ] console required by a desktop application don't close entire application now
[ BUG ] ui.List now has better horizontal visibility
[ BUG ] Widget:loadicon() now load other Widget's icon correctly
[ BUG ] console.fullscreen property now works correctly with wluart.exe interpreter
[ BUG ] GroupBox child widgets are now throwing events to child widgets correctly
[ BUG ] Fixed random crashes when using ui module when IME is activated on Windows
20/03/2022 -------- LuaRT 0.9.7
[ NEW ] LuaRT script to executable compiler rtc.exe
[ NEW ] New geo.lua example
[ NEW ] New geo.lua example
[ NEW ] New qrcode.wlua example
[ NEW ] New labeled_entry.wlua example
[ NEW ] console.cursor property to get/set cursor visibility
[ UPDATE ] luart.exe now don't include the ui module, use wluart.exe instead for GUI applications
[ BUG ] sys.registry.delete() now delete key and all subkeys/values if no specific value is provided, as expected
[ BUG ] GUI applications now open a console Window as expected when requiring for the console module
[ BUG ] console.fullscreen now work better with Windows Terminal
[ BUG ] File.accessed, File.created, File.modified now return nil when file do not exists
[ BUG ] console.readchar() now return correct value when pressing "à" key on french, belgian, and canadian keyboards
[ BUG ] High CPU usage when calling ui.update() fixed
[ BUG ] Combobox now display selected item correctly
[ BUG ] Setting MenuItem.text don't corrupt the MenuItem.text property anymore
[ BUG ] Last item added to the List was not always visible
[ BUG ] Horizontal List's scrollbar is now shown only if the item width is lower than List width
[ BUG ] Directory.fullpath is now valid if the Directory name is a drive letter (C:\, D:...)
[ BUG ] TreeItem:loadicon() now works if the Tree widget has been previously cleared with Tree:clear()
[ BUG ] Zip:write() and Zip:extract() don't return false anymore if the operation succeeded
[ BUG ] Cipher.constructor() now throws the right error message if incorrect mode is provided
12/03/2022 -------- LuaRT 0.9.6
[ NEW ] LuaRT now uses Lua 5.4.4 VM
[ NEW ] New ui.Tree Widget supporting icons and new theme for Windows 10/11
[ NEW ] New TreeItem Object
[ NEW ] New documentation for ui.Tree and ui.Picture widgets
[ NEW ] New Picture:load(), Picture:save(), Picture:resize() methods
[ NEW ] New Picture:onClick() and Picture:onDoubleClick() events
[ NEW ] New Widget:center() method
[ NEW ] New Tab.style property
[ NEW ] New Label:onDoubleClick() event
[ NEW ] New fireworks.lua example from QB64 version
[ NEW ] New zoom.wlua example
[ NEW ] New imgconv.wlua example
[ UPDATE ] console.locate() now accepts float numbers
[ UPDATE ] console:readln() provides a better user experience (support now arrows, history, HOME,...)
[ UPDATE ] Widget:show() now shows the Widget and bring it on top
[ UPDATE ] examples updated for new ui.Tree widget
[ UPDATE ] ui.opendialog() and ui.savedialog() now use the selected file extension if omitted by user
[ UPDATE ] Combobox and List don't loose their icons anymore when switching between "text" and "icons" styles
[ UPDATE ] Ftp:upload() now expect a string or a File object
[ UPDATE ] sys.cmd() now has an optional parameter to show/hide the executed command window
[ UPDATE ] Zip object iterator now returns an entry string and a isdir boolean value
[ BUG ] *Lots of* documentation fixes
[ BUG ] luart.exe and wluart.exe now shows the right LuaRT version
[ BUG ] Fixed: Window:show() now should show the Window on top
[ BUG ] error message in console are now followed by a newline
[ BUG ] global _VERSION variable is now uptodate
[ BUG ] Combobox.text property is now back
[ BUG ] example widget.lua : Picture widget now load LuaRT.png correctly
[ BUG ] Various GUI application crashes fixed
[ BUG ] sys.registry.read() now fixed prior to Windows 10
[ BUG ] LuaRT install script don't crash anymore prior to Windows 10
[ BUG ] console.readchar() fixed for unicode char 'à' (0x00E0)
[ BUG ] console.fullscreen now don't show scrollbars when set to true
23/01/2022 -------- LuaRT 0.9.5
[ NEW ] New LuaRT GUI installer written in LuaRT
[ NEW ] New widget ui.Picture supporting JPEG, TIFF, GIF, PNG, BMP and ICO formats
[ NEW ] New registry functions : sys.registry.read(), sys.registry.write(), sys.registry.delete()
[ NEW ] Zip.file property returns the Zip filename
[ NEW ] zip.isvalid() checks if the specified zip file is valid
[ NEW ] ui.remove() removes a widget
[ NEW ] List:onDoubleClick() event
[ NEW ] New console.font and console.fontsize property
[ NEW ] New Directory.name property
[ UPDATE ] File:copy() now uses the same filename by default
[ UPDATE ] zip module now have two member : Zip Object constructor and isvalid() method
[ UPDATE ] Zip:extract() can now extract zip entries preserving their path if needed
[ UPDATE ] Widget:loadicon() now accept string or File object
[ UPDATE ] Widget:loadicon() method can now extract an icon from an EXE or DLL or retrieve the default associated icon
[ UPDATE ] Widget.font property can now accept a font file (".ttf", ".fon"...)
[ UPDATE ] Tab.items, List.items, Combo.items properties are now indexable by strings
[ UPDATE ] File.name property replaces now File.filename
[ UPDATE ] Setting/getting LuaRT modules fields is now possible as in standard Lua
[ UPDATE ] Widget:loadicon() now uses default system associated icon if not found in the specified file
[ UPDATE ] Zip constructor now accepts File objects
[ UPDATE ] notepad.wlua now changes font, fontsize and fontstyle when setting font
[ BUG ] ui.msg, ui.info, ui.error, ui.warn() now ensure the foreground window is from ui module
[ BUG ] Button:loadicon() is now *really* available
[ BUG ] Combo:onSelect() and Combo:onChange() crash fixed when altering item.text property
[ BUG ] Sizing and position properties now fixed when using non integer values
[ BUG ] Windows have now their default background color (back to gray) !
[ BUG ] Now widgets transparency and Windows theme are more respected (TabItems, Labels, Checkboxes...)
[ BUG ] ui.opendialog() and ui.savedialog() now use the provided title
[ BUG ] List column now resizes correctly with the List
[ BUG ] List can now show items correctly
[ BUG ] Widget align() method now uses correct parent size
[ BUG ] Tabs now draws correctly
[ BUG ] Console.fullscreen removes the vertical scrollbar correctly when set to true
27/12/2021 -------- LuaRT 0.9.4
[ NEW ] Tab and List onContext(), onHover() and onLeave() events
[ NEW ] Combobox, List and Tab remove() method
[ NEW ] ComboItem, ListItem and TabItem are now iterable
[ NEW ] ComboItem, ListItem and TabItem owner property
[ NEW ] ComboItem, ListItem and TabItem remove() method
[ NEW ] Combobox.text property
[ NEW ] Combobox, Tab and Listbox constructors now expects table with strings items
[ NEW ] List:sort() method
[ NEW ] List.style and Combobox.style property
[ NEW ] MenuItems, Button, List, Combobox, Tab objects now support icons
[ NEW ] MenuItems.onClick event
[ NEW ] Widget.cursor property to change control's cursor when hovering with the mouse
[ NEW ] Widget.font is now a read/write property
[ NEW ] Widget.fontsize property
[ NEW ] Widget.fontstyle property
[ NEW ] Window:loadicon(), Button:loadicon() and MenuItem:loadicon() methods
[ NEW ] Item object for List, Tab and Combobox members
[ NEW ] Tab:insert(), List:insert() and Combobox:insert() methods
[ NEW ] Entry:searchup() and Edit:searchdown() method
[ NEW ] Entry:add() method
[ NEW ] Edit.selection property
[ NEW ] Edit:load() and Edit:save() method, supporting RTF files
[ NEW ] New ui.colordialog() function
[ NEW ] New Window style "raw"
[ NEW ] The long awaited system function sys.Beep() is now implemented
[ NEW ] Widget.parent property
[ NEW ] Widget.onCreate event
[ NEW ] ui.mousepos() function
[ NEW ] Window:showmodal() method
[ NEW ] Window:shortcut() method
[ NEW ] Window:popup() method
[ NEW ] Window.menu property
[ NEW ] File.name to get filename (replace previous File.filename propoerty) and Directory.name to get directory name (the last part of the directory path)
[ UPDATE ] Rework of ui objects event system for a new faster implementation and more responsiveness
[ UPDATE ] Total rework of Menu and MenuItem objects
[ UPDATE ] ui.dirdialog() now return a Directory value
[ UPDATE ] ui.opendialog() now allow multiple files selection
[ UPDATE ] ui.dialogfont() updated
[ UPDATE ] Tab.selected, Combobox.selected and List.selected properties now get/set an Item object
[ UPDATE ] Menu.items, Tab.items, List.items and Combobox.items are now iterable
[ UPDATE ] List.items, Combobox.items and Tab.items are now proxy table to Item objects
[ UPDATE ] Menu.items is now a proxy table to MenuItem objects
[ UPDATE ] Tab.pages renamed to Tab.items accordingly to List.items and Combobox.items
[ UPDATE ] ui.fontdialog() now returns choosen font name, size, styles and color.
[ UPDATE ] Notepad.wlua example rewrite, now supporting large files, RTF file type
[ UPDATE ] ui.update() now has an optional delay argument
[ UPDATE ] wluart.exe has now a new icon
[ BUG ] Objects inheriting from Widgets are now fixed
[ BUG ] Inherited Objects use of properties inside constructor is now fixed
[ BUG ] Tab.pages text property fixed
[ BUG ] ui.savedialog and ui.loaddialog filter bug fixed
[ BUG ] Setting Tab.selected, Listbox.selected and Combobox.selected properties now throws an onSelect event
[ BUG ] Edit object now has a border
[ BUG ] Stack bug fixed after Window:onClose() event
[ BUG ] Fixed error message when occuring with get/set property
[ BUG ] Changing font of a Widget now autosizes the Widget to take count the change
[ BUG ] Widgets fontsize property now get/set the font height in points not in pixels
[ BUG ] Window.constructor() bug fixed, now using the given width and height arguments
[ BUG ] Window:align() bug fixed
[ BUG ] Widget.x and Widget.y property bug fixed
[ BUG ] Widget.width and Widget.height property bug fixed
[ BUG ] Widget.enabled property now redraws the Widget
[ BUG ] Resized window now update properly its status bar
[ BUG ] sys.clipboard get property now fixed
[ BUG ] console.read bug with DEL key fixed
[ BUG ] File:open() uses "binary" encoding now, if not provided
[ BUG ] Richedit DLL now unloads correctly
[ BUG ] Pipe constructor now hides the created process
[ BUG ] Windows with "fixed" styles maximize button now hidden on Windows 11
[ BUG ] Now ui.Window() shows correctly on the Windows Taskbar
[ BUG ] ui.opendialog() and ui.savedialog() not return nil if user have canceled as expected
04/07/2021 -------- LuaRT 0.9.3 beta
[ NEW ] Total rework of Zip module with support of Zip64 specification
[ NEW ] Zip:isdirectory() method
[ NEW ] Zip.iszip64() method
[ NEW ] Zip:write() / Zip:read() / Zip:extract() now more integrated with File, Directory objects
[ NEW ] crypto.Cipher object supporting now AES128, AES192, AES256, DES, 2DES, 3DES, RC2, RC4
[ NEW ] Support encryption/decryption in CBC, CFB, ECB, and CTS modes
[ NEW ] crypto.hash() function supporting MD5, SHA1, SHA256, SHA384, SHA512
[ NEW ] Buffer:contains() method
[ NEW ] File.directory property
[ NEW ] Global _VERSION variable is now set to "luaRT x.x"
[ NEW ] New example "help.lua" with auto-generated table from documentation
[ BUG ] Buffer equality fixed and optimized
[ BUG ] File:open() - User provided encoding now prevail over BOM file detection
[ BUG ] Directory:make() now can create folders on another drive
[ BUG ] Various memory leaks fixed
[ BUG ] Datetime:interval() now use "months" instead of "month"
[ BUG ] *Lots of* documentation fixes
[ BUG ] sys.cmd() now don't impact standard streams
07/03/2021 -------- LuaRT 0.9.2 beta1
[ NEW ] net.Ftp object
[ NEW ] net.Http object
[ NEW ] net.adapters iterator
[ NEW ] net.urlparse() function
[ NEW ] net.ip and net.publicip properties
[ NEW ] Socket.port, Socket.ip, Socket.family properties
[ NEW ] Socket:sendall() method
[ NEW ] Zip:extractall() method
[ NEW ] Http object to perform GET/POST requests
[ NEW ] ui.dirdialog() to open a dialog and choose directory
[ NEW ] New example sendmail.lua
[ NEW ] New example widgets.lua
[ NEW ] LuaRT Community now hosted on http://community.luart.org
[ UPDATE ] crypto module has been refactored
[ UPDATE ] net.resolve() and net.reverse() now supports IPv6
[ UPDATE ] Socket constructor now supports IPv6
[ UPDATE ] Socket:start_tls() have been renamed to Socket:starttls() for more consistency
[ UPDATE ] Socket:bind() have been removed
[ UPDATE ] Buffer:encode() has been renamed to Buffer:decode() (actualy Buffer:encode does not encode, but decode)
[ UPDATE ] Zip:extract() can now extract in a specified path
[ UPDATE ] Zip:extract() can now extract entire directories
[ UPDATE ] console.readln() now accepts a string (written to the console before reading for input)
[ UPDATE ] console.fullscreen is now a read/write property
[ UPDATE ] console.echo now enable/disable echoing, with the possibility to set the echoed character.
[ UPDATE ] Examples lang.lua and guess.lua have been updated to use the new console color names
[ UPDATE ] Documentation : various fixes and rewrites, better SEO, navigation links in modules section
[ BUG ] global arg table fixed (arg[0] was the luart.exe interpreter)
[ BUG ] console.read(n) reads more than n characters when console.echo is true
[ BUG ] Fixed ui onClick() event not leaving the clicked control
[ BUG ] Fixed type() function not returning "nil" for nil argument as it should
[ BUG ] Function console.clear now uses the provided color argument as it should
[ BUG ] Directory:make() is now *really* constructing the path
[ BUG ] console.stderr and console.stdout now check for "write" File open mode before assignment
[ BUG ] Fixed console.fullscreen() hanging minimized when calling console.fullscreen(false) twice
[ BUG ] File:writeln() now writes CRLF "\r\n" (default Windows EOL)
07/02/2021 -------- LuaRT 0.9.1 beta1
[ NEW ] Added Socket:shutdown()
[ NEW ] Added Socket.canread, Socket.canwrite, Socket.failed properties
[ NEW ] Added net.select()
[ NEW ] Added console.x and console.y properties
[ NEW ] Added console.readmouse() function
[ NEW ] Strings are now iterable with each() function
[ NEW ] Buffers are now iterable with each() function
[ UPDATE ] lua54.dll is no more embedded in luart.exe and wluart.exe (generate lots of false positive with antivirus)
[ UPDATE ] console colors naming update
[ UPDATE ] console.write() and console.writeln() now write all arguments to console.stdout using tostring()
and separate each arguments with a space character
[ UPDATE ] console.writecolor() major change : first rgument is the color, then write all arguments to console.stdout
using tostring() and separate each arguments with a space character
[ UPDATE ] Fixed false positive antivirus detection using crypt module
[ UPDATE ] console.open() removed : now console module detects and open a console if none is available (wluart.exe)
[ UPDATE ] Documentation : various fixes
[ UPDATE ] Documentation : console module documentation now available
[ BUG ] Fixed application hanging when clicking on ui.Window status bar
[ BUG ] Fixed wrong index in string.byte()
[ BUG ] File:SaveAs() function fixed in examples\notepad.wlua
[ BUG ] Throws error when File:read() on an File opened in "write" or "append" mode
[ BUG ] Throws error when File:write() on an File opened in "read" mode
[ BUG ] File:read() and File:readln() now return nil instead of "" when reading past File.eof
[ BUG ] console.stdin/out/err:close() not reaffecting correctly standard File
[ BUG ] console.locate coordinates uses now 1 based coordinates
[ BUG ] Fixed Socket.constructor throwing strange error message
[ BUG ] Fixed modeless ui.opendialog, ui.savedialog
[ BUG ] Fixed modeless ui.msg, ui.warn, ui.info, ui.confirm
17/01/2021 -------- LuaRT 0.9 beta1