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

MoonSharp / the future of Lua #2260

Open
YoshiRulz opened this issue Jul 31, 2020 · 4 comments
Open

MoonSharp / the future of Lua #2260

YoshiRulz opened this issue Jul 31, 2020 · 4 comments
Labels
Enhancement For feature requests or possible improvements Meta Relating to code organisation or to things that aren't code re: Lua API/scripting Relating to EmuHawk's Lua API (not the Lua Console) re: Multiplatform Relating to the Linux and macOS ports (Mono Framework, and eventually .NET Core) Tool: Lua Console Relating to the Lua Console (not EmuHawk's Lua API)

Comments

@YoshiRulz
Copy link
Member

YoshiRulz commented Jul 31, 2020

(going to flesh this out more later the can has been kicked down the road now that Lua works under Mono)

(see existing discussion in #971 (comment), #1415, #1422, and #1491, and also in IRC logs if you have them)

options to choose from:

  • Lua
    • (status quo) NLua w/ same API surface
    • MoonSharp w/ same API surface (fully managed, but it's still only up to Lua 5.2)
    • Pluto (fork of Lua 5.4, probably no C# bindings)
    • Roblox' Luau w/ same API surface (fork of Lua 5.1 with more or fewer features compared to Lua 5.4, notably no integers or stdlib io, also I doubt there are C# bindings)
    • some form of Lua w/ new API surface
  • C#
    • Roslyn embedding is heavy but functional, case study: Space Engineers
  • I'll make my own C#, with blackjack and hookers!
    • I've considered forking the Roslyn C# compiler to create a new .NET language, but C# is becoming increasingly like my vision with every update. So see above re: embedded C#.
  • Kotlin
    • blocked by either: 1. Xamarin merger finally adding JVM compat to .NET 8+ (and then us moving to .NET 8+), or
    • 2. Kotlin compiler getting an MSIL target (unlikely)
  • Python (see Python support? #1243)
  • IronRuby (dead)
  • Rune
    • blocked by unfinished C FFI (only Rust hosts can spawn a Rune VM for now)
@YoshiRulz YoshiRulz added re: Lua API/scripting Relating to EmuHawk's Lua API (not the Lua Console) re: Multiplatform Relating to the Linux and macOS ports (Mono Framework, and eventually .NET Core) Meta Relating to code organisation or to things that aren't code Tool: Lua Console Relating to the Lua Console (not EmuHawk's Lua API) labels Jul 31, 2020
@YoshiRulz
Copy link
Member Author

(reserved because I can imagine this thread getting real long)

@CasualPokePlayer

This comment was marked as resolved.

@YoshiRulz

This comment was marked as resolved.

@CasualPokePlayer
Copy link
Member

  • Pluto (fork of Lua 5.4, probably no C# bindings)

It would appear the API (as far as bindings are concerned) is identical to Lua 5.4, so simply dropping in a different .dll/.so would suffice to "support" this (hell you could make it literally a switch in the config whether you want Pluto or pure Lua 5.4)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement For feature requests or possible improvements Meta Relating to code organisation or to things that aren't code re: Lua API/scripting Relating to EmuHawk's Lua API (not the Lua Console) re: Multiplatform Relating to the Linux and macOS ports (Mono Framework, and eventually .NET Core) Tool: Lua Console Relating to the Lua Console (not EmuHawk's Lua API)
Projects
None yet
Development

No branches or pull requests

2 participants