Browse Subversion RepositoryLog of /branches/mty-makai/wdict.c
Revision 252 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Dec 27 03:23:48 2010 UTC (13 years, 3 months ago) by notanpe File length: 10577 byte(s) Diff to previous 196 本家 R245 をベースに全てやりなおし。 Revision 196 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Jun 19 03:40:40 2008 UTC (15 years, 9 months ago) by notanpe File length: 10649 byte(s) Diff to previous 192 ヒットしたタゲの文字数を表示 Revision 192 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon May 26 06:29:35 2008 UTC (15 years, 10 months ago) by notanpe File length: 10577 byte(s) Diff to previous 125 シーズン 2 に向けて Revision 125 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 16 14:50:11 2007 UTC (16 years, 11 months ago) by notanpe File length: 10351 byte(s) Diff to previous 124 魔改造用ブランチ Revision 124 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 16 09:27:36 2007 UTC (16 years, 11 months ago) by chapuni Original Path: trunk/naniya/mty/wdict.c File length: 10351 byte(s) Diff to previous 114 アンチョコに載ってた一見難解な式を、マクロ IS_POWER2(n) で定義しておいた。 Revision 114 - (view) (download) (as text) (annotate) - [select for diffs] Modified Tue Apr 10 02:22:06 2007 UTC (17 years ago) by chapuni Original Path: trunk/naniya/mty/wdict.c File length: 10346 byte(s) Diff to previous 112 リポジトリ構造を慣例のものに変更。 ついでに、svn:keywords のプロパティを付加。 (auto-propsってリポジトリ属性だっけ?) Revision 112 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 9 09:01:20 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 10346 byte(s) Diff to previous 111 ときどき区別なし判定に失敗するのは、unsignedの罠にハマってたのだった。…未熟。 ついでにデバッグメッセージをもうすこしトレースしやすいものに変更。 Revision 111 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 9 01:23:07 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 9597 byte(s) Diff to previous 106 ヒット判定に - 零次判定ネガティヴハッシュ(ビットマップ) - 一次判定小テーブル を導入。一次判定は、ハッシュ版もつくってみたが、バイナリサーチとさほど性能が変わらなかったため、より頑丈なバイナリサーチを採用。 長年懸念になっていた、大小判定まわりをきっちり作り込…んだつもりなんだが、まだびみょーにバグってるみたい。このバグ取れたらリリースしよう。 Revision 106 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Apr 6 02:29:32 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 5932 byte(s) Diff to previous 101 役に立つデバッグメッセージを追加。 Revision 101 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 12:18:01 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 5805 byte(s) Diff to previous 100 hit時のワークエリア叩きが効率悪かったので、ちょっとは効率よくなるように構造をやや作り替える。 つーかさっきのは、またもやキャッシュの呪いにかかってしまったようで… Revision 100 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 11:18:36 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 5558 byte(s) Diff to previous 99 ノードの二重登録を行ってしまっていたのでちゃんとする。 Revision 99 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 11:09:59 2007 UTC (17 years ago) by chapuni Original Path: mty/wdict.c File length: 5483 byte(s) Copied from: mty/synth.c revision 98 Diff to previous 98 モジュール wdict.[ch] を新規作成し、辞書関係の記述を移動。 ついでに popcnt32() などを util.h へ移す。 動作に影響はない、ハズ。 Revision 98 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 09:55:45 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 39940 byte(s) Diff to previous 96 [./] のヒット処理を加えた。てきとうな処理なのでてきとうにヲーニングが出るが無視。 ついでにコメント1カ所修正。 Revision 96 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 09:37:15 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 39861 byte(s) Diff to previous 95 これまた実験的に、[./]を区別なし文字扱いにした。でもなんだかすっきり書けないねぇ。 Revision 95 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Apr 5 06:29:46 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 39660 byte(s) Diff to previous 93 昨夜いろいろバグってたので修正して、なんだか動いてる感じがするようにまでしてみた。 いちばんの勘違いは、ANDNの作用を取り違えていたことだったり。 Revision 93 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Apr 4 14:57:28 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 38654 byte(s) Diff to previous 91 辞書だけじゃなく、論理項の結果もちゃんと出るようにしました。これで実用になるでしょう。 …って思って検証してたら、どうやら被覆最適化がバグってたもよう。一時的に殺してあります。 Revision 91 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Apr 4 12:12:54 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 37084 byte(s) Diff to previous 90 NI_DICT節に対して定数削りの最適化が効いていなかったため、後半のコード生成でしんでた。 Revision 90 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Apr 4 10:36:43 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 37034 byte(s) Diff to previous 89 辞書を更新する処理をちょっとズルして、プチ最適化しなくても木が肥大化しないようにした。これにより、30万語の辞書読み込みもあっという間に終わることとなった! Revision 89 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Apr 4 09:34:43 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 36866 byte(s) Diff to previous 86 末尾LRの全集合(無条件に t)を最適化フェイズでたたき落とせていなくて「やっちゃったー」になっていたため、対策。 Revision 86 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Apr 4 06:00:09 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 36717 byte(s) Diff to previous 82 LR生成の際に、式の相関により最適化を行うようにした。かなり効果があるハズだが、ときどき重いフェイズに突入してしまい、「ドツボ」ることがあるのでこれが今後の課題。 ・木の最適化に、AND 1, OR 0 などの無意味項を丸める処理を追加。 ・最適化の結果参照されなくなったLRノードを削除するようにした。ついでに削除ノードを最適化効果指標として報告するようにした。 ・synth_extract_minterm() に記述されていた処理の大部分は、前段の synth_expand_terms() にて終わっているので、処理を大幅に削った。 ・synth_simplify_qm() は、生成限界に達したときに全主項を返すようにした(未デバッグ)。 ついでに、N_INFLIGHT=2 にしてみた。いいのか? Revision 82 - (view) (download) (as text) (annotate) - [select for diffs] Modified Tue Apr 3 02:54:53 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 31439 byte(s) Diff to previous 80 AMD64 にて、reg_not() のエンコーディングがくさってたので修正。 Revision 80 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 2 10:35:06 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 31381 byte(s) Diff to previous 79 VC8(x64)にて調整。なぜかUSE_64が動かないのでまたあした! Revision 79 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 2 08:24:52 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 31354 byte(s) Diff to previous 77 随所に散らばっていた定数類を排除してダイナミック化。制限と思われる数値を取っ払った。これでタゲ数無制限だ!!! ただしLR(QM簡単化)のところでまだ恥ずかしい制限が残っているので、それにぶち当たったらスマン。ちうかそろそろ高速化したいよ。 Revision 77 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Apr 2 05:32:38 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 30042 byte(s) Diff to previous 74 開発者にしか関係ないけど、デバッグメッセージを役に立つ方向に変更。 Revision 74 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sun Apr 1 08:38:32 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 29645 byte(s) Diff to previous 72 大量検索もどきを実装。 すでにわかっている不具合がたくさんあるので、超地雷です。 あちこちに残っている制限はあとで外します。 数十万行を喰わせると死ぬほど遅いのはどうにかします。 Revision 72 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sun Apr 1 08:27:52 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 28097 byte(s) Diff to previous 68 ノードを削除する synth_unlink() を追加。 木のプチ最適化を行う synth_optimize() を実装。 ダンプをもうすこし俺にわかりやすくした。 Revision 68 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 31 17:59:58 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 25264 byte(s) Diff to previous 65 おせっかいな進捗メッセージを追加。つまり処理に時間を要するパスがあるってこと。 辞書単語数をマクロにしておいた(あまり意味ねー)。 デバッグダンプをもうすこし親切にしといた。 Revision 65 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 31 06:38:01 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 24706 byte(s) Diff to previous 64 展開がバグってて、ついでに行ってるはずの最適化が十分に行われていなかったので修正。 たいていの式をスムーズに展開できるようになった。 Revision 64 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 31 04:53:58 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 24704 byte(s) Diff to previous 63 加法展開 synth_expand_terms() を、再帰を使わないモノに差し替えた。不要なパラメータ整理はまたそのうちやる。 主項のqsortはもはや不要と判断し、外す。 辞書分類のとき、大小混在のものがうまく分類できていなかった。 10完を喰わせると死んでた。 こんな感じの改良を施したら、けっこうでかいタゲを喰いきれるようになった予感。あとはてきとうなパターン比較とてきとうな最適化を入れれば実用な予感。 そして花見に逝ってくらあっと。 Revision 63 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 30 14:59:19 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 24386 byte(s) Diff to previous 59 野望への一歩、辞書と被覆をねじこんた。 まだまだ手抜きなので、これで動くと思うなよ。 Revision 59 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 30 04:54:42 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 22368 byte(s) Diff to previous 52 レジスタ割り当ての、簡単な最適化を施しておきました。 ワークエリア(PARAM::hit[])の制限は緩まってんじゃないかな。 ちゃんと最適化するのはあとの楽しみに取っておきます。 Revision 52 - (view) (download) (as text) (annotate) - [select for diffs] Modified Thu Mar 29 01:05:43 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 19108 byte(s) Diff to previous 49 LR生成の過程で、定数になる項で末尾になるものの生成に失敗するケースがあったので対策。 Revision 49 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Mar 28 09:23:25 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 19081 byte(s) Diff to previous 48 デバッグ時には synth_dump() が NULL で呼ばれることがあるのだった。対策っと。 Revision 48 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Mar 28 08:17:05 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 19057 byte(s) Diff to previous 45 USE_64(ALU)にてコンパイルできなかったため修正。 Revision 45 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Mar 28 07:57:20 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 19035 byte(s) Diff to previous 40 曲がりなりにも木から命令を生成できるようにしました。 (synth_assemble云々など) 以前と実装が変わり、ファイルハンドルに向かって命令を吐きまくります。 ALU用に、reg_not() が新設されています(未デバッグ)。 ターゲット数制限はあるような気がしますがそのうち除去します。 食わせるターゲットによっては、処理時間が思いっきりかかったりハングしたり死んだりしますが、折を見て調整するっす。 Revision 40 - (view) (download) (as text) (annotate) - [select for diffs] Modified Tue Mar 27 11:39:24 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 15499 byte(s) Diff to previous 38 一部のデバッグメッセージがDEBUG==0でも出ていたので殺しました。 synth_expand_terms() において、書き込み先ポインタを移動させるのをやめ、インデクスを移動させるようにしました。すでに生成した項を重複生成させないようにするためです。この探索が速度低下の一因になっていないかどうか再調査が必要な気が。 加法展開する前に、cov を項数の少ない順にソートするようにしました。このことにより再帰の深さをやわらげることができます。 これらの調整の結果、展開項見積が多大になったときでも音を上げるケースが手元では見られなくなりました。でも急いで書いたコードだからか、やっぱりいろいろ不満はあるので、それを調整するのは落ち着いてから、ってことで。 Revision 38 - (view) (download) (as text) (annotate) - [select for diffs] Modified Tue Mar 27 08:13:43 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 14496 byte(s) Diff to previous 33 なぜか Quine-McCluskey simplification まで持ってきてしまった。まるで○○クォリティ。 そこらへんで用いられているタゲにはよく効くが、機械的に生成したタゲだといろいろ恐ろしいことが起きて実用性に欠けそうな感じもするので、要調整。 そして相変わらず、まだコード生成は行わないし、メインと結合されてない。これも○○クォリティ。 Revision 33 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Mar 26 07:38:40 2007 UTC (17 years ago) by chapuni Original Path: mty/synth.c File length: 4728 byte(s) Copied from: mty/expr.c revision 32 Diff to previous 30 synth.c[ch] モジュール作成。 現時点ではまだ木を組み上げるだけで、命令生成は行っていません。 合成という名前負けしないようにとの願いを込めてこの名前をつけました。 Revision 30 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Mar 19 12:05:53 2007 UTC (17 years ago) by chapuni Original Path: mty/expr.c File length: 11345 byte(s) Diff to previous 27 [A-Z]の処理について実験コードを混入させる。バグってたらゴメンね~ 難解なので注意して読んでくだせ。 Revision 27 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sun Mar 18 08:38:54 2007 UTC (17 years ago) by chapuni Original Path: mty/expr.c File length: 7152 byte(s) Diff to previous 26 「勝手にベンチマークモード」を実装。 …ハイスミマセン、0 ターゲットで回すだけです! Revision 26 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sun Mar 18 07:40:49 2007 UTC (17 years ago) by chapuni Original Path: mty/expr.c File length: 6902 byte(s) Copied from: mty/mty.c revision 25 Diff to previous 25 ソースを分割。 expr.c ... 式から命令列を生成 translate.c ... キーバイナリ列から鳥屋っぽいキー文字列生成を試行。 ターゲット依存は config.h に押し込めてみました。 キースケジューリングも切り離そうと思ったけどそれは次の機会に。 Revision 25 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 17 12:20:48 2007 UTC (17 years ago) by chapuni Original Path: mty/mty.c File length: 32783 byte(s) Diff to previous 24 key_inc() にて、 N_STRIDE の変更に弱い部分が1箇所あったので清書。 Revision 24 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 17 12:11:18 2007 UTC (17 years ago) by chapuni Original Path: mty/mty.c File length: 32812 byte(s) Diff to previous 23 ログ出力周りを整理。ついでにエラー処理を盛り込む。 実際のエラーにおける挙動に関しては未検証。 Revision 23 - (view) (download) (as text) (annotate) - [select for diffs] Modified Sat Mar 17 10:23:30 2007 UTC (17 years ago) by notanpe Original Path: mty/mty.c File length: 32867 byte(s) Diff to previous 22 expr_buf の宣言部も TARGET_SIZ で。 ついでに SIZE にしようかと迷ったけど、宗教問題になるので遠慮。w Revision 22 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 16 15:17:25 2007 UTC (17 years ago) by notanpe Original Path: mty/mty.c File length: 32862 byte(s) Diff to previous 21 target.txt が無い場合の対策。 鳥屋は assert() が好きなようなので、あわせてみた。 決してコミットのテストではない。 Revision 21 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 16 02:13:44 2007 UTC (17 years ago) by chapuni Original Path: mty/mty.c File length: 32840 byte(s) Diff to previous 20 MSVCRTでは行バッファリング(_IOLBF)が古バッファリングになってしまうため、ログファイル log.txt がキレイに書き出せていなかった。 _IONBF で定義し直す。 (Cygwin, glibc ではこれで問題なかったんだよなぁ…) Revision 20 - (view) (download) (as text) (annotate) - [select for diffs] Modified Mon Mar 12 09:25:48 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 32788 byte(s) Diff to previous 15 BSDに敬意を表して、MMAP(2)に与えるシンボルは MAP_ANON だろっ。(の談) ptrdiff_t は、stddef.h にいるよ! ついでに、CRYPT64_CLOBBER を、USE_64 においても定義しておく。 そろそろ autoconf だなおい。 Revision 15 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 9 11:18:28 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 32713 byte(s) Diff to previous 14 * 鍵シフトスケジュール(ksd)を、 crypt64.S から mty.c へ移動。この改造は元々200509版にて行われていた。 ks_ls[]の内容を、key64.ks[] に移動しているので注意。 * 比較器生成部で、param.hit[]へのポインタをTに割り振っていたが、LRを指しているDIのみを使用するように変更。 * 呼び出し規約のレジスタ破壊を記述するためのマクロ CRYPT64_CLOBBER を定義。 * crypt64.S 中、CNT, KSI はそれぞれ幅の狭いレジスタを採用。姑息な最適化のため。KSIはもはやインクリメントカウンタになった。 また、レジスタ待避の都合上、DX(破壊)とBX(待避)を入れ替えた。 * 初期LRクリアの際、ゼロレジスタとしてR(0)を用いていたが、AMD64ALUだと予約レジスタとかぶってしまいかねないため、R(7)に変更。 Revision 14 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 9 06:49:26 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 32107 byte(s) Diff to previous 13 種別 USE_64 (64-bit ALU 使用) を追加。 ただし、今回追加のアセンブラモジュールには対応コードが含まれていません。 準備だけ。 準備として、以下の変更を行う。 * ポインタ BP, SI の役割を入れ替えた。(BP) のとき disp 0 が省略できないため。 * LRがBPとなったため、デフォルトで disp8 がつくようになった。そのためアセンブル時のゲタ OX は、64ビット演算時は 0x00 に固定した。Salt固定のときは crypt64 のエントリを直接呼べる(ハズ)。 reg_op(), reg_mem() 周りを抽象化した。比較器に対して正しいコードが吐けている(200509相当の拡張)。 ついでに、LRがはみ出ている分[64:65]のゼロクリアを、ループ内に移動。 Revision 13 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Mar 7 12:41:41 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 30597 byte(s) Diff to previous 10 Suseでなぜか ptrdiff_t が定義されていないので、てきとうなヘッダでごまかす。 Visual Studio 8 で、 USE_MMX 時に定義すべき int8_t が欠落していたため追加。 Revision 10 - (view) (download) (as text) (annotate) - [select for diffs] Modified Wed Mar 7 07:07:03 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 30554 byte(s) Diff to previous 9 Visual Studio 8 (W32/x86)にて調整。 シンボルが USE_MMX になっていなかった箇所が残っていたため修正。 他、GCC(Mingw) Linux x86-64 にて動作ひととおり確認。 Revision 9 - (view) (download) (as text) (annotate) - [select for diffs] Modified Tue Mar 6 12:37:55 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 30660 byte(s) Diff to previous 6 AMD64 対応。Suse(x86-64)某にて確認。 64ビット版では、通常演算で uint64_t を多用するため そのへんに気をつけていろいろ改修。 crypt64.S は、実質的な変更は少ないが、変更行数は多い。 Revision 6 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 2 18:15:39 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 30379 byte(s) Diff to previous 2 XMMに対応。ついでにMMXとXXMのコードベース統一を図る。 Revision 2 - (view) (download) (as text) (annotate) - [select for diffs] Modified Fri Mar 2 07:03:17 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 29957 byte(s) Diff to previous 1 W2k などにおいて、XP 拡張された引数を mmap しようとし失敗していたため、 対策として、legacy malloc() を試みるように変更。 Revision 1 - (view) (download) (as text) (annotate) - [select for diffs] Added Thu Mar 1 14:32:05 2007 UTC (17 years, 1 month ago) by chapuni Original Path: mty/mty.c File length: 29732 byte(s) John由来の x86-mmx.S をくっつけてみた。 This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
|