moonsharp-devs / moonsharp

An interpreter for the Lua language, written entirely in C# for the .NET, Mono, Xamarin and Unity3D platforms, including handy remote debugger facilities.

Home Page:http://www.moonsharp.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Project abandoned?

memcorrupt opened this issue · comments

@xanathar @LimpingNinja A new GitHub/NuGet release hasn't been pushed out since 2016, despite numerous commits to the repository since the last release.

I am the founder of Luraph, a Lua code obfuscation platform, and one of my customers have brought it to my attention that a bug (since patched in 4f4e6cd) causes my security software to not work with Moonsharp.

Since most developers will bundle Moonsharp based on the last release version, these new bug fixes aren't being widely used. Is this project still maintained, and will a new version be coming out soon?

Cool, sounds similar to #317

Fair call out; I think I got demoralized last time I went up against the pull requests, given the two maintained versions. I will aim to look at some of the core patches in the next two weeks and see if I can contribute a release.

@LimpingNinja we did many changes to the bytecode representation, changed some core classes to structs, reduced their runtime size, allocations and overall dramatically improved performance in WattleScript. Currently, we don't have the space to backport changes upstream (probably the scope of changes is at a scale that can't be backported anyway) but if anyone wants just to run a faster version of MoonSharp, we support Lua mode and are 99% backward compatible (just recompile scripts, bytecode will differ).

Some of the core changes:
https://github.com/WattleScript/wattlescript/blob/main/src/WattleScript.Interpreter/DataTypes/DynValue.cs
https://github.com/WattleScript/wattlescript/blob/main/src/WattleScript.Interpreter/DataTypes/Table.cs
https://github.com/WattleScript/wattlescript/blob/main/src/WattleScript.Interpreter/Execution/VM/OpCode.cs
https://github.com/WattleScript/wattlescript/blob/main/src/WattleScript.Interpreter/Execution/VM/Processor/Processor_InstructionLoop.cs

On top of that, WattleScript itself is a C#/JS flavor added to Lua, with some syntax-breaking changes. The language is roughly specified here: https://github.com/WattleScript/wattlescript/wiki/roadmap and here https://github.com/WattleScript/wattlescript/tree/main/src/WattleScript.Tests/EndToEnd/CLike/SyntaxCLike

Sounds nice, I've pulled it down and am going to test on my own project, are you planning on leaving LUA support at the current level or moving towards the next version?

@LimpingNinja the last two things I wanted to add were gradual typing and LSP for Wattle. We hit a major roadblock with the gradual typing implementation, that's why the last commit is from the previous year. I'm planning to take another shot at it when I feel confident enough about the topic - turns out there's a lot of literature about implementing dynamically typed languages but moving into gradual typing with an existing codebase is pretty hard.
Until that is resolved we have no plans to push for a higher LUA version. However, if you were to adopt Wattle in your project, we accept PRs (or it could be implemented upstream and we can backport the changes).

Given that the last commit appears to be three years ago: Yes.