Annotate

teal-src/README.md @ 13765:7c57fb2ffbb0 13.0

mod_websocket: Merge session close handling changes from mod_c2s (bug fixes) This should bring some fixes and general robustness that mod_websocket had missed out on. The duplicated code here is not at all ideal. To prevent this happening again, we should figure out how to have the common logic in a single place, while still being able to do the websocket-specific parts that we need. The main known bug that this fixes is that it's possible for a session to get into a non-destroyable state. For example, if we try to session:close() a hibernating session, then session.conn is nil and the function will simply return without doing anything. In the mod_c2s code we already handle this, and just destroy the session. But if a hibernating websocket session is never resumed or becomes non-resumable, it will become immortal! By merging the fix from mod_c2s, the session should now be correctly destroyed.
author Matthew Wild <mwild1@gmail.com>
date Tue, 11 Mar 2025 18:44:40 +0000
parent 13005:1167aaf1aa1f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13002
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
13004
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13002
diff changeset
13 ```bash
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13002
diff changeset
14 luarocks install tl
47efa93ea859 teal-src/README: Tweak markdown syntax
Kim Alvefur <zash@zash.se>
parents: 13002
diff changeset
15 ```
13002
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
13005
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
27 ## Compiling to Lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
28
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
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: 13004
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: 13004
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: 13004
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: 13004
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: 13004
diff changeset
34 tables, which can be removed.
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
35
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
36 ```bash
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
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: 13004
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: 13004
diff changeset
39 make util/example.lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
40 sensible-editor util/example.lua
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
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: 13004
diff changeset
42 ```
1167aaf1aa1f teal-src/README: Words on Compiling to Lua
Kim Alvefur <zash@zash.se>
parents: 13004
diff changeset
43
13002
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