Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 57 lines (35 sloc) 1.233 kb
7a42594 @masak initial commit
authored
1 = Yapsi -- Yet Another Perl Six Implementation
2
b55a18e @masak [README] belatedly updated
authored
3 This is an implementation of a Perl 6 compiler-and-runtime in Perl 6.
7a42594 @masak initial commit
authored
4
b74b719 @svatsan Add more info about building yapsi and make the
svatsan authored
5 == Building Yapsi
6
b55a18e @masak [README] belatedly updated
authored
7 $ ufo && make
b74b719 @svatsan Add more info about building yapsi and make the
svatsan authored
8
747d9d6 @masak [README] a few updates
authored
9 'ufo' is a Makefile generator, and can be found at
10 <http://github.com/masak/ufo>.
11
b74b719 @svatsan Add more info about building yapsi and make the
svatsan authored
12 == Features currently available in Yapsi
13
7a42594 @masak initial commit
authored
14 Right now you can do things like this:
15
e4ed4ab @masak moved yapsi -> bin/yapsi
authored
16 $ bin/yapsi -e 'say 42'
7a42594 @masak initial commit
authored
17 42
18
747d9d6 @masak [README] a few updates
authored
19 $ bin/yapsi -e 'my $a; my $b = { $a = 5 }; $b(); say $a'
7a42594 @masak initial commit
authored
20 5
21
e4ed4ab @masak moved yapsi -> bin/yapsi
authored
22 $ bin/yapsi -e 'my $a = 5; my $b := $a; $b = 41; ++$b; say $a'
7a42594 @masak initial commit
authored
23 42
24
e4ed4ab @masak moved yapsi -> bin/yapsi
authored
25 $ bin/yapsi -e 'my $a = 42; while --$a { say $a }'
758338d @masak [README] updated
authored
26
747d9d6 @masak [README] a few updates
authored
27 In other words, Yapsi currently handles scalar variables, declaration, blocks,
758338d @masak [README] updated
authored
28 assignment, binding, prefix increment/decrement, if/while, and say.
7a42594 @masak initial commit
authored
29
b55a18e @masak [README] belatedly updated
authored
30 The compiler also detects syntax errors.
7a42594 @masak initial commit
authored
31
e4ed4ab @masak moved yapsi -> bin/yapsi
authored
32 $ bin/yapsi -e 'say say'
7a42594 @masak initial commit
authored
33 Could not parse
34
35 == Near-future directions
36
37 Things we hope to implement in the immediate future:
38
758338d @masak [README] updated
authored
39 * More loops
7a42594 @masak initial commit
authored
40 * Function calls
758338d @masak [README] updated
authored
41 * Phasers
7a42594 @masak initial commit
authored
42
6758414 @masak [README] e with a ^ on it
authored
43 == Raison d'être
7a42594 @masak initial commit
authored
44
45 Besides being useful as a p6-in-p6 implementation, Yapsi also might work as
46 a fast vehicle for exploring the following underexplored areas of the Perl 6
47 spec:
48
49 * Phasers
50 * Constant folding
51 * Early catching of errors
52 * Increased communication between compiler and runtime
53
54 == License
55
56 Yapsi is released under Artistic 2.0. See LICENSE.
Something went wrong with that request. Please try again.