Introduction#

pperl is a next-generation Perl 5 platform written in Rust, targeting Perl 5.42+ compatibility.

Goals#

  • Auto-Parallelization - Automatic parallel map, grep, for, while loops 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+.

Platform Support#

  • Linux only (any architecture)

  • No Windows, macOS, or other platforms