prosody/teal-src/README.md
2023-03-28 11:42:20 +02:00

1.3 KiB

Teal definitions and sources

This directory contains files written in the Teal language, a typed dialect of Lua. There are two kinds of files, .tl Teal source code and .d.tl type definitions files for modules written in Lua. The later allows writing type-aware Teal using regular Lua or C code.

Setup

The Teal compiler can be installed from LuaRocks using:

luarocks install tl

Checking types

tl check teal-src/prosody/util/example.tl

Some editors and IDEs also have support, see text editor support

Compiling to Lua

GNUmakefile contains a rule for building Lua files from Teal sources. It also applies LuaFormat to make the resulting code more readable, albeit this makes the line numbers no longer match the original Teal source. Sometimes minor luacheck issues remain, such as types being represented as unused tables, which can be removed.

sensible-editor teal-src/prosody/util/example.tl
# Write some code, remember to run tl check
make util/example.lua
sensible-editor util/example.lua
# Apply any minor tweaks that may be needed

Files of note

module.d.tl
Describes the module environment.