Software / code / prosody
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 |
| 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 |