|
|
@@ -129,26 +129,26 @@ for a quick overview of the supported features.
|
|
|
|
|
|
| Name | Example | Supported |
|
|
|
| --------------- | ------------------------------- | --------- |
|
|
|
-| If Else | `if..else..elif` | ✅ |
|
|
|
-| Loop | `for/while/break/continue` | ✅ |
|
|
|
-| Function | `def f(x,*args,y=1):` | ✅ |
|
|
|
-| Subclass | `class A(B):` | ✅ |
|
|
|
-| List | `[1, 2, 'a']` | ✅ |
|
|
|
-| ListComp | `[i for i in range(5)]` | ✅ |
|
|
|
-| Slice | `a[1:2], a[:2], a[1:]` | ✅ |
|
|
|
-| Tuple | `(1, 2, 'a')` | ✅ |
|
|
|
-| Dict | `{'a': 1, 'b': 2}` | ✅ |
|
|
|
-| F-String | `f'value is {x}'` | ✅ |
|
|
|
-| Unpacking | `a, b = 1, 2` | ✅ |
|
|
|
-| Star Unpacking | `a, *b = [1, 2, 3]` | ✅ |
|
|
|
-| Exception | `raise/try..catch..finally` | ✅ |
|
|
|
-| Dynamic Code | `eval()/exec()` | ✅ |
|
|
|
-| Reflection | `hasattr()/getattr()/setattr()` | ✅ |
|
|
|
-| Import | `import/from..import` | ✅ |
|
|
|
-| Context Block | `with <expr> as <id>:` | ✅ |
|
|
|
-| Type Annotation | `def f(a:int, b:float=1)` | ✅ |
|
|
|
-| Generator | `yield i` | ✅ |
|
|
|
-| Decorator | `@cache` | ✅ |
|
|
|
+| If Else | `if..else..elif` | ✅ |
|
|
|
+| Loop | `for/while/break/continue` | ✅ |
|
|
|
+| Function | `def f(x,*args,y=1):` | ✅ |
|
|
|
+| Subclass | `class A(B):` | ✅ |
|
|
|
+| List | `[1, 2, 'a']` | ✅ |
|
|
|
+| ListComp | `[i for i in range(5)]` | ✅ |
|
|
|
+| Slice | `a[1:2], a[:2], a[1:]` | ✅ |
|
|
|
+| Tuple | `(1, 2, 'a')` | ✅ |
|
|
|
+| Dict | `{'a': 1, 'b': 2}` | ✅ |
|
|
|
+| F-String | `f'value is {x}'` | ✅ |
|
|
|
+| Unpacking | `a, b = 1, 2` | ✅ |
|
|
|
+| Star Unpacking | `a, *b = [1, 2, 3]` | ✅ |
|
|
|
+| Exception | `raise/try..catch..finally` | ✅ |
|
|
|
+| Dynamic Code | `eval()/exec()` | ✅ |
|
|
|
+| Reflection | `hasattr()/getattr()/setattr()` | ✅ |
|
|
|
+| Import | `import/from..import` | ✅ |
|
|
|
+| Context Block | `with <expr> as <id>:` | ✅ |
|
|
|
+| Type Annotation | `def f(a:int, b:float=1)` | ✅ |
|
|
|
+| Generator | `yield i` | ✅ |
|
|
|
+| Decorator | `@cache` | ✅ |
|
|
|
|
|
|
## Performance
|
|
|
|
|
|
@@ -159,17 +159,17 @@ See https://pocketpy.dev/performance/ for details.
|
|
|
|
|
|
And these are the results of the primes benchmark on Intel i5-12400F, WSL (Ubuntu 20.04 LTS), which *roughly* reflects the performance among c++, lua, pkpy and cpython.
|
|
|
|
|
|
-| name | version | time | file |
|
|
|
-| ------- | ------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
-| c++ | gnu++11 | `0.104s ■□□□□□□□□□□□□□□□` | [benchmarks/primes.cpp](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.cpp) |
|
|
|
-| lua | 5.3.3 | `1.576s ■■■■■■■■■□□□□□□□` | [benchmarks/primes.lua](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.lua) |
|
|
|
-| pkpy | 1.2.7 | `2.385s ■■■■■■■■■■■■■□□□` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) |
|
|
|
-| cpython | 3.8.10 | `2.871s ■■■■■■■■■■■■■■■■` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) |
|
|
|
+| name | version | time | file |
|
|
|
+| ---- | ---- | ---- | ---- |
|
|
|
+| c++ | gnu++11 | `0.104s ■□□□□□□□□□□□□□□□` | [benchmarks/primes.cpp](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.cpp) |
|
|
|
+| lua | 5.3.3 | `1.576s ■■■■■■■■■□□□□□□□` | [benchmarks/primes.lua](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.lua) |
|
|
|
+| pkpy | 1.2.7 | `2.385s ■■■■■■■■■■■■■□□□` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) |
|
|
|
+| cpython | 3.8.10 | `2.871s ■■■■■■■■■■■■■■■■` | [benchmarks/primes.py](https://github.com/pocketpy/pocketpy/blob/9481d653b60b81f4590a4d48f2be496f6962261e/benchmarks/primes.py) |
|
|
|
|
|
|
## Used By
|
|
|
|
|
|
| | Description |
|
|
|
-| --------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
|
|
+|-----------------------------------------------------------------|--------------------------------------------------------------------------|
|
|
|
| [TIC-80](https://github.com/nesbox/TIC-80) | TIC-80 is a fantasy computer for making, playing and sharing tiny games. |
|
|
|
| [MiniPythonIDE](https://github.com/CU-Production/MiniPythonIDE) | A python ide base on pocketpy |
|
|
|
| [py-js](https://github.com/shakfu/py-js) | Python3 externals for Max / MSP |
|