Change Log

Lists the changes that were made between releases.

Release 2.0.1 (27-Jan-2016)

Release 2.0.0 (25-Jan-2016)

Release 1.2.2 (30-April-2012)

Release 1.2.1 (31-Oct-2005)

Release 1.2.0 (27-Jun-2005)

Release 1.1.0 (27-Jul-2004)

  • New: support for Mac OS X. Note that some example scripts contain paths that need adjustment in order to run on the Mac. Also, the lv.memusage function always returns zero, at least under LabVIEW 7.0 for Mac OS X: the underlying DSMemStats manager function does not work properly.
  • New: the script or scripts of a task can be replaced on-the-fly using task swapping functionality. This can be done manually via the "Task Manager" or programmatically via the new Swap Task API VI or swap_task function.
  • New: using the lv.print function, scripts can print to a private print buffer. The content of the print buffer can be retrieved using lv.dump. The Poll Print Buffer API VI can be used to read a print buffer for display purposes, as is done by the print console that opens when using the new "Print Console" button of the "Task Manager".
  • New: miscellaneous functions: task.mode, xio.copy, xio.delete, xio.listdir, xio.move, xio.newdir, xio.strip, and xio.tmpdir.
  • Improved: documentation. Extended FAQ, reworked introductory information in the manual, added an appendix on performance.
  • Change: an unlimited number of elements can be pushed onto the Lua stack from LabVIEW: the stack is grown as needed. Before, the limit was twenty for an un-grown stack.
  • Change: the pre-processor no longer allows task identifiers consisting only of decimal digits. This avoids conflict with auto-assigned identifier numbers.
  • Fix: very rarely, tasks would not respond to a delegated signal. Caused by a race condition in LabVIEW <= 7.1 that can make "Wait on Occurrence" time out in spite of an occurrence having been set. Circumvented by not relying on the "timed out" output. For the same reason, the timed_out result of the sleep function has been deprecated.
  • Fix: when a Lua function with one or more parameters was located inside a table, it could not be called from LabVIEW.
  • Release 1.0.1 (13-May-2004)

    Release 1.0.0 (23-Apr-2004)

  • New: Lua can be called from LabVIEW using the Call API VI.
  • New: expression evaluation and data to/from text examples.
  • New: the Revoke Exports API VI makes it possible to call-protect a module that must perform cleanup actions that leave its export functions in an un-callable state. See the updated module template and example scripts for details.
  • New: easy message/reply synchronous actions via the Incite advanced API VI or the msg.incite function.
  • New: support for coroutines with the restriction that LabVIEW cannot be called from a coroutine.
  • New: most flavours of refnum can be pushed or pulled as flat data.
  • New: optional include cluster order input for Push (flat data).
  • New: a mandatory import script can be configured to execute as the first action of any task.
  • New: miscellaneous functions: app_kind, lv.isinf, lv.memusage,, task.script, VI.get_control, VI.set_control, and VI.signal_control.
  • Improved: to enable the use of  lots of tasks, task instantiation overhead was reduced: CPU overhead by a factor of four, memory overhead by an order of magnitude to roughly 70k per instance.
  • Change: the pre-processor is more picky and will throw errors when encountering ill-formatted keywords. Placing keywords in the script header is now mandatory.
  • Change: to select an execution system other than "standard" and priority other than "normal priority" for a task, a set of allowed choices must be configured first. This allows priority and execution system selection to work for built applications as well.
  • Change: to reduce VI-hierarchy clutter, selected VIs were marked as system VI. Lua for LabVIEW function VIs can be marked as system VI when editing their documentation.
  • Fix: under LabVIEW 7.0, the abort VI method does not time out when the VI being aborted is in a (rare) non-abortable state. To add insult to injury, LabVIEW pops up a modal dialog that blocks both the user interface thread and the calling VI. To circumvent this bug, the task killing functionality was enhanced to first try some alternatives and perform a safety check before resorting to the use of the abort VI method. Also, killing was moved to a reentrant VI to avoid contention. For the same reason, the VI.abort function was made reentrant.
  • Release 1.0 pre 2 (19-Feb-2004)

  • New: support for passing enums, paths, and compound data types (arrays, clusters, variants) between LabVIEW and Lua. The data types documentation was updated to detail this new functionality.
  • New: Private registration of function VIs. Available via the Register Private Function and Register Private Function Directory API VIs as well as the corresponding register.private and register.private_dir function VIs.
  • New: Get Object Attribute advanced API VI.
  • Change: the module and plug-in VI templates as well as the bootstrap facility were updated to make use of the new cluster passing capability. The corresponding configuration table parameters of VI.open_module and call_plugin were made optional instead of mandatory.
  • Change: checking of Boolean arguments to LabVIEW-side functions was made strict: a Boolean type is now required on the Lua side whereas previously any type, with the standard conversions for Boolean expressions (nil == false, etc.) applied,  was allowed. 
  • Change: forced "C" locale instead of retaining system locale. This ensures that Lua will behave consistently with respect to number formatting and allowed characters in identifiers, irrespective of the system language/locale settings.
  • Fix: Pulling a string  no longer truncates it when there is a null character (it was treated as a C string). Both Lua and LabVIEW strings can hold arbitrary 8 bit character values, so this should not have been.
  • Fix: CIN failed to load on some (e.g. Red Hat 7.3) Linux installations. It could not dynamically link to the older libc present on there. Resolved by statically linking with libc (thanks to Germán Schumacher).
  • Release 1.0 pre 1 (8-Dec-2003)
  • Initial pre-release.

  • Go to the Lua for LabVIEW home page