LuxLang / lux

The Lux Programming Language
Mozilla Public License 2.0
1.69k stars 50 forks source link

There needs to be a features matrix for each backend #65

Closed atilde closed 3 months ago

atilde commented 2 years ago

Not all features are supported on all backends. Most notably, I've seen Lua omitted in several places. There needs to be a features matrix that users can refer to to see what stdlib features are available to each backend.

eduardoejp commented 2 years ago

It depends on what you mean by "feature".

All fundamental features of Lux are supported by all back-ends.

If that weren't the case, the back-end wouldn't exist since it couldn't support the standard library, which is were Lux is truly embodied (more-so than the compilers themselves).

With that said, there are some differences: Example #1: Lux/JVM features multi-core concurrency, since the JVM provides it. But the scripting languages don't. Example #2: Some forms of IO cannot be provided by the Lux stdlib for Lua because Lua has no standard way of providing them, unlike the other platforms.

These things are not fundamental to Lux, but they are notable differences.

So, sure. I guess I can review what divergences there are and make a little table so people don't become confused when they see something missing for one of the back-ends.

jgarvin commented 2 years ago

Users who aren't totally familiar with each platform might not realize that Lux isn't going to implement a low latency parallel compacting GC for them ;)

I'd maybe suggest: Red -- Not supported because platform can't Yellow -- Not supported because Lux hasn't implemented support Green -- Supported

eduardoejp commented 2 years ago

@jgarvin Thank you for the color coding suggestion. It's fantastic.