Rubyで遊んだ日々の記録。あくまで著者視点の私的な記録なので、正確さを求めないように。
Rubyと関係ない話題にはその旨注記しているはず。なので、一見関係無いように見える話題もどこかで関係あるのかもしれません。または、注記の書き忘れかもしれません...
_ rubywin-0.0.4.0、vrswin-020629、vruby-020610。
_ RubyWinをVC++7でコンパイルして発見したこと。
u2j.cppのコンパイル時に%MSVCDir%\include\cstdioの23行目、using ::perrorでエラーが出る。こんなの。(うちでは%MSVCDir%はC:\Program Files\Microsoft Visual Studio .Net\Vc7)
C:\Program Files\Microsoft Visual Studio .NET\Vc7\include\cstdio(23) : error C20 39: '_perror' : 'operator``global namespace''' のメンバではありません。 C:\Program Files\Microsoft Visual Studio .NET\Vc7\include\cstdio(23) : error C28 73: '_perror' : シンボルを using 宣言の中で使用することはできません。
C++はよーわからんのだけど、perrorがcstdio内の他のusing宣言対象と異なるのは、stdio.hだけではなくstdlib.hでも宣言されていることくらいか。
例えば、u2j.cppの先頭に#include <cstdio>とか入れれば解決はするんだけど、なんかすっきりしないなぁ。あとでStroustrup本を読み直して考えてみよう。
_ ruby-bugs#PR331にて「execで/bin/shを呼び出してるじゃねーかゴルァ」な報告。
おめでとう、あなたが(僕の知る限り)二人目の問題発見者です。
未commitのパッチは存在するんだけど、自分で書いといてなんだけど出来が気に入らないんだよなぁ。考え直してから、と思ってたんだけど。うぅむ。
このPRの内容でcommitしちゃう? どうせ成功したら戻ってこないんだし、悩むだけ無駄という気もしてきた。
_ [ruby-talk:43373]。
1.7系を使いたい人は自分でコンパイルすりゃいいんでは... (バイナリを配布してるヤツの言うセリフじゃないような気もするけど)
単に1.6.7の書き間違いかなぁ。
_ 出張中です。ついでに帰省します。
というわけで、月曜日まで反応が遅れ気味になります。
_ 相変わらず英語に泣かされ中。
mswin32関連で、アメリカにんの某氏とメールのやりとりをしてるのですが、"knowledge"はuncountableだと指摘されてしまいました。え、そんなの常識?
_ その某氏は、Ruby関係の日本人の英語は優秀だ、と褒めていらっしゃいました。僕が唯一の例外にならないようにしないとねぇ。はぁ。
_ 暇だったのでさっさと戻ってきてしまった。
戦利品として、英英辞典と独和辞典を持ち帰った。帰ってきてから気付いたが、ドイツ語の初等教科書も漁ってくるべきだったな。
_ 今まで気付いてなかったんだけど、VC++7で/MD付きでリンクすると、MSVCRT.dllじゃなくてMSVCR70.dllに対してリンクされちゃうようだ。C++だと、さらにMSVCP70.dllというDLLもリンクされる(他にも条件があるかもしれないけど)。
_ というわけで、これらのDLLも再配布しないといけないような気がしてきたので、Visual Studio .NETの使用許諾を眺めてみたのだが、ランタイムライブラリに関する記述が存在しない。マジですか。
よくよく使用許諾を調べてみると、全14条のはずなのに、第8条がすっぽり抜け落ちている。第5条に第8条に対する言及があって、その文脈から推測するに、第8条こそがランタイムライブラリなどに関する条項ではないかと思われるのだが...
_ 昨日の話の続き。
Microsoftのサポートセンターに問い合わせてみた(ちなみに電話代はこっち持ち)。
_ 私「...ということになってるんですけど」
サポート「えー、こちらの手元にあるものも同じようですねぇ」
私「どーなってるんでしょう」
サポート「この件については何も聞いておりませんので、上の方に連絡して確認します」
_ とりあえず、某ページには注意書きを上げといた。
DLLの再配布がめんどくさいことになるようなら、コンパイラをVC5に戻しちゃうかも。難儀やのぅ。
_ Microsoftから回答が来た。
サポート「http://www.microsoft.com/japan/msdn/subscriptions/prodinfo/eula.aspに全文が載ってます」
私「(おいおい、紙で配ってるものは抜粋だってどっかに書いてあったか?) わかりました。確認しておきます」
_ ふむ、予想通り、第8条が頒布条件のようだ。
...
8.2って、ひょっとして、例のアンチGPL条項ですか。ダメじゃん。
というわけで、VC++7の使用停止決定。
今上げてるバイナリも、一両日中にVC++5でコンパイルして上げ直し。
_ まず、「Visual Studio .NET Professional MSDN Deluxe Edition 優待パッケージ」に添付されている「使用許諾主契約書」は、全14条からなっているが、Web上に存在する「Microsoft Developer Network Subscription 使用許諾主契約書」とほぼ同じ内容であるにも関わらず、第7.9条〜第7.13条、および第8条全体が存在しない。第7.8条の次が第9条となっており、条文の番号もスキップされている。
なお、「Visual Studio .NET Professional MSDN Deluxe Edition 優待パッケージ」以外ではどうなっているのか不明。各Edition・パッケージごとに主契約書は異なっているようなので、他のものだとちゃんと全文が掲載されているかもしれない。
_ 私がMicrosoftのサポートに問い合わせたところでは、VS.NETに添付の契約書は抜粋であり、上記リンクで示される全文版(?)が正しい、という見解であった。紙の契約書に書かれなかった分は「契約書が長いので、重要でない部分は割愛した」と言われたのだが、ご覧になればわかるとおり、ユーザーの権利を著しく制限する極めて重要な制限事項が、その「割愛した」部分に含まれている。
しかし、この見解に従うと、ユーザーに一部の条項が抜け落ちた契約書を渡して同意を求めておき、かつ、一部の条項が抜け落ちていることをいかなる形でも通知していない、ということになる(いや、私は今回通知を受けたわけだけどね)。
契約が成立するのは、ユーザーがVS.NETをインストールしたときだと考えられるので、その時点で知らされていなかった契約条項が後から追加されたとしても無効ではないだろうか。
また、意識的に一部の条項を削除した契約書を与えておき、実際には別バージョンの契約書の内容が有効である、というやりくちは、本気だったとしたら詐欺に相当するだろう。
_ ただ、私の想像では、この脱落は純粋なミスだろう。いくらなんでも、あの部分をわざと省略するのはあざとすぎる。
あるいは、結局VS.NETに関しては、例の第8.2条を適用しないことにしたから削除したのか。もっとも、その場合、頒布条件に関する条項が存在しないことになってしまう。
まあ、redist.txtに記載されているファイルは再配布可能だということのような気はするが。
_ どっちにしろ、こんなあいまいなものは使えないので、捨てることに決定、なのだが、契約書によると、未使用じゃないと返金対象じゃないようだ。むーん。
真剣にMicrosoftと闘わないとダメってこと?
闘うとしたら、返金してもらうよりは、単純に、第8条は存在しなかったら無効でredist.txtに書かれてるファイルは再配布可能、という結果を得た方が嬉しいのだけどね。
... めんどくさいなぁ。誰か代わりに闘ってください。
_ というわけで、VC++5でコンパイル... と思ったのだが、どうもうまくいかない。
環境壊れちゃったかなぁ。うーむ。
_ [ruby-win32:218]で、artonさんがVS.NETのEULA.TXTについて言及してくださったので、自分のCD-ROMも調べてた。
あ、ほんとだ、紙の使用許諾契約書とぜんぜん違う内容のものが入ってる。
いったいぜんたい、紙と、EULA.TXTと、Web上のものと、どれが正規なんですか?>Microsoft
_ EULA.TXTだと、読み方によっては、VC++のランタイムライブラリのバイナリを単純に再配布する分には問題がないようにも解釈できるような気がする(日本語があいまいすぎる)。
けど、これ以上考えるのも、後で訴えられるのも嫌なので、やっぱりVS.NETはRubyに関しては封印。
被捕捉アンテナ類
[\ay antenna (testing)]
[Ant]
[Antenna-Julia]
[LayserあんてなV2]
[nAntenna]
[nuance de Antenna]
[Rabbit's Antenna]
[Read List]
[Ruby hotlinks 五月雨版 (るるりん。)]
[してたま (私的アンテナ with たまてばこ)]
[ただのあんてな]
[ちゃらんぽらん]
[でこぽんリンク]
[なよろアンテナ]
[にっきトレーサー]
[偽善者あんてな - 2nd season -]
[湘南日記放送局(SDB)]
[はてなの各アンテナ]