author | Kim Alvefur <zash@zash.se> |
Fri, 21 Jul 2023 18:30:06 +0200 | |
changeset 13240 | 9c72f93b7a02 |
parent 13009 | 1167aaf1aa1f |
permissions | -rw-r--r-- |
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 |