-
Notifications
You must be signed in to change notification settings - Fork 2
/
FAQ
56 lines (51 loc) · 3.14 KB
/
FAQ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
F.A.Q. - Fervently Anticipated Questions
(This package is too new for anyone to have actually asked yet.)
Q: Is this the "official" Perl5-to-Perl6 translator?
A: No, this is a "tinkertoy" project of one of the Perl 6 developers.
However, it might still be the best translator for your needs.
Q: Well, then where *is* the "official" Perl5-to-Perl6 translator?
A: There isn't one (yet?). The one that Larry Wall is working on (called MAD)
does not yet emit Perl 6 output. See Notes/mad.txt for more details.
A: Perlito is a compiler collection that implements a subset of Perl 5 and Perl 6.
If your code's syntax fits into the Perlito subset of Perl 5, then it can emit
a Perl 6 version of your code. YMMV as to whether Perlito or Blue Tiger better
serves your translation needs. Perlito's objectives are quite different
(and much broader) than Blue Tiger; neither is a subset of the other.
See http://www.perlito.org/ .
A: According to Larry at YAPC::NA::2010, the only thing that will be "official"
in the Perl 6 ecosystem is the language specification and its test suite.
Everything else is free to have multiple designs, implementations, etc.
I had asked specifically because he had claimed the translator project for
himself several years ago, and I did not want to step on any toes.
Q: What is Perl::Modernize?
A: Perl::Modernize is the intended namespace for the whole Blue Tiger project.
Even though all the early work has been focused on 5->6, I intend the
first released module in Perl::Modernize to be a 5->5 translator, that
automatically places my() in the correct positions in code that is not
`use strict` compliant.
See my 5-minute Lightning talk, "Modernizing Perl, Automatically", at
http://www.youtube.com/watch?v=Bohxcat4g-A&t=22m10s (22m10s - 27m07s).
Slides here:
http://s3.datasaw.com/yapc/modernizing_perl_automatically.pdf
Q: Why is the project named "Blue Tiger"?
A: For a confluence of reasons:
* The spokesbug for Perl 6 is Camelia, a butterfly.
* This is a migration project.
* A migrating butterfly would be good as a project name.
* The best-known migrating butterfly is the Monarch.
* This was (at the time) not expected to be the primary migration tool.
* The Blue Tiger (Tirumala limniace) is a migratory butterfly that is
not Monarch.
* The initial bulk of the project was written in Auburn, home of the Auburn
_Tigers_ football team, whose colors are orange and
_blue_.
* Much of the code was written overlooking a butterfly garden.
Q: Why didn't you use Perl 6 to write the translator itself?
A: Good question; after all, the new Perl 6 "grammars" are a powerful
object-oriented fusion of Perl 5's regexes and Parse::RecDescent.
However, the few Perl 6 grammars for parsing Perl 5 are all
experimental, and are not mature/stable/complete/API'ed enough to
support this project. Speed is also a big issue during development.
Once something like PPI is written in Perl 6, and Perl 6
implementations get fast enough to not impede the translator
development, then this whole project might be re-written in Perl 6.