狠狠撸
Submit Search
颁补苍苍补をフォークしてみた
?
0 likes
?
928 views
Masahiko Hashimoto
Follow
颁补苍苍补をフォークして、滨锄耻尘辞という日本语入力システムを开発中です。
Read less
Read more
1 of 18
Download now
Download to read offline
More Related Content
颁补苍苍补をフォークしてみた
1.
颁补苍苍补をフォークしてみた はしもとまさ@東海道らぐ In
OSC 2014 Tokyo/Fall 2014/10/18
2.
今回のお話。 ● Cannaをフォークしてみました!
● Cannaとは???? – 元はNECが作成していた日本語変換システム。 – その後、Canna Projectが開発を引き継いだ。 – …が、2004/5/20を最後にリリースされていない。 – サーバー&クライアント型。MITライセンス。
3.
CannaからIzumoへ ● 日本語変換システム「Izumo」
– https://github.com/hashimom/Izumo – よく聞かれるのが、「なぜいずも?」 ● とりあえず、Cannaを漢字にしてみよう! 余談)島根県では神無月ではなく神在月と呼ばれるらしい ● 主な変更点: 現状、特になし!(おいっ) – クライアントライブラリ、ツール群をざくっと削除してシンプルに – ビルド方法を変更(中) ※後述 – 辞書ファイルの見直し(近日中)
4.
とりあえずgithubへ… ● おーぷんここんに取り込まれる??? …が!?
异议なし!(笑)
5.
imakeって? ● 「xmkmf」ってコマンドを叩くと、
Imakefileの記述から、Makefileを作成します。 ● X Window SystemのX11R6.9(2005年)までは imakeを利用してビルドされていました。 – なので、imakeのことを調べるとそっち系のものばかり引っかかります。 ● 例) Cannaのビルド方法: $ xmkmf $ make canna
6.
imakeの欠点 「解説書: 非常に広く使用されているツールとしては、
imakeはいまだに異常なほど文章化されていません。 (中略) 多くのプログラマがimakeのさまざまな部分と 取り組んできましたが、X Windowシステムの配布のために 用意している風変わりな機能から汎用的な部分を抜き出して ツールとして分割することは誰もできませんでした。」 オライリー「make 改訂版」(2005年)より いろいろダメぽい???^^;
7.
Cannaのディレクトリ構造 ※各ディレクトリにImakefileが存在します。 (ROOT)
lib server cmd canna include dic misc クライアントやサーバーが使用する ライブラリ群 Cannaサーバー Canna停止や辞書作成時に 使用するコマンド群 注:コマンド毎にディレクトリは別 make時に「include」ディレクトリが作成され、 各ディレクトリ内にあるヘッダファイルの シンボリックリンクが作成される。 (ROOT) にあるCanna.confの内容と Imakefileの記述から Cannaconf.hを作成して、 include内に置かれる 共通ヘッダファイル置き場 辞書 設定ファイル等
8.
imakeを置き換えてみよう! 代替案は??? –
Autotools – Cmake 好き嫌いありそうですね???。
9.
Autotoolsってどうさ!? ● Linuxでは定番ですよね!
– ビルド方法: $ ./configure $ make ● 各ディレクトリにmakefile.acを置く必要があるが、 Canna.confみたいなものは必要なさそう! ※CannaのImakefileは全てCanna.confを参照していますorz
10.
でもMacとかでも動くようにしたいな? ● 最近のMac(Xcode)には、Autotoolsが削除されてる!?
– Xcode 4.3から入ってないらしいですね。 (Mac持ってないので知らんのだけど…) ● 一応Autotoolsを使えるようではあるけど なんだかめんどくさそうですね???? (注:よくわかっていませんw)
11.
というわけでcmakeを使ってみる ● imakeとは別物なのね???^^;
– 実はごちゃ混ぜになって同一だと思ってたらしい(笑) ● へぇ?GUIでもビルドできるのか! ● VisualStudioのプロジェクトファイルも作成可能!? ● ディストリビューションのパッケージングも可能!?? ● …と、調べていくうちにどんどん使ってみたくなりましたとさ。
12.
見様見真似でCmake ● CMakeLists.txtを作成して、下記コマンドでビルドします。
$ cmake . $ make ● …が、なぜかビルドエラー!?? – UNIXドメインソケット関連のライブラリを 呼び出す箇所でビルドエラーが起きてるみたい。。。 – CmakeList.txtは問題無さそうなのになぜ???
13.
問題はここ!?? net.hを見ると見覚えのないコンパイルスイッチが!? #if
defined(nec_ews_svr2) || defined(pcux) #include <sys/types.h> #include <net/socket.h> #include <net/in.h> #include <net/netdb.h> #include <net/un.h> 「sys/un.h」がUNIXドメインソケットに #else 必要なヘッダーファイル #include <sys/socket.h> #include <netinet/in.h> …とすると、「UNIXCONN」って何?? #include <netdb.h> #ifdef UNIXCONN #include <sys/un.h> #endif #ifdef HAVE_ARPA_INET_H #include <arpa/inet.h> #endif #endif 案の定、「#define UNIXCONN」としてやるとビルドが通った???
14.
仮説。 恐らく「UNIXCONN」は、 imake独自のコンパイルスイッチではなかろうか?
…が、imakeは、 「いまだに異常なほど文章化されていません。」 そのため、すっかり藪の中なのであった。。。 (ご存知な方、ご教授くださいm(_ _)m)
15.
cmakeを使ったディレクトリ構成(予定) (ROOT) lib
server include dic misc (ROOT) 一箇所にのみ CMakeLists.txtを配置する。 クライアントやサーバーが使用する ライブラリ群 Izumoサーバー 辞書と 辞書を作成するツール群 設定ファイル等 いっそヘッダーファイルは 全てここに置いてしまってもいい シンボリックリンクも不要 廃止ディレクトリ: ● cmd: コマンド廃止 & dicへ移動 ● canna: includeへ移動
16.
IzumoのCMakeLists.txt …は、近日中に公開! githubに見に行ってください。
– https://github.com/hashimom/Izumo
17.
今後のIzumoの予定 ● 11月: ?関西オープンフォーラム
– cmake対応 – 辞書ファイルの拡張 ● 12月: ?東海道らぐ名古屋オフ? – クライアントライブラリの作成 – ibus-izumoの作成 ● 来年以降: – 形態素解析部の修正(←これいつたどり着ける???)
18.
ご清聴、ありがとうございました!
Download