You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/Introduction.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,17 +3,20 @@ sidebar_position: 0
3
3
---
4
4
5
5
# What is Pluto?
6
-
Pluto is a superset of Lua 5.4 that facilitates
7
-
-**general-purpose programming** thanks to a [greatly enhanced standard library](<category/runtime-environment>) and [pre-existing packages](<Packages#noteworthy-packages-for-pluto>),
8
-
-**accelerated development** through the addition of more than a dozen highly-desired syntaxes such as [switch statements](<New Features/Switch Blocks>), [compound operators](<New Operators#compound-operators>), [string interpolation](<New Features/String Interpolation>), [classes](<New Features/Object-Oriented Programming#class-statement>), [type hinting](<New Features/Type Hinting>), [enums](<New Features/Enumerations>), etc.
6
+
Pluto is a superset of Lua 5.4 designed to assist with general-purpose programming & facilitate cleaner, more streamlined development by:
7
+
- Implementing a [greatly enhanced standard library](<category/runtime-environment>).
8
+
- Adding more than a dozen highly-desired syntaxes such as [switch statements](<New Features/Switch Blocks>), [compound operators](<New Operators#compound-operators>), [string interpolation](<New Features/String Interpolation>), [classes](<New Features/Object-Oriented Programming#class-statement>), [ternary expressions](<New Features/Ternary Expressions>), [enums](<New Features/Enumerations>), etc.
9
+
- A myriad of other improvements, such as [generalized iteration](<Qol Improvements/Generalized Iteraction>), [compiler warnings](<New Features/Compiler Warnings>), and a [preprocessor](<New Features/Preprocessing>).
9
10
10
-
while being remarkably compatible with Lua:
11
-
- Pluto is largely compatible with Lua 5.4 source code, but there is an imperfection:
12
-
- 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](<Compatibility#compatibility-mode>).
13
-
- Pluto is also compatible with Lua 5.4 bytecode. Pluto can execute Lua bytecode, and most Pluto features generate bytecode compatible with Lua.
14
-
- 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.
15
-
- Pluto has been dropped into large communities, and did not break any existing scripts (with compatibility mode enabled then gradually disabled).
16
-
- 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.
11
+
Despite the immense additions, Pluto remains highly compatible with Lua:
12
+
- (Mostly) compatible with Lua 5.4 source code.
13
+
- 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](<Compatibility#compatibility-mode>) to eliminate this concern. Most Lua 5.4 source code will execute flawlessly on Pluto.
14
+
- Bytecode compatible for the Lua version it's based on. (e.g, 5.4.8)
15
+
- Capable of executing Lua bytecode, and also generates bytecode that Lua can execute.
16
+
- 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.
17
+
- 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.
18
+
19
+
With Compatibility Mode, Pluto has been dropped into large communities and did not break any existing scripts.
17
20
18
21
## What does Pluto aspire to be?
19
22
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.
0 commit comments