Encrypted Bytecode/string.dump and bytecode loading support
SoniEx2 opened this issue ยท 1 comments
We have a very slow programming language compiler implemented in pure Lua that compiles to Lua (source code) and given how painfully slow it is and how often CC-Tweaked programs are short-lived, it would be useful if we could precompile said programs!
Benefits of encrypted bytecode:
- Not portable. At all. The bytecode would not be compatible across in-game computers, even within the same world.
- Encryption allows to safely use "unsafe" serialization technologies, like ObjectInputStream.
- Doesn't require us to rewrite our programming language's load() function, which currently checks for bytecode by comparing the first byte of string.dump:
is_bytecode = data:sub(1,1) == string.dump(function() end):sub(1,1)
Disadvantages include:
- Cryptography can be hard to get right.
- May be a lot of work, especially if the only real benefit is that the entity opening this issue can avoid rewriting its load function... (But hey, does it hurt to ask...?)