Added debugging and profiling for Lua code. The debugger is Scott Lembcke's debugger.lua, and the profiler is LuaJIT's built-in sampling profiler. Also added the option of turning off JIT compilation. This is all accessed through a new function, lua_mode().
Added further code to ensure that LuaJIT never calls exit() directly and never tries to read from or write to standard input or output streams, instead redirecting this to the R console.
The Lua "io" library is now capable of getting input from the R console (e.g. with io.read()) -- previously, trying this would cause R to hang (at least from RStudio).
The Lua os.exit() function now ends Lua execution without crashing RStudio.
lua_shell() now stores commands in the R console history.
The luajr build process now skips making libluajit.so and the luajit executable, as these are not needed for luajr.
Corrected an oversight in the documentation for lua_shell(); this fixes issue #3. Thanks to @SugarRayLua for bringing my attention to this!
Addressed some further issues turned up by CRAN checks.
Added support for passing the R type "raw" to Lua, as a string potentially with embedded nulls, and for returning strings with embedded nulls from Lua, which become "raw"s in R.
Replaced calls to Rf_allocVector3 with calls to Rf_allocVector, as the former is apparently not part of the API allowed in CRAN packages, as requested by CRAN.
@TimTaylor improved the R version of the "logistic map" example and benchmark in the main luajr vignette, so that now the R version is only 10x slower than the Lua version, not 2,500x slower. This fixes issue #2. Thanks Tim!
Removed a compiler flag, -Wformat
, that was causing errors with some
standard R environments, most notably the rocker/r-base
Docker
environment. This fixes issue
#1. Thanks @jonocarroll
for reporting and helping to fix luajr's first official bug! :-)
luajr
Lua module.lua_parallel()
for basic multithreading.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.