7
|
1 <map version="1.0.1">
|
|
2 <!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
|
|
3 <node CREATED="1541413621221" ID="ID_1078505079" MODIFIED="1541414015371" TEXT="CbCを用いたPerl6処理系">
|
|
4 <font NAME="SansSerif" SIZE="12"/>
|
|
5 <node CREATED="1541413945985" ID="ID_742780718" MODIFIED="1541413951982" POSITION="right" TEXT="Perl6">
|
|
6 <node CREATED="1541413961044" ID="ID_90704771" MODIFIED="1541413963196" TEXT="Rakudo">
|
|
7 <node CREATED="1541413965243" ID="ID_29989589" MODIFIED="1541413967817" TEXT="NQP"/>
|
|
8 <node CREATED="1541413968930" ID="ID_857566655" MODIFIED="1541413971817" TEXT="MoarVM"/>
|
|
9 <node CREATED="1541415957248" ID="ID_92063059" MODIFIED="1541415962444" TEXT="現状の実行速度"/>
|
|
10 </node>
|
|
11 <node CREATED="1541413995166" ID="ID_700487608" MODIFIED="1541413999809" TEXT="Parrot"/>
|
|
12 </node>
|
|
13 <node CREATED="1541414029013" ID="ID_379657805" MODIFIED="1541414033382" POSITION="right" TEXT="CbC">
|
|
14 <node CREATED="1541414038332" ID="ID_1271482951" MODIFIED="1541414045122" TEXT="Cとの互換性"/>
|
|
15 <node CREATED="1541414047128" ID="ID_16933733" MODIFIED="1541414053411" TEXT="CodeSegment"/>
|
|
16 <node CREATED="1541414054620" ID="ID_1935230593" MODIFIED="1541414059146" TEXT="goto Statement"/>
|
|
17 <node CREATED="1541414062173" ID="ID_7319522" MODIFIED="1541414068087" TEXT="軽量継続">
|
|
18 <node CREATED="1541414076519" ID="ID_1442630319" MODIFIED="1541414084987" TEXT="Stackを消費しない">
|
|
19 <node CREATED="1541414143614" ID="ID_1660961241" MODIFIED="1541414143614" TEXT=""/>
|
|
20 </node>
|
|
21 <node CREATED="1541414137421" ID="ID_1727341369" MODIFIED="1541414185766" TEXT="tail call"/>
|
|
22 </node>
|
|
23 <node CREATED="1541414147487" ID="ID_1727268527" MODIFIED="1541414152425" TEXT="bug">
|
|
24 <node CREATED="1541414158467" ID="ID_1249821290" MODIFIED="1541414178959" TEXT="局所変数のポインタを握ったままgotoするとtail callにならない"/>
|
|
25 <node CREATED="1541414235688" ID="ID_977169669" MODIFIED="1541414266382" TEXT="MoarVMのGC避けに使われている局所変数のポインタをstaticに直す"/>
|
|
26 </node>
|
|
27 <node CREATED="1541414272940" ID="ID_1641303153" MODIFIED="1541414277961" TEXT="実装">
|
|
28 <node CREATED="1541414277962" ID="ID_79004341" MODIFIED="1541414288366" TEXT="llvm"/>
|
|
29 <node CREATED="1541414289013" ID="ID_657741995" MODIFIED="1541414291174" TEXT="gcc"/>
|
|
30 </node>
|
|
31 <node CREATED="1541414190173" ID="ID_913160340" MODIFIED="1541414219383" TEXT="CodeSegmentはコンパイラの基本ブロックに相当する"/>
|
|
32 </node>
|
|
33 <node CREATED="1541415913985" ID="ID_510826927" MODIFIED="1541415919060" POSITION="right" TEXT="論文">
|
|
34 <node CREATED="1541415922393" ID="ID_1598696025" MODIFIED="1541415927716" TEXT="目的">
|
|
35 <node CREATED="1541415931413" ID="ID_972620811" MODIFIED="1541415946181" TEXT="Perl6の高速実行"/>
|
|
36 <node CREATED="1541415976688" ID="ID_22036446" MODIFIED="1541415984500" TEXT="CbCのスクリプト言語への応用"/>
|
|
37 </node>
|
|
38 <node CREATED="1541416021669" ID="ID_489168922" MODIFIED="1541416027804" TEXT="CbCの概要">
|
|
39 <node CREATED="1541416031396" ID="ID_1551960786" MODIFIED="1541416036012" TEXT="実装状況"/>
|
|
40 <node CREATED="1541416038164" ID="ID_1438405102" MODIFIED="1541416043156" TEXT="言語の簡単な説明"/>
|
|
41 </node>
|
|
42 <node CREATED="1541415929277" ID="ID_1507086124" MODIFIED="1541416010492" TEXT="Perl6の概要">
|
|
43 <node CREATED="1541416045236" ID="ID_1302092984" MODIFIED="1541416050622" TEXT="Parrot"/>
|
|
44 <node CREATED="1541416051219" ID="ID_680216126" MODIFIED="1541416054053" TEXT="Rakudo"/>
|
|
45 <node CREATED="1541416054289" ID="ID_323375220" MODIFIED="1541416056570" TEXT="NQP"/>
|
|
46 <node CREATED="1541416057759" ID="ID_9273494" MODIFIED="1541416060990" TEXT="MoarVM"/>
|
|
47 </node>
|
|
48 <node CREATED="1541416015337" ID="ID_927499326" MODIFIED="1541416074892" TEXT="CbCによるMoarVMの実装">
|
|
49 <node CREATED="1541416084205" ID="ID_1130596189" MODIFIED="1541416092884" TEXT="code segmentテーブル"/>
|
|
50 <node CREATED="1541416094316" ID="ID_64761982" MODIFIED="1541416105997" TEXT="interp.cからの自動生成"/>
|
|
51 <node CREATED="1541416130732" ID="ID_1436646867" MODIFIED="1541416135652" TEXT="実装の現状"/>
|
|
52 <node CREATED="1541416139886" ID="ID_1498135652" MODIFIED="1541416171404" TEXT="MoarVMのデバッグ"/>
|
|
53 </node>
|
|
54 <node CREATED="1541416147676" ID="ID_608615655" MODIFIED="1541416177049" TEXT="利点と欠点"/>
|
|
55 <node CREATED="1541416156012" ID="ID_1715763123" MODIFIED="1541416158741" TEXT="今後の課題"/>
|
|
56 </node>
|
|
57 <node CREATED="1541414016260" ID="ID_1263547387" MODIFIED="1541414304201" POSITION="left" TEXT="CbCによるPerl6の実装">
|
|
58 <node CREATED="1541414310736" ID="ID_916213000" MODIFIED="1541414324848" TEXT="MoarByteCodeのディスパッチ">
|
|
59 <node CREATED="1541414343377" ID="ID_1794960109" MODIFIED="1541414354624" TEXT="巨大なcase文"/>
|
|
60 <node CREATED="1541414356784" ID="ID_726201724" MODIFIED="1541414379957" TEXT="LABELのテーブル"/>
|
|
61 <node CREATED="1541414386844" ID="ID_306559572" MODIFIED="1541414404496" TEXT=" CbCのCodeSegmentのテーブル"/>
|
|
62 </node>
|
|
63 <node CREATED="1541414842014" ID="ID_567740484" MODIFIED="1541414861047" TEXT="bytecodeに対応するcode segment">
|
|
64 <node CREATED="1541414865747" ID="ID_814602879" MODIFIED="1541414883520" TEXT="インタプリタの状態を格納する構造体">
|
|
65 <node CREATED="1541414896442" ID="ID_1422656613" MODIFIED="1541414902097" TEXT="それへのポインタ"/>
|
|
66 <node CREATED="1541414904745" ID="ID_1264721395" MODIFIED="1541414912409" TEXT="レジスタへマッピング"/>
|
|
67 <node CREATED="1541415020055" ID="ID_1464947225" MODIFIED="1541415020055" TEXT=""/>
|
|
68 </node>
|
|
69 <node CREATED="1541415436644" ID="ID_314825177" MODIFIED="1541415467419" TEXT="gears osのinterfaceは使用していない"/>
|
|
70 <node CREATED="1541415024122" ID="ID_330058705" MODIFIED="1541415048113" TEXT="cbcのcode segmentの入力引数を使ってレジスタマッピングを管理できる">
|
|
71 <node CREATED="1541415429410" ID="ID_712452860" MODIFIED="1541415429410" TEXT=""/>
|
|
72 </node>
|
|
73 </node>
|
|
74 <node CREATED="1541414341726" ID="ID_1487177431" MODIFIED="1541414417373" TEXT="Threaded Code">
|
|
75 <node CREATED="1541414423299" ID="ID_836473525" MODIFIED="1541414431718" TEXT="Perlcc"/>
|
|
76 <node CREATED="1541414435571" ID="ID_1940825883" MODIFIED="1541414453032" TEXT="bytecode列をサブルーチンコールの列に置き換える"/>
|
|
77 </node>
|
|
78 <node CREATED="1541414433507" ID="ID_1575864514" MODIFIED="1541414483864" TEXT="CbCでのThreadec Codeの実装">
|
|
79 <node CREATED="1541414488865" ID="ID_1461050025" MODIFIED="1541414496894" TEXT="cbc_next"/>
|
|
80 <node CREATED="1541414498214" ID="ID_195610964" MODIFIED="1541414504070" TEXT="cbc_fixt_next"/>
|
|
81 </node>
|
|
82 <node CREATED="1541414419339" ID="ID_1335728257" MODIFIED="1541414543288" TEXT="Cのインライン展開">
|
|
83 <node CREATED="1541414547693" ID="ID_659364184" MODIFIED="1541414559968" TEXT="どれくらいの深さまでインライン展開されるか"/>
|
|
84 </node>
|
|
85 </node>
|
|
86 <node CREATED="1541414337374" ID="ID_11025016" MODIFIED="1541414615830" POSITION="left" TEXT="CbC実装の利点と欠点">
|
|
87 <node CREATED="1541414619857" ID="ID_1133837234" MODIFIED="1541414622751" TEXT="利点">
|
|
88 <node CREATED="1541414647681" ID="ID_972123703" MODIFIED="1541414670449" TEXT="VMのコードを分割可能">
|
|
89 <node CREATED="1541414674472" ID="ID_307775379" MODIFIED="1541414690736" TEXT="CbCのCodeSegmentは単なる関数"/>
|
|
90 <node CREATED="1541414698360" ID="ID_1846589276" MODIFIED="1541414715320" TEXT="case文labelテーブルは分割できない"/>
|
|
91 </node>
|
|
92 <node CREATED="1541414721554" ID="ID_1221286296" MODIFIED="1541414743992" TEXT="theread codeをcodeの変更抜きに簡単に実装できる"/>
|
|
93 <node CREATED="1541414752126" ID="ID_37293196" MODIFIED="1541414767417" TEXT="threaded codeに対して最適化をかけることが可能">
|
|
94 <node CREATED="1541414819192" ID="ID_1033020793" MODIFIED="1541414828553" TEXT="bytecode レベルと同じ"/>
|
|
95 </node>
|
|
96 <node CREATED="1541415237612" ID="ID_790139571" MODIFIED="1541415252267" TEXT="moarvmよりdebugしやすい">
|
|
97 <node CREATED="1541415255995" ID="ID_816297483" MODIFIED="1541415276370" TEXT="labelと違って関数名がデバッガから見える"/>
|
|
98 </node>
|
8
|
99 <node CREATED="1541416619317" ID="ID_811393660" MODIFIED="1541416660639" TEXT="CbCのABIにJITされたコードを合わせる可能性はある"/>
|
7
|
100 </node>
|
|
101 <node CREATED="1541415063228" ID="ID_225388377" MODIFIED="1541415228031" TEXT="欠点">
|
|
102 <node CREATED="1541415069642" ID="ID_533817131" MODIFIED="1541415076071" TEXT="CbCコンパイラがbuggy">
|
|
103 <node CREATED="1541415079422" ID="ID_1044393091" MODIFIED="1541415095025" TEXT="gccとllvmのアップデートに追従する必要がある"/>
|
|
104 <node CREATED="1541415100937" ID="ID_609944534" MODIFIED="1541415120866" TEXT="taill callの強制がかなり難しい"/>
|
|
105 <node CREATED="1541415202235" ID="ID_1151226334" MODIFIED="1541415223114" TEXT="現状だとnqpがビルドできない?"/>
|
|
106 </node>
|
|
107 <node CREATED="1541415132139" ID="ID_279142255" MODIFIED="1541415140313" TEXT="CbCがメジャーではない"/>
|
|
108 <node CREATED="1541415157875" ID="ID_1565993570" MODIFIED="1541415190810" TEXT="code segmentでの不要なスタック操作命令を完全に排除できていない"/>
|
|
109 <node CREATED="1541415231921" ID="ID_1712589110" MODIFIED="1541415312458" TEXT="C levelに戻る際に環境付きで戻る必要がある"/>
|
|
110 </node>
|
|
111 </node>
|
|
112 <node CREATED="1541414617793" ID="ID_782240881" MODIFIED="1541415363082" POSITION="left" TEXT="MoarVMのデバッグ" VSHIFT="-122">
|
|
113 <node CREATED="1541415368783" ID="ID_1979041331" MODIFIED="1541415397139" TEXT="命令履歴をCbCとラベル実装の命令履歴を比較する"/>
|
|
114 </node>
|
|
115 <node CREATED="1541415622350" ID="ID_479435127" MODIFIED="1541415627931" POSITION="left" TEXT="今後の課題">
|
|
116 <node CREATED="1541415631627" ID="ID_1779514222" MODIFIED="1541415639121" TEXT="コンパイラのbug fix"/>
|
|
117 <node CREATED="1541415646929" ID="ID_717536026" MODIFIED="1541415667291" TEXT="簡単な例題が動いた">
|
|
118 <node CREATED="1541415668063" ID="ID_293158844" MODIFIED="1541415675396" TEXT="テストの何%。。"/>
|
|
119 </node>
|
|
120 <node CREATED="1541415678504" ID="ID_1540520024" MODIFIED="1541415688186" TEXT="self build"/>
|
|
121 <node CREATED="1541415689135" ID="ID_992629371" MODIFIED="1541415698273" TEXT="threaded code compiler"/>
|
|
122 <node CREATED="1541415702936" ID="ID_1828933472" MODIFIED="1541415715180" TEXT="GCの制御">
|
|
123 <node CREATED="1541415776036" ID="ID_1306202452" MODIFIED="1541415784654" TEXT="GCの最適化"/>
|
|
124 </node>
|
|
125 <node CREATED="1541415792261" ID="ID_779643203" MODIFIED="1541415798355" TEXT="regexの最適化"/>
|
|
126 <node CREATED="1541415812077" ID="ID_587379399" MODIFIED="1541415828459" TEXT="rakudo compilerからcbcのコードを直接生成する">
|
|
127 <node CREATED="1541415829993" ID="ID_1858274685" MODIFIED="1541415836811" TEXT="llvmでコンパイルする"/>
|
|
128 </node>
|
|
129 <node CREATED="1541415846430" ID="ID_1375113859" MODIFIED="1541415854235" TEXT="最新版への追従">
|
|
130 <node CREATED="1541415871528" ID="ID_1262253798" MODIFIED="1541415904441" TEXT="interp.cからのcbc-interp.cbc自動生成"/>
|
|
131 </node>
|
|
132 </node>
|
|
133 </node>
|
|
134 </map>
|