root/project_planning/a_dependency_graph.dot

Revision 15729, 4.9 kB (checked in by bsb, 21 months ago)

r301@ogum: bsb | 2007-03-16 16:13:15 +1100
started adding URLs to a_dependency_graph.dot

  • Property svn:mime-type set to text/plain; charset=UTF-8
  • Property svn:eol-style set to native
Line 
1# see README
2
3# What are those "kludge" nodes?  Adding edges to the parrot milestone
4# nodes results either in the parrot nodes being scattered, or in the
5# pugs task graph being unacceptably distorted.  So "duplicate nodes"
6# were added and named kludge.
7
8digraph G {
9  rankdir=LR;
10  node [shape=none];
11
12### End game
13
14  Xmas [shape=triangle,style="bold,filled",fillcolor=palegreen,color=red];
15  {
16    edge [color=blue]
17    node [fontcolor=blue]
18    "6.28: Classes and traits" -> "6.283: Rules and Grammars" -> "6.2831: Type system and linking" -> "6.28318: Macros" -> "Pugs feature complete" -> "6.283185: Port Pugs to Perl 6"
19  }
20  {
21    Documentation
22    Testing
23    "Releasable Perl6"
24  } -> Xmas;
25
26  "Pugs feature complete" -> {
27    "Releasable on Haskell"
28  }
29
30  subgraph "cluster Releasable" {
31    label=""
32    "All Implementations" [label="*all"];
33    "Releasable on Haskell"
34    "Releasable on Perl5" 
35    "Releasable on Parrot"
36    "Releasable on X"
37  }
38    {
39      edge[style=dashed];
40      {
41        "Releasable on Haskell"
42        "Releasable on Perl5"
43        "Releasable on Parrot"
44        "Releasable on X"
45      } -> "Releasable Perl6"
46    }
47
48### Rules
49
50  subgraph "cluster Rules Engine" {
51    label=""
52    edge[style=dashed];
53    "All grammar engines" [label="*all"];
54    {
55      "Engine in P5"
56      "Engine in Parrot"
57      "Engine in Hs"
58      "Engine in P6"
59    } -> "Rules Engine in X"
60  }
61  "Rules Engine in X" -> {
62    "Parser in P6"
63  }
64  "Engine in P6" -> "Parser in P6"
65
66
67  "Perl6 Prelude" -> {
68    "Perl6 in P6"
69    "Tailored Preludes"
70  }
71  {
72    "Prelude override mechanism"
73  } -> "Tailored Preludes" -> {"All Implementations"}
74
75  "Grammar for Perl6"
76  "Rules Prelude" -> {
77    "Perl6 Prelude"
78    "Engine in P6"
79  }
80  "Grammar for Rules" -> {
81    "Grammar for Perl6"
82    "All grammar engines"
83    "Engine in P6"
84  }
85  "Grammar for Perl6" -> "Parser in P6"
86  "Parser in P6" -> "Compiler in P6" -> {
87    "Perl6 in P6"
88  }
89
90### Testing
91
92  {
93    "Many more tests"
94    "Platform specific todos"
95    "YAML-based test framework"
96  } -> Testing
97
98### Specification
99
100  Specification -> {
101    "Perl6 Prelude"
102    Testing
103  }
104  {
105    "Spec Math"
106    "Event model"
107    "IO model"
108  } -> Specification
109  "Drive spec with backends" -> {
110    "Event model"
111    "IO model"
112  }
113  "Drive spec with pugs" -> {
114    "Spec Math"
115  }
116
117### Documentation
118
119  {
120    "Docs processing and release mechanism"
121    Specification
122  } -> Documentation
123
124
125###
126
127  {
128    "6.28: Classes and traits"   
129  } -> "Pugs parrot backend (with OO) **"
130
131  kludge0 [label="Pugs parrot backend (with OO) **"]
132  parrot_milestone_2 -> kludge0
133  parrot_milestone_3 -> kludge0
134
135  {
136    "PIL2JS supports objects"
137    "Pugs parrot backend (with OO) **"
138  } -> "Have backends" -> "Drive spec with backends"
139
140  "Move Hs primitives to Prelude" -> { "Perl6 Prelude" }
141  "OO AST" -> "Typed AST" -> "Full AST" -> "Unified AST **" -> {
142    "Compiler in P6"
143  }
144
145  "OO AST" -> {
146    "Begin core of Compiler in P6"
147  }
148  "Begin core of Compiler in P6" -> "Compiler in P6"
149
150  "OO AST" -> "PIL2JS supports objects"
151  {
152    "OO AST"
153    "Meta-model"
154  } -> "OO core defined" -> {
155    "PIL2JS supports objects"
156  }
157  {
158    "OO core defined"
159    "Spec MMDispatch"
160    MOP
161    "unflatten primitive names"
162  } -> "6.28: Classes and traits" -> {
163  }
164  {
165    "Rules Engine in X"
166    "Rules Prelude"
167  } -> "6.283: Rules and Grammars" -> {
168  }
169  {
170    "Typed AST"
171  } -> "6.2831: Type system and linking" -> {
172  }
173  {
174    "Full AST"
175  } -> "6.28318: Macros" -> {
176  }
177  "6.283185: Port Pugs to Perl 6" -> "Perl6 in P6" -> "All Implementations"
178
179  "v6-alpha" -> "Releasable on Perl5"
180
181### fglock
182
183  {
184    "OO core defined"
185    kp6 [URL="http://svn.pugscode.org/pugs/v6/v6-KindaPerl6/"]
186  } -> "kp6 with real OO" -> {
187    "6-on-6"
188    "Have backends"
189  }
190  "6-on-6" -> {
191    "v6-alpha" [URL="http://svn.pugscode.org/pugs/perl5/Pugs-Compiler-Perl6/"]
192    "Perl6 in P6"
193  }
194
195### parrot
196
197# http://www.perlfoundation.org/gc/grants/2005-p6-proposal.html
198
199  subgraph "cluster Parrot stuff" {
200    URL="http://www.perlfoundation.org/gc/grants/2005-p6-proposal.html"
201    label=""
202
203    milestone_4 [label="Parrot 1.0\nParrot Milestone 4\nGrammar Engine\nMilestone 4"];
204
205    ge_milestone_1 [label="Grammar Engine\nMilestone 1\nengine/grammar/parser"]
206    ge_milestone_2 [label="Grammar Engine\nMilestone 2\nemit AST"];
207    ge_milestone_3 [label="Grammar Engine\nMilestone 3\nconverge"];
208    parrot_milestone_1 [label="Parrot Milestone 1\nAPIs"];
209    parrot_milestone_2 [label="Parrot Milestone 2\nstubs"];
210    parrot_milestone_3 [label="Parrot Milestone 3\nworks"];
211    parrot_milestone_1 -> ge_milestone_2
212
213    ge_milestone_1 -> ge_milestone_2 -> ge_milestone_3 -> milestone_4
214
215    parrot_milestone_1 -> parrot_milestone_2 -> parrot_milestone_3 -> milestone_4 -> "Releasable on Parrot"
216
217  }
218  kludge1 [label="Unified AST **"]
219  kludge1 -> ge_milestone_2 -> kludge1
220  kludge1 -> ge_milestone_3 -> kludge1
221
222}
223#  Q [shape=circle,style=filled,color=pink,label="?"];
Note: See TracBrowser for help on using the browser.