pperl
pperl is a next-generation Perl 5 platform written in Rust, targeting Perl 5.42+ compatibility.
Goals
- Auto-Parallelization - Automatic parallel
map,grep,for,whileloops via Rayon work-stealing - JIT Compilation - Native code generation via Cranelift for hot loops (up to 76x faster than perl5)
- Pure Perl Viability - Fast enough that XS becomes optional
Architecture Overview
flowchart LR
subgraph Input
A[Perl Source]
end
subgraph Parser
B[Lexer] --> C[Parser]
C --> D[AST]
end
subgraph Compiler
D --> E[Codegen]
E --> F[OpArena]
end
subgraph Runtime
F --> G[Interpreter]
G --> H[PP Dispatch]
end
subgraph Output
H --> I[Result]
end
A --> B
Quick Start
# Run a script
pperl script.pl
# Run one-liner
pperl -e 'print "Hello, World!\n"'
# Check syntax only
pperl -c script.pl
Compatibility
pperl aims for high compatibility with Perl 5.42+. See Differences from Perl 5 for known incompatibilities.
Platform Support
- Linux only (any architecture)
- No Windows, macOS, or other platforms