IMPORTANT: due to a drive failure, as of 13-Mar-2021, the Mercurial repository had to be re-mirrored, which changed every commit SHA. The old SHAs and trees are backed up in the vault branches. Please migrate to the new branches as soon as you can.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
prosody/teal-src
Kim Alvefur 2ef0e122fd util.xtemplate: Use same argument order in filters even without 'args' 1 year ago
..
prosody util.xtemplate: Use same argument order in filters even without 'args' 1 year ago
README.md
module.d.tl

README.md

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.