File

teal-src/README.md @ 13369:13a27043cd0f

mod_user_account_management: Add support for soft-deletion of accounts via IBR When registration_delete_grace_period is set, accounts will be disabled for the specified grace period before they are fully deleted. During the grace period, accounts can be restored with the user:restore() shell command. The primary purpose is to prevent accidental or malicious deletion of a user's account, which is traditionally very easy for any XMPP client to do with a single stanza.
author Matthew Wild <mwild1@gmail.com>
date Thu, 30 Nov 2023 13:48:43 +0000
parent 13005:1167aaf1aa1f
line wrap: on
line source

# Teal definitions and sources

This directory contains files written in the
[Teal](https://github.com/teal-language/tl) 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:

```bash
luarocks install tl
```

## Checking types

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

Some editors and IDEs also have support, see [text editor
support](https://github.com/teal-language/tl#text-editor-support)


## Compiling to Lua

`GNUmakefile` contains a rule for building Lua files from Teal sources.
It also applies [LuaFormat](https://github.com/Koihik/LuaFormatter) 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.

```bash
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.