comparison Todo @ 427:622a8e15ff40

Merge Worked ?
author one
date Sat, 02 Jan 2010 03:20:23 +0900
parents f8916a96a373
children b5f1bcc8a156
comparison
equal deleted inserted replaced
426:1acc3dfde5d3 427:622a8e15ff40
1 Sat Jan 2 00:02:41 JST 2010
2
3 Todo:
4 writeLog に level/flag を付けるか?
5
6 Selector.select() のフラグは意味がない。その後、必ず、
7 selectedKeys() を調べる必要がある。これは、Simulator
8 と実ソケットの動作が異なる部分。Warning とか出せないものか?
9
10 確かに、Merge 変かも。unMerged を undo するのは良いが、
11 sort するのは、unMerged であって、undo を付加したものではないはず。
12
13 いや、それは正しく出来ている。output に先にundoを入れて、
14 cmd には、そのまま残している。(順序は sort されるので関係ない)
15
16 でも、sortedCmds1 に add する時に、Comparator で順序付けされて
17 しまう。getPrecedence() は必要な列の切出しに使う。
18
19 Self Merge case
20 E_{00} E_{12} E_{01} E_{23} E_{02} (E_{00})
21 Other Merge case
22 E_{10} E_{11} E_{23} E_{01} E_{02} (Eack_{10})
23
24 ack が間に入ることはない(merge で消されるから)
25 original command の存在しない ack もない。
26 (あったら、エラー。無視して良い)
27 ack の来ない original command は sequence エラーとなるなず。
28 (あるいは time out)
29
30 ということは、getPrecedence せずに、うむを言わせず
31 全部 sort すれば良いってこと? ってことは実は、E_{12}
32 が来た段階で追い越せるかどうかはわかる?
33
34 Ack を受け取ったら、それは、必ず先頭にあるはず。
35
36 E_{00} E_{10} E_{11} E_{23} E_{01} E_{02} (Eack_{10})
37
38 とかはない。ack は追い越せないから。この間の入力は確定で、
39 優先順位にしたがって順序付しsortする。次は、
40
41 E_{10} E_{11} E_{23} E_{01} E_{02} (Eack_{10})
42 E_{11} E_{23} E_{01} E_{02} E_{12} (Eack_{11})
43
44 で、これは、E_{12} までをsort すれば良い。ということは、
45 取れるのは最初の一個だけってこと。
46
47 nop の場合は、command が着いた直後に出力されるけど、
48 ack の場合は、それは出力されないで、もう一周する
49 ack が流される。ack は、一つ前のエディタが出力した
50 nop に相当する。
51
52 この方法だと、編集コマンドの干渉を気にする必要はない。それは、
53 最適化フェーズで自動的に排除される。(はず) ということは、
54 getPrecedece の方で sort してやって、今の lineno の比較は
55 無意味なので排除ということですね。
56
57 2方向をスター型/木型に順々に処理する方法でも良いのか。
58
59
1 Wed Nov 26 15:15:16 JST 2008 60 Wed Nov 26 15:15:16 JST 2008
2 61
3 Ring 構造なので、一部のeidtorで止まると全体が止まってしまう。 62 Ring 構造なので、一部のeidtorで止まると全体が止まってしまう。
4 (非同期なのでeditorが止まることはない) これは、そういう設計 63 (非同期なのでeditorが止まることはない) これは、そういう設計
5 なので仕方がないんだが応答しないEditor/SesisionManagerを 64 なので仕方がないんだが応答しないEditor/SesisionManagerを