ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

AsakusaFWでXMLファイルを読み込む方法

2017-05-22 04:42:05 | PG(分散処理)

Asakusa FrameworkXMLファイルを読み込む方法を考えてみた。

JavaでXMLファイルを読み込むライブラリーはいくつかあるが、AsakusaFWで使うにはStAXが向いている。

ただし、ファイル分割は出来ない(というか非常に面倒な)のと、タグがネストしていて内側の個数が不定のような場合はデータモデルをどうすればいいか等の問題があるため、AsakusaFWでXMLファイルを汎用的に扱うのは難しい気がする。


AsakusaFW 0.9.1 formatted text

2017-05-01 11:28:10 | PG(分散処理)

2017/4/26にAsakusa Framework0.9.1がリリースされた。→リリースノート
ドラクエ10の大型アップデート(ver 3.5中期)と同じ日だったからDQ10を優先したので
今回は大きな機能追加が多かったので!試すのにちょっと時間がかかった!

まず、Direct I/Oのformatted text。これはcsvやtsvといったファイルの汎用的なもの。
従来のdirectio.csvより実行速度は若干劣るが、設定できる項目が豊富。項目数が不定(可変)のcsvにも対応している。
(これに伴い、DMDLに新しい文法(escape_sequenceの設定で使うマップ形式)が追加されているので、DMDL EditorXの対応しなきゃ…今のままだと、その文法がエディター上でエラーになってしまう)


Operator DSL関連では、StringOption(およびOption系共通のValueOption)やStringOptionUtilにメソッドが加わっている。

大きな変化として、GroupSortとCoGroupで、Listの代わりにIterableで入力を受け取れるようになった。(これはドキュメントには書かれていない模様)
それに伴い、@Once@Spillというアノテーションが追加になっている。 

それから、Operatorのテストで使うMockResultを生成するユーティリティーが加わった。→OperatorTestEnvironment#newResult

フローのテストでは、ファイルを直接読み込む機能が追加された。
Excelファイルで入力データや検証データを書く代わりに、直接csvファイル等を使うことが出来る。


M3BP関連では、アクセス方式nioの2GB制限が無くなった。
今までは結構当たり前のようにunsafeに変えてたけど^^;、今後はnioのままで良さげ。

あと、今までコンパイルにgccを使っていた(もしくは使ってなかったけど設定は必要だった?)のが、不要になった。(g++のみになった)
Windows上でコンパイルする為の自分の手順ではCMAKE_C_COMPILERを指定してたんだけど、これが不要になる。(付けたままだと警告が出る。警告なだけなので無視すればいいけど)


最後に、まだincubatingな機能だけど、GroupViewというものが追加されている。
これは従来のDirect I/O APIのようなもので、Update等の各演算子から他のデータを読めるもの。たぶんこちらが正式機能になると思われる。
コーディング方法もテストの記述方法もDirect I/O APIよりすっきりしている。
フローの結線にもデータが現れるので、「フローに無いのにデータを使ってる…」といった誤解も無くなるだろう。

早く正式機能にならないかなw