mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-21 12:00:18 +00:00
41 lines
1.0 KiB
Markdown
41 lines
1.0 KiB
Markdown
---
|
|
icon: home
|
|
label: Welcome
|
|
---
|
|
|
|
# Welcome to PocketPy
|
|
|
|
PocketPy is a lightweight(~8000 LOC) Python interpreter for game engines.
|
|
|
|
It is extremely easy to embed. Including a compiler, optimizer and bytecode virtual machine. All of them are available in a single header file `pocketpy.h`, without external dependencies.
|
|
|
|
## What it looks like
|
|
|
|
```python
|
|
def is_prime(x):
|
|
if x < 2:
|
|
return False
|
|
for i in range(2, x):
|
|
if x % i == 0:
|
|
return False
|
|
return True
|
|
|
|
primes = [i for i in range(2, 20) if is_prime(i)]
|
|
print(primes)
|
|
# [2, 3, 5, 7, 11, 13, 17, 19]
|
|
```
|
|
|
|
## Source Integration
|
|
|
|
We recommend to use our pre-built `pocketpy.h` in [Github Release](https://github.com/blueloveTH/pocketpy/releases/latest) page.
|
|
To compile it with your project, these flags must be set:
|
|
|
|
+ `--std=c++17` flag must be set
|
|
+ Exception must be enabled
|
|
+ RTTI is not required
|
|
|
|
!!!
|
|
You can use `g++`, `cl.exe` or `clang++` to compile your project.
|
|
For maximum performance, we recommend to `clang++` with `-O2` flag.
|
|
`clang++` can produce faster binary than `g++` or `cl.exe`.
|
|
!!! |