From c25ae3bc122134d9d32eda9e6b8d72ec745f710d Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Mon, 2 Jun 2025 03:44:17 +0200 Subject: [PATCH 1/6] Expand upon the introduction using some points from Pluto's readme --- docs/Introduction.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index e7c83a6c4..94df49f91 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -3,7 +3,17 @@ sidebar_position: 0 --- # What is Pluto? -Pluto is a superset of Lua 5.4 with a focus on general-purpose programming. While being remarkably compatible with Lua 5.4 source-code & bytecode, it enhances the standard library & adds more than a dozen highly-desired syntaxes such as switch statements, compound operators, classes, class inheritance, string interpolation, type hinting, enums, and so on. +Pluto is a superset of Lua 5.4 that facilitates +- **general-purpose programming** thanks to a [greatly enhanced standard library](), +- **accelerated development** through the addition of more than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [type hinting](), [enums](), etc. + +while being remarkably compatible with Lua: +- Pluto is largely compatible with Lua 5.4 source code, but there is an imperfection: + - Pluto implements new keywords, which can cause conflicts with otherwise normal identifiers such as 'switch', or 'class'. The parser tries to identify what is meant but if that doesn't work, you can [use Compatibility Mode](). +- Pluto is also compatible with Lua 5.4 bytecode. Pluto can execute Lua bytecode, and most Pluto features generate bytecode compatible with Lua. + - There's a small subset of Pluto features which do not generate Lua 5.4 bytecode. This is documented alongside those features, so scripters can vouch to avoid using them when bytecode compatibility is desired. +- Pluto has been dropped into large communities, and did not break any existing scripts (with compatibility mode enabled then gradually disabled). +- Pluto actively rebases with Lua's main repository. We are not a time-frozen dialect. When Lua 5.5 releases, we intend on updating to that. ## What does Pluto aspire to be? Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not. \ No newline at end of file From fbaf7a52fd279bce8fee3739e1b41b35dac3fb24 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Mon, 2 Jun 2025 11:09:52 +0200 Subject: [PATCH 2/6] Note packages in addition to standard library --- docs/Introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index 94df49f91..5f164cf6a 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -4,7 +4,7 @@ sidebar_position: 0 # What is Pluto? Pluto is a superset of Lua 5.4 that facilitates -- **general-purpose programming** thanks to a [greatly enhanced standard library](), +- **general-purpose programming** thanks to a [greatly enhanced standard library]() and [pre-existing packages](), - **accelerated development** through the addition of more than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [type hinting](), [enums](), etc. while being remarkably compatible with Lua: From 5626c11f8546aae6d3dfe5e4478dd162f1e3fda8 Mon Sep 17 00:00:00 2001 From: well-in-that-case <98286404+well-in-that-case@users.noreply.github.com> Date: Tue, 3 Jun 2025 19:44:51 -0400 Subject: [PATCH 3/6] Rework the redux --- docs/Introduction.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index 5f164cf6a..26ac0e8ab 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -3,17 +3,20 @@ sidebar_position: 0 --- # What is Pluto? -Pluto is a superset of Lua 5.4 that facilitates -- **general-purpose programming** thanks to a [greatly enhanced standard library]() and [pre-existing packages](), -- **accelerated development** through the addition of more than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [type hinting](), [enums](), etc. +Pluto is a superset of Lua 5.4 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development by: +- Implementing a [greatly enhanced standard library](). +- Adding more than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [ternary expressions](), [enums](), etc. +- A myriad of other improvements, such as [generalized iteration](), [compiler warnings](), and a [preprocessor](). -while being remarkably compatible with Lua: -- Pluto is largely compatible with Lua 5.4 source code, but there is an imperfection: - - Pluto implements new keywords, which can cause conflicts with otherwise normal identifiers such as 'switch', or 'class'. The parser tries to identify what is meant but if that doesn't work, you can [use Compatibility Mode](). -- Pluto is also compatible with Lua 5.4 bytecode. Pluto can execute Lua bytecode, and most Pluto features generate bytecode compatible with Lua. - - There's a small subset of Pluto features which do not generate Lua 5.4 bytecode. This is documented alongside those features, so scripters can vouch to avoid using them when bytecode compatibility is desired. -- Pluto has been dropped into large communities, and did not break any existing scripts (with compatibility mode enabled then gradually disabled). -- Pluto actively rebases with Lua's main repository. We are not a time-frozen dialect. When Lua 5.5 releases, we intend on updating to that. +Despite the immense additions, Pluto remains highly compatible with Lua: +- (Mostly) compatible with Lua 5.4 source code. + - Our only breakage is the addition of new keywords, which causes conflicts when those keywords are used as identifiers. However, Pluto leverages parser heuristics and — in cases where parser heuristics fail — [Compatibility Mode]() to eliminate this concern. Most Lua 5.4 source code will execute flawlessly on Pluto. +- Bytecode compatible for the Lua version it's based on. (e.g, 5.4.8) + - Capable of executing Lua bytecode, and also generates bytecode that Lua can execute. + - Most of Pluto's features generate bytecode that is backwards-compatible with Lua. New features that are not bytecode backwards-compatible will say so in their documentation. +- Actively rebases with Lua's main repository. We are not a time-frozen dialect. When Lua 5.5 releases, we intend on updating to that. + +With Compatibility Mode, Pluto has been dropped into large communities and did not break any existing scripts. ## What does Pluto aspire to be? Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not. \ No newline at end of file From bc23b96d0c156a785ef765dadc591f5bcd614601 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Wed, 4 Jun 2025 01:54:54 +0200 Subject: [PATCH 4/6] Re-add packages link --- docs/Introduction.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index 26ac0e8ab..71d33b2e1 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -3,9 +3,10 @@ sidebar_position: 0 --- # What is Pluto? -Pluto is a superset of Lua 5.4 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development by: -- Implementing a [greatly enhanced standard library](). -- Adding more than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [ternary expressions](), [enums](), etc. +Pluto is a superset of Lua 5.4 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development via: +- A [greatly enhanced standard library](). +- [Pre-existing packages](). +- More than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [ternary expressions](), [enums](), etc. - A myriad of other improvements, such as [generalized iteration](), [compiler warnings](), and a [preprocessor](). Despite the immense additions, Pluto remains highly compatible with Lua: From 94bb1b4735d8b4bb1652a0a8a39aaf9b1a193158 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Wed, 4 Jun 2025 01:58:04 +0200 Subject: [PATCH 5/6] More concise about bytecode compat --- docs/Introduction.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index 71d33b2e1..7ee714edd 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -12,9 +12,8 @@ Pluto is a superset of Lua 5.4 designed to assist with general-purpose programmi Despite the immense additions, Pluto remains highly compatible with Lua: - (Mostly) compatible with Lua 5.4 source code. - Our only breakage is the addition of new keywords, which causes conflicts when those keywords are used as identifiers. However, Pluto leverages parser heuristics and — in cases where parser heuristics fail — [Compatibility Mode]() to eliminate this concern. Most Lua 5.4 source code will execute flawlessly on Pluto. -- Bytecode compatible for the Lua version it's based on. (e.g, 5.4.8) - - Capable of executing Lua bytecode, and also generates bytecode that Lua can execute. - - Most of Pluto's features generate bytecode that is backwards-compatible with Lua. New features that are not bytecode backwards-compatible will say so in their documentation. +- Reads and writes Lua 5.4 bytecode meaning it's forwards- and backwards-compatible. + - Only some Pluto features generate backwards-incompatible bytecode, but they will say so in their documentation. - Actively rebases with Lua's main repository. We are not a time-frozen dialect. When Lua 5.5 releases, we intend on updating to that. With Compatibility Mode, Pluto has been dropped into large communities and did not break any existing scripts. From fa37779d3047acb01ab46cb0541999651c155481 Mon Sep 17 00:00:00 2001 From: Sainan <63328889+Sainan@users.noreply.github.com> Date: Wed, 4 Jun 2025 01:58:42 +0200 Subject: [PATCH 6/6] Less space-y --- docs/Introduction.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/Introduction.md b/docs/Introduction.md index 7ee714edd..7d12f6451 100644 --- a/docs/Introduction.md +++ b/docs/Introduction.md @@ -4,8 +4,7 @@ sidebar_position: 0 # What is Pluto? Pluto is a superset of Lua 5.4 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development via: -- A [greatly enhanced standard library](). -- [Pre-existing packages](). +- A [greatly enhanced standard library]() and [pre-existing packages](). - More than a dozen highly-desired syntaxes such as [switch statements](), [compound operators](), [string interpolation](), [classes](), [ternary expressions](), [enums](), etc. - A myriad of other improvements, such as [generalized iteration](), [compiler warnings](), and a [preprocessor]().