Skip to content
A Perl 6 compiler-and-runtime written in Perl 6
Perl6
Find file
Pull request Compare This branch is 13 commits ahead, 19 commits behind master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
doc
lib
logotype
t
.gitignore
LICENSE
META.info
README

README

= Yapsi -- Yet Another Perl Six Implementation

This is an implementation of a Perl 6 compiler-and-runtime in Perl 6.

== Building Yapsi

$ ufo && make

'ufo' is a Makefile generator, and can be found at
<http://github.com/masak/ufo>.

== Features currently available in Yapsi

Right now you can do things like this:

$ bin/yapsi -e 'say 42'
42

$ bin/yapsi -e 'my $a; my $b = { $a = 5 }; $b(); say $a'
5

$ bin/yapsi -e 'my $a = 5; my $b := $a; $b = 41; ++$b; say $a'
42

$ bin/yapsi -e 'my $a = 42; while --$a { say $a }'

In other words, Yapsi currently handles scalar variables, declaration, blocks,
assignment, binding, prefix increment/decrement, if/while, and say.

The compiler also detects syntax errors.

$ bin/yapsi -e 'say say'
Could not parse

== Near-future directions

Things we hope to implement in the immediate future:

* More loops
* Function calls
* Phasers

For more detailed information, see doc/ROADMAP.

== Raison d'être

Besides being useful as a p6-in-p6 implementation, Yapsi also might work as
a fast vehicle for exploring the following underexplored areas of the Perl 6
spec:

* Phasers
* Constant folding
* Early catching of errors
* Increased communication between compiler and runtime

== License

Yapsi is released under Artistic 2.0. See LICENSE.
Something went wrong with that request. Please try again.