Εισαγωγή#

Το pperl είναι μια πλατφόρμα Perl 5 νέας γενιάς γραμμένη σε Rust, με στόχο τη συμβατότητα με την Perl 5.42+.

Στόχοι#

  • Αυτόματη παραλληλοποίηση - Αυτόματη παραλληλοποίηση των map, grep, βρόχων for, while μέσω work-stealing του Rayon

  • Μεταγλώττιση JIT - Παραγωγή εγγενούς κώδικα μέσω του Cranelift για θερμούς βρόχους (έως 76x ταχύτερη από το perl5)

  • Βιωσιμότητα Pure Perl - Αρκετά γρήγορο ώστε το XS να γίνεται προαιρετικό

Επισκόπηση αρχιτεκτονικής#

        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
    

Γρήγορη εκκίνηση#

# Run a script
pperl script.pl

# Run one-liner
pperl -e 'print "Hello, World!\n"'

# Check syntax only
pperl -c script.pl

Συμβατότητα#

Το pperl στοχεύει σε υψηλή συμβατότητα με την Perl 5.42+.

Υποστήριξη πλατφορμών#

  • Μόνο Linux (οποιαδήποτε αρχιτεκτονική)

  • Όχι Windows, macOS ή άλλες πλατφόρμες