Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 47 lines (38 sloc) 2.361 kb
1cc6bfe Carl Mäsak Initial commit
authored
1 == Glacial Grammar Engine -- like PGE, but slower
2
3 Ok, so there was some guy called Patrick who implemented a thing called
81bf4d7 Carl Mäsak [README] modifications; added STATUS and COOLTHINGS
authored
4 PGE, right? It was a grammar engine written in PIR, the assembly language of
5 Parrot. PGE was the first thing in the known universe that could parse Perl 6
6 regexes. It was then plugged into PCT, a toolkit for building HLL (Higher-Level
7 Language) compilers for Parrot. Rakudo, a Perl 6 compiler, was built on
8 top of PCT.
1cc6bfe Carl Mäsak Initial commit
authored
9
52e20ba Carl Mäsak [README] tiny tweaks, uniform column-width
authored
10 In short, a whole lot of abstractions, and in the bottom of it all, driving
4a955a7 Carl Mäsak [README] a number of smallish updates
authored
11 the parser, sat PGE. Humming along, it did all the daily parsing we now
52e20ba Carl Mäsak [README] tiny tweaks, uniform column-width
authored
12 take, more or less, for granted.
1cc6bfe Carl Mäsak Initial commit
authored
13
14 Patrick was once caught saying that given the little time he had spent
52e20ba Carl Mäsak [README] tiny tweaks, uniform column-width
authored
15 optimizing PGE, he was surprised it wasn't actually much slower. What he
16 might not have guessed was that this off-hand statement could be read as a
17 challenge: PGE surprisingly not slow enough? We know a number of ways to
18 fix that...
19
20 GGE, the Glacial Grammar Engine, is a faithful port of PGE from PIR to Perl
c48c45b Carl Mäsak [README] updates
authored
21 6. It tries to be implementation-independent, and it also attempts (though
22 perhaps not too convincingly) to be a drop-in replacement for PGE. Most
23 importantly, besides being written in Perl 6 rather than PIR, it brings one new
24 essential feature to the table: it's slower. Much slower... but still quite
25 cool. Hence the name.
52e20ba Carl Mäsak [README] tiny tweaks, uniform column-width
authored
26
27 The "though perhaps not too convincingly" reservation to GGE attempting to
28 be a drop-in replacement for PGE stems from the fact that now that regular
4a955a7 Carl Mäsak [README] a number of smallish updates
authored
29 expressions _are_ in fact available in the Perl 6 language (through PGE
30 in the case of the old-generation Rakudo, or nqp-rx in the case of the
31 new-generation Rakudo), it's sometimes too tempting not to use them. Of
32 course, it would be a fun challenge in itself to restrict the writing of
33 GGE to a strict subset of Perl 6 -- one not using any regexes at all,
34 directly or indirectly -- but that is not the kind of fun optimized for in
35 this case. Future teams of developers are welcome to optimize for that kind
c48c45b Carl Mäsak [README] updates
authored
36 of fun, should they wish. The instances of conscious transgressions in GGE are
37 listed in docs/REGEXES_IN_GGE.
f47b493 Carl Mäsak [README] s/aim/optimize/g. added ref to LICENSE
authored
38
81bf4d7 Carl Mäsak [README] modifications; added STATUS and COOLTHINGS
authored
39 For an overview of the status of the project, see STATUS. For an overview
40 of the cool things that could be built with the project as a dependency,
c48c45b Carl Mäsak [README] updates
authored
41 see docs/COOLTHINGS.
81bf4d7 Carl Mäsak [README] modifications; added STATUS and COOLTHINGS
authored
42
f47b493 Carl Mäsak [README] s/aim/optimize/g. added ref to LICENSE
authored
43 == License
44
52e20ba Carl Mäsak [README] tiny tweaks, uniform column-width
authored
45 Code coming from the Parrot repository is Artistic License 2.0. See
46 LICENSE.
Something went wrong with that request. Please try again.