Update compatibility.md

This commit is contained in:
Arseny Kapoulkine 2021-04-21 09:56:43 -07:00 committed by GitHub
parent ee6f520e08
commit 0b58eaf6a3
Signed by: DevComp
GPG key ID: 4AEE18F83AFDEB23

View file

@ -68,6 +68,7 @@ Sandboxing challenges are [covered in the dedicated section](sandbox).
| `%g` in patterns | ✔️ | |
| `\0` in patterns | ✔️ | |
| `bit32` library | ✔️ | |
| `string.gsub` is stricter about using `%` on special characters only | ✔️ | |
Two things that are important to call out here are various new metamethods for tables and yielding in metamethods. In both cases, there are performance implications to supporting this - our implementation is *very* highly tuned for performance, so any changes that affect the core fundamentals of how Lua works have a price. To support yielding in metamethods we'd need to make the core of the VM more involved, since almost every single "interesting" opcode would need to learn how to be resumable - which also complicates future JIT/AOT story. Metamethods in general are important for extensibility, but very challenging to deal with in implementation, so we err on the side of not supporting any new metamethods unless a strong need arises.