MAN HIMAZINE INTERFACE 4.0
この「にっき」には暴力シーンやグロテスクな表現が含まれています。
(2012.02.03)
$ NYAOS のダイナミックリンク版を用意しました
Tweet
- nocd5@blog Lua5.2での"multiple Lua VMs detected"の考察
- …"multiple Lua VMs detected"って言われる。
NYAOS がスタティックリンクしている Lua と、 Luaの拡張ライブラリがダイナミックリンクしている Lua へのポインタが違っているのが 原因で怒られているようなので、 Lua をダイナミックリンクする NYAOS をビルドしてみました。
本当は、Lua の外部ライブラリを活用できるように、 ダイナミックリンク版を標準にしたいところなんですが、 1-ファイルで動作するという利便性を捨てちゃうので、 ちょっと悩ましいところです。
単純に lua52.dll を nyaos のパッケージに含めるというので、 許容してもらえるもんでしょうかねぇ。
ところで… LuaBinaries for Windows のパッケージですが、 Lua 5.1 では Visual C++ 8 だったのが、 5.2 より MingW gcc 4 になったようです (ソース)。 NYAOS と同じになったので、ありがたいことです。
他のライブラリも追従してくれると嬉しいんですが。 (個人的に Luacom を NYAOS から使いたい)
(2012.02.02)
$ NYAOS 3.2.0_2 【安定版】を公開しました
Tweet
- @nocd5
- @どうしてもnyaos3.2.0_2が使いたい人 nyaos-3.2.0_1-srcで diff -u ../nyaos-3.3.0_1-src ../nyaos-3.3.0_2-src | patch
「どうしても nyaos 3.2.0_2 使いたい人なんているかなー」とは思いましたが、 どうせ暇だし、やっぱり不具合修正が安定版に適用されないというのも、 おかしな話ではあるので、ちゃんと公式版バイナリを用意いたしました。
- 変更点
開発版 3.3.0_1→3.3.0_2 の修正内容を、安定版 3.2.0_1 へ適用しました。
- option savehist 時にファイルが存在しない時、エラーを出さないようにした。
- ウインドウを閉じた場合もヒストリ保存や Lua関数 nyaos.goodbye.* を呼び出せるようになった。
- option uncompletechar に含まれる文字がディレクトリ名の漢字の2バイト目にあった場合にファイル名補完で不要な二重引用符が足されてしまう不具合を修正
- mklink を CMD.EXE 経由で呼び出すよう alias 定義した(_nya)
- 余談1
NYAOS のソースは改行コードが CRLF なんですが、 これで hg diff とかすると、CRLF と LF が混在したパッチができてしまうんですよね。 これがうまく patch コマンドで適用できない。
対応方法は分かっていて、次のようなことをすればよい
- パッチファイルの CR コードを全て手動削除(vim で「:%s/<Ctrl-v><Ctrl-M>$//」→「:w」)
- パッチを適用すると、修正ファイルの改行が全て LF になってしまうので、 CRLF へ変換 (vim で「set textmode」→「:w」)
この辺は私にとっては定番手順なんですが、 他の Windows 環境の開発者の人はどうしてるんでしょうかねぇ。 CRLF に適切に対応した patch コマンドのポートとか、あるんでしょうか
- 余談2
レポジトリの head が二つになってしまいました。
まぁ、安定版と開発版があるので当然と言えば当然なんですが、 最新版が 3.3.0_2 ではなく、3.2.0_2 になっているので、 hg update -r tip で、安定版・開発版のどちらになるのか、 ぱっと見、分からないので、注意が必要かなと。
あと、これ、Mercurial の欠点だと思うんですが、 「hg update -r タグ」とすると、タグが消えてしまう上に、 そこから修正すると余計な head が出来てしまいます。 これを避けるのは 「hg update -r タグの次のリビジョン番号」 としなければならず、今一使いにくいんですよね。
まぁ、これは Mercurial の不具合ではなくて、 「タグもバージョン管理しているが故に、 タグを付けた時、タグを認識しているリビジョンは、 タグを付けたリビジョンの次のリビジョンになる」 という仕様であるため、仕方ないちゃー、仕方ないんですがね。 なんとかならんものかなーと思わずにはいられない。
あ、そうそう。さらにタグを管理している .hgtags というファイルは LF 改行であるために、先に書きましたパッチ適用の際、 うっかり、他のファイルと同様に CRLF にしてしまわないよう注意が必要というのもありまして。 まぁ、hg diff でしっかりと差分を確認していたら大丈夫なんですけどもね。
どうしても nyaos 3.2.0_2 使いたい人@nocd5 お疲れ様です。
lrexlib(Luaに正規表現ライブラリ)が5.2に対応してないので…
自分でも時間がある時にチャレンジはしてるんですが(汗) (2012/02/03 00:00:08)
はやま なるほど。ということは、当分 Lua 5.1向けの安定版を出し続けた方がよさそうですね! (2012/02/03 00:41:25)
nocd5 拡張ライブラリのLua5.2対応はまだまだのようですからね。
まあnyaosでdllロードしてる人がどれだけいるのか…
個人的にはありがたい事ですが。
ただ客観的に言えば3.3.xだけにして良いと思いますよ(笑) (2012/02/03 01:48:21)
(2012.01.30)
$ NYAOS 3.3.0_2 を公開しました
Tweet
- ダウンロード
- NYAOS.ORG - NYAOS 3000.ja (配布ページ)
- zetamatta / nyaos3000 / overview — Bitbucket (BitBucket レポジトリ)
- 変更点
- option savehist 時にファイルが存在しない時、エラーを出さないようにした。
これが出るばかりに、わざわざ空ファイルを作って、エラーを抑制されている方もいらっしゃいましたが、今後は不要になります(すみません)。
- ウインドウを閉じた場合も、ヒストリ保存や Lua関数 nyaos.goodbye.* を呼び出せるようになった。
ただし、コマンドプロンプトの[×]ボタンを押下した場合となります。 現行の ckw は未対応ですが、これを対応させる nocd5 さんのパッチ が公開されています。Console2 は未確認です。
- option uncompletechar に含まれる文字がディレクトリ名の漢字の2バイト目にあった場合にファイル名補完で不要な二重引用符が足されてしまう不具合を修正
具体的には uncompletechar に逆クォート(`) を含めると、 「香港」というディレクトリの補完がおかしくなります。
- mklink を CMD.EXE 経由で呼び出すよう alias 定義した(_nya)
mklink は WindowsVista 以降の CMD.EXE の内蔵コマンドとのことです。 要望により、標準 _nya に加えました。
- その他
今回は 3.2.0_2 に相当する安定版は作成していません。 理由は…管理がたいへんだから。
- 1996|12
- 1997|04
- 1998|03
- 1999|09
- 2000|07
- 2002|01|11
- 2004|01|02|03|04|05|06|07|08|09|10|11|12
- 2005|01|02|03|04|05|06|07|08|09|10|11|12
- 2006|01|02|03|04|05|06|07|08|09|10|11|12
- 2007|01|02|03|04|05|06|07|08|09|10|11|12
- 2008|01|02|03|04|05|07|08|10|11|12
- 2009|01|02|03|04|05|06|07|08|09|10|11|12
- 2010|01|02|03|04|05|06|07|08|09|10|11|12
- 2011|01|02|03|04|05|06|07|08|09|10|11|12
- 2012|01|02
nocd5 まずはダイナミックリンク版でエラーでないこと確認できたことご報告いたします。
ただ、
> 1-ファイルで動作するという利便性
これは捨てがたいですよね…lua52.dll同梱で全然許容されるでしょうけど。
現状僕の方は"luaL_checkversion_"を呼ばないようにして通常のnyaos3.3.0_2で使用していますが、
外部ライブラリのLua5.2.0対応の仕方や、他のLuaを組み込んでるプログラムの対応状況みて足並み揃えるしかないんじゃないでしょうか?
っていうかガイドラインってないんですかね? (2012/02/04 23:08:40)
nocd5 【説明漏れ】お分かりだと思いますが一応…
動作確認はluamigemo.dllの方もlua52.dllを動的にリンクするようコンパイルしなおしての結果です。 (2012/02/04 23:10:42)