mirror of
https://github.com/lune-org/docs.git
synced 2024-12-13 13:30:38 +00:00
109 lines
2.3 KiB
Markdown
109 lines
2.3 KiB
Markdown
|
# Luau
|
||
|
|
||
|
Built-in library for generating luau bytecode & functions.
|
||
|
|
||
|
#### Example usage
|
||
|
|
||
|
```lua
|
||
|
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
|
||
|
|
||
|
```lua
|
||
|
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
|
||
|
|
||
|
```lua
|
||
|
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 to `1`
|
||
|
- `coverageLevel` - Sets the compiler option "coverageLevel". Defaults to `0`
|
||
|
- `debugLevel` - Sets the compiler option "debugLevel". Defaults to `1`
|
||
|
|
||
|
Documentation regarding what these values represent can be found here;
|
||
|
|
||
|
- https://github.com/Roblox/luau/blob/bd229816c0a82a8590395416c81c333087f541fd/Compiler/include/luacode.h#L13
|
||
|
|
||
|
---
|
||
|
|
||
|
### 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 to `string ["..."]`
|
||
|
|
||
|
---
|