teal-src/README.md
author Kim Alvefur <zash@zash.se>
Wed, 27 Mar 2024 19:33:11 +0100
changeset 13471 c2a476f4712a
parent 13009 1167aaf1aa1f
permissions -rw-r--r--
util.startup: Fix exiting on pidfile trouble prosody.shutdown() relies on prosody.main_thread, which has not been set yet at this point. Doing a clean shutdown might actually be harmful in case it tears down things set up by the conflicting Prosody, such as the very pidfile we were looking at. Thanks again SigmaTel71 for noticing
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13006
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
# Teal definitions and sources
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
This directory contains files written in the
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
[Teal](https://github.com/teal-language/tl) language, a typed dialect of
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
Lua.  There are two kinds of files, `.tl` Teal source code and `.d.tl`
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
type definitions files for modules written in Lua. The later allows
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
writing type-aware Teal using regular Lua or C code.
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
## Setup
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
The Teal compiler can be installed from LuaRocks using:
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
13008
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13006
diff changeset
    13
```bash
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13006
diff changeset
    14
luarocks install tl
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13006
diff changeset
    15
```
13006
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
## Checking types
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
```bash
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
tl check teal-src/prosody/util/example.tl
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
```
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
Some editors and IDEs also have support, see [text editor
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    24
support](https://github.com/teal-language/tl#text-editor-support)
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
13009
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    27
## Compiling to Lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    28
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    29
`GNUmakefile` contains a rule for building Lua files from Teal sources.
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    30
It also applies [LuaFormat](https://github.com/Koihik/LuaFormatter) to
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    31
make the resulting code more readable, albeit this makes the line
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    32
numbers no longer match the original Teal source.  Sometimes minor
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    33
`luacheck` issues remain, such as types being represented as unused
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    34
tables, which can be removed.
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    35
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    36
```bash
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    37
sensible-editor teal-src/prosody/util/example.tl
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    38
# Write some code, remember to run tl check
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    39
make util/example.lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    40
sensible-editor util/example.lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    41
# Apply any minor tweaks that may be needed
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    42
```
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13008
diff changeset
    43
13006
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    44
## Files of note
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    45
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    46
`module.d.tl`
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    47
:	Describes the module environment.
d8e2b995f975 teal-src: Add a README with a few pointers to get started
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    48