EMILUA(1)

πŸ“¦ version 0.12.1, in nixos 26.05, nixpkgs unstable

πŸ¦‹ EMILUA(1) β€” like, the emilua manual page, bestie ✨

okay so welcome to the emilua man page, it's from the General Commands Manual section and it is literally the whole vibe. sit down, grab a strawberry πŸ“, we're doing this.


πŸ’– NAME πŸ’–

Emilua β€” the Lua execution engine, she's an icon, she's the moment πŸ‘‘


✨ SYNOPSIS ✨

emilua [OPTION]... SCRIPT_FILE
emilua -h|--help
emilua --version

like that's it, that's the shape of it πŸŽ€


🌸 DESCRIPTION 🌸

So Emilua glues a LuaJIT interpreter to the Boost.Asio execution engine by exposing fiber and async IO APIs. no cap, that's the whole thing. she also lets multiple Lua VMs share the same execution context and talk to each other through actor-inspired APIs β€” the way that works is genuinely so cool 😭. Threading capabilities are also exposed. In short: Emilua is a complete execution engine for Lua. periodt. πŸ’…

and ok this bit is important β€” if SCRIPT_FILE is a directory, the file init.lua inside this directory is executed. so like, if you point her at a folder she just goes and finds init.lua herself, main character energy honestly 🫢


πŸŽ€ OPTIONS πŸŽ€

Use HINT=unsafe-io to enable even further optimizations. As long as you’re only running Lua code, your program is still safe (despite the parameter name 😭 the name is doing the most). Check https://www.boost.org/doc/libs/1_88_0/doc/html/boost_asio/overview/core/configuration.html for more info.

Use HINT=unsafe to enable even further optimizations. As long as you’re only running Lua code, your program is still safe (despite the parameter name). However it’ll disable threading completely. 🫠 like, completely completely. Check https://www.boost.org/doc/libs/1_88_0/doc/html/boost_asio/overview/core/configuration.html for more info.

The default is HINT=0.

  • --main-context-scheduler-task-usec MICROSECONDS β€” The maximum time, in microseconds, that the scheduler will wait for its reactor task to complete. A value of -1 means that no limit is placed on this wait time. May be set to 0 to enable CPU-bound spinning. πŸ”₯
  • --main-context-scheduler-wait-usec MICROSECONDS β€” The maximum time, in microseconds, that the scheduler will wait on its wake-up event in an idle thread (i.e. a thread that is not otherwise executing a handler or waiting on the reactor). A value of -1 means that no limit is placed on this wait time. May be set to 0 to enable CPU-bound spinning in an execution context that is being run on multiple threads. ⭐
  • --main-context-reactor-preallocated-io-objects ALLOCATIONS β€” The number of internal reactor I/O object states to allocate at construction. ngl this one's a little nerdy but she's important:

The reactor implementation uses per I/O object state to track things like the queue of outstanding operations. These state objects are recycled once the I/O object is destroyed, but new ones are allocated if there are no unused state objects currently available.

If an upper bound on the number of I/O objects is known at construction time, this configuration option can be set to ensure that no allocations occur after construction is complete. zero allocations post-construction, obsessed πŸ’œ

  • --test β€” Run the application with _CONTEXT="test". 🧚

This _CONTEXT propagates to imported modules and is meant to trigger the execution of unit tests written in every module from the application. This _CONTEXT won’t propagate to imported external modules. (so like, your app's own modules, yes; the outside world, no πŸ™ˆ)

  • -h, --help β€” Show help and exit. polite queen πŸŽ€
  • --version β€” Show version and exit. πŸ’…

🌈 ENVIRONMENT 🌈

  • EMILUA_COLORS=1 β€” Disable colour support auto-detection and force colour output on log messages. yes force. she's wearing the colours. 🌸
  • EMILUA_COLORS=0 β€” Disable colour support on log messages altogether. monochrome moment πŸ’€
  • EMILUA_PATH β€” A colon-separated list of directories to augment the default search path for modules. The modules from this search set have higher priority than the ones in the default search path. On Windows, the list is semicolon-separated. (semicolons bestie, windows does its own thing 😭)
  • EMILUA_LOG_LEVELS β€” A comma-separated list of log specs. Each spec is a colon-separated pair where second element is a number indicating maximum log level (inclusive) and the first element indicates the affected log category. You can optionally pass a spec containing just the log level that will affect the default category as the first spec. πŸ¦‹

Example:

EMILUA_LOG_LEVELS="2,glib:7,dbus:3" emilua src/init.lua

πŸ‘‘ AUTHOR πŸ‘‘

VinΓ­cius dos Santos Oliveira β€” the legend herself, we stan 🫢


and that's the page bestie ✨ she's Emilua 0.12.1-nixpkgs1, dated 1980-01-01 (iconic date, no notes), and yes the manual name is EMILUA(1) in case you forgot already πŸ’– bye ily πŸŽ€

πŸ“¦ where this page comes from