2.3 KiB
Luau
Built-in library for generating luau bytecode & functions.
Example usage
local luau = require("@lune/luau")
local bytecode = luau.compile("print('Hello, World!')")
local callableFn = luau.load(bytecode)
-- Additionally, we can skip the bytecode generation and load a callable function directly from the code itself.
-- local callableFn = luau.load("print('Hello, World!')")
callableFn()
Functions
compile
Compiles sourcecode into Luau bytecode
An error will be thrown if the sourcecode given isn't valid Luau code.
Example usage
local luau = require("@lune/luau")
local bytecode = luau.compile("print('Hello, World!')", {
optimizationLevel: 1,
coverageLevel: 0,
debugLevel: 1,
})
Parameters
-
source
The string that'll be compiled into bytecode -
CompileOptions
The luau compiler options used when compiling the source string
Returns
- luau bytecode
load
Generates a function from either bytecode or sourcecode
An error will be thrown if the sourcecode given isn't valid luau code.
Example usage
local luau = require("@lune/luau")
local bytecode = luau.compile("print('Hello, World!')")
local callableFn = luau.load(bytecode, {
debugName = "'Hello, World'"
})
callableFn()
Parameters
-
source
Either bytecode or sourcecode -
loadOptions
The load options used when creating a callbable function
Returns
- luau function
Types
CompileOptions
The Luau compiler options used in generating luau bytecode
This is a dictionary that may contain one or more of the following values:
optimizationLevel
- Sets the compiler option "optimizationLevel". Defaults to1
coverageLevel
- Sets the compiler option "coverageLevel". Defaults to0
debugLevel
- Sets the compiler option "debugLevel". Defaults to1
Documentation regarding what these values represent can be found here;
LoadOptions
The Luau load options are used for generating a lua function from either bytecode or sourcecode
This is a dictionary that may contain one or more of the following values:
debugName
- The debug name of the closure. Defaults tostring ["..."]