diff --git a/pages/documentation/introduction/README.md b/pages/documentation/introduction/README.md new file mode 100644 index 00000000..3f3fb0e6 --- /dev/null +++ b/pages/documentation/introduction/README.md @@ -0,0 +1,3 @@ +To generate the haxe-targets.png image, install graphviz, then: + + dot -Tpng haxe-targets.gv -o haxe-targets.png diff --git a/pages/documentation/introduction/compiler-targets.md b/pages/documentation/introduction/compiler-targets.md index 91eb015b..78e0ab54 100644 --- a/pages/documentation/introduction/compiler-targets.md +++ b/pages/documentation/introduction/compiler-targets.md @@ -1,6 +1,14 @@ Compiler Targets ======= +![Haxe Targets at a glance](haxe-targets.png) + +Key: + + * blue border: Haxe compiler target + * green background: bytecode + * red background: execution environment + The following table gives an overview of available Haxe targets: Name | Kind | Static typing | Sys | Since diff --git a/pages/documentation/introduction/haxe-targets.gv b/pages/documentation/introduction/haxe-targets.gv new file mode 100644 index 00000000..b64bc9e1 --- /dev/null +++ b/pages/documentation/introduction/haxe-targets.gv @@ -0,0 +1,74 @@ +digraph G { + graph [fontname = "clearsans"; rankdir="LR"]; + node [shape=box; style=filled; fillcolor="#E8E8E7"; + color=gray; fontsize=11; fontname = "clearsans"]; + edge [arrowsize=0.5; fontsize=11; fontname = "clearsans"]; + + // ByteCode + Neko [fillcolor="#B5E1AC"]; + HashLink [fillcolor="#B5E1AC"]; + SWF [fillcolor="#B5E1AC"]; + JVM [fillcolor="#B5E1AC"]; + CIL [fillcolor="#B5E1AC"]; + + // Haxe Generates these + ActionScript [color="#53A5EC"; penwidth=2]; + C [color="#53A5EC"; penwidth=2]; + "C++" [color="#53A5EC"; penwidth=2]; + "C#" [color="#53A5EC"; penwidth=2]; + Cppia [color="#53A5EC"; penwidth=2]; + JavaScript [color="#53A5EC"; penwidth=2]; + HashLink [color="#53A5EC"; penwidth=2]; + Java [color="#53A5EC"; penwidth=2]; + Lua [color="#53A5EC"; penwidth=2]; + Neko [color="#53A5EC"; penwidth=2]; + PHP [color="#53A5EC"; penwidth=2]; + Python [color="#53A5EC"; penwidth=2]; + SWF [color="#53A5EC"; penwidth=2]; + + // Execution Environments + VM [fillcolor="#E1ACAE"]; + Executable [fillcolor="#E1ACAE"]; + Browser [fillcolor="#E1ACAE"]; + Interpreter [fillcolor="#E1ACAE"]; + + {rank=same; Haxe;} + {rank=same; ActionScript; C; "C++"; Cppia; "C#"; JavaScript; + Java; Lua; PHP; Python;} + {rank=same; Neko; HashLink; SWF; JVM; CIL;} + {rank=same; Browser; Executable; Interpreter; VM;} + + Haxe -> ActionScript; + Haxe -> C [label="HL/C"]; + Haxe -> "C++"; + Haxe -> Cppia; + Haxe -> "C#"; + Haxe -> JavaScript; + Haxe -> HashLink [label="HL/JIT"]; + Haxe -> Java; + Haxe -> Lua; + Haxe -> Neko; + Haxe -> PHP; + Haxe -> Python; + Haxe -> SWF; + Haxe -> Interpreter [label="--interp"]; + + C -> Executable [label="cc"]; + PHP -> Interpreter; + JavaScript -> Interpreter; + JavaScript -> Browser; + Java -> JVM [label="javac"] + JVM -> VM; + Neko -> VM; + ActionScript -> VM; + SWF -> VM; + + Lua -> Interpreter; + "C++" -> Executable [label="cpp"]; + Cppia -> Executable [label="cpp"]; + Cppia -> Interpreter; + "C#" -> CIL [label="csc"]; + CIL -> VM; + Python -> Interpreter; + HashLink -> VM; +} diff --git a/pages/documentation/introduction/haxe-targets.png b/pages/documentation/introduction/haxe-targets.png new file mode 100644 index 00000000..6d54dbfb Binary files /dev/null and b/pages/documentation/introduction/haxe-targets.png differ