Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Look into running SILE under Ravi / Luau / Pluto #725

Open
alerque opened this issue Nov 30, 2019 · 4 comments
Open

Look into running SILE under Ravi / Luau / Pluto #725

alerque opened this issue Nov 30, 2019 · 4 comments
Assignees
Labels
enhancement Software improvement or feature request todo
Milestone

Comments

@alerque
Copy link
Member

alerque commented Nov 30, 2019

Ravi is a derivative of Lua 5.3 with optional static typing and JIT support. Given how long in the tooth LuaJIT has become (see #536) this is something to keep an eye on for future work. If we were to have an optional build system that bundled a Lua engine into SILE builds, this might be a good one to do that with.

@alerque alerque added enhancement Software improvement or feature request todo labels Nov 30, 2019
@OlivierNicole
Copy link
Member

Ravi is an interesting effort, but the optional types seem pretty basic and would not allow the kind of things that of checks that you describe in #871.

The situation is frustrating because there are many beautiful projects out there, but none gathers all the characteristics that we would like. I have recently spotted Luau, which is a dialect with an impressive gradual type system that seems to match the academic state of the art (and since it's gradual, type annotations remain optional).

Luau is compatible with Lua 5.1, but alas cannot be used as a drop-in replacement because Roblox created it to be sandboxed, and therefore some critical libraries like os or io are not implemented. If I understand correctly, there are also slight differences in the C API. As a consequence, before using Luau as a Lua replacement, someone would need to put in the work of implementing the missing modules and ironing out the API differences somehow, in order to be able to use the Lua libraries that we depend on. Someone has done part of this work so it seems entirely in the realm of the possible, but just Another Thing That Takes Time To Do™.

@OlivierNicole
Copy link
Member

OlivierNicole commented Aug 26, 2022

P.S. another interesting characteristics of Luau is its performance, too: it advertises performance nearly as good as LuaJIT's, even though not using JIT compilation.

@Omikhleia
Copy link
Member

Close (Rejected):
This issue has not seen any activity in several years (4+) = Closed by inactivity.

@alerque
Copy link
Member Author

alerque commented Mar 20, 2024

I really do appreciate the issue cleanup, but I've referenced this issue as recently as this month. Ravi isn't particularly interesting at this point, but Luau is. I still plan to look into this after the dust settles on embedding the current supported suite of Luas.

@alerque alerque reopened this Mar 20, 2024
@alerque alerque changed the title Look into running SILE under Ravi Look into running SILE under Ravi / Luau Mar 20, 2024
@alerque alerque self-assigned this Apr 15, 2024
@alerque alerque added this to the v0.x.y milestone Apr 15, 2024
@alerque alerque changed the title Look into running SILE under Ravi / Luau Look into running SILE under Ravi / Luau / Pluto Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Software improvement or feature request todo
Projects
None yet
Development

No branches or pull requests

3 participants