2002-11-30 (土)
-
天気:曇り
*今日は休講日
gccでコンパイルしたランタイムでrnd命令を使うと,なんか変な動作をする.どうやらrandに規則性があるようだ.規則性があるのはあたりまえだけど,VC++で作ったものよりも,明らかに単純なパターンがあるきがする.上位ビットはそれほどではないから避けようと思えば避けられるけど….
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
gccでコンパイルしたランタイムでrnd命令を使うと,なんか変な動作をする.どうやらrandに規則性があるようだ.規則性があるのはあたりまえだけど,VC++で作ったものよりも,明らかに単純なパターンがあるきがする.上位ビットはそれほどではないから避けようと思えば避けられるけど….
英語の講義を受けていてふと思う.結局,多くの人は英語は受験のために勉強してるのだから,どうせならエスペランド語とかを教えた方が面白い気がする.さらに一歩進んで,受験用言語を新しく作ってはどうだろうか.純粋に言語とはどういうものかというようなことが分かるような言語とか.そうすればもっと面白い気がする.個人的にはC言語とかをベースにしてくれると楽なんだけど(笑).
結局,コンソールの操作はWindowsは特別扱いにする.で,今度は,kbhitとgetchで問題.UNIXにはkbhitやgetchは無いんですね.そういえば,以前Perlでtelnetクライアントを作ろうとしたときに同じような問題に突き当たった気が….その時はselectとかを駆使して,結局,怪しい動作をするものが出来上がってしまった記憶があるんですが….
体がだるいような….それ以前に,今日は何もやる気が起きない.
Win32のコンソールってエスケープシーケンスが使えないんですね….Windowsを使うようになってエスケープシーケンス使うことが無かったので気づきませんでした.SetConsoleTextAttributeとかを呼べば良いみたいですが….FreeBSDでも動くように作っているので,処理を振り分けないといけなくなってしまいます.printfあたりがやってくれてもいいのに….
なんだか,ランタイムがちゃんと動くか確かめてたら大量にバグが….とりあえず,色々修正する.chdirとmkdirを追加しようと思ったが,VC++でコンパイルできるのにFreeBSDのgccでコンパイルしようとしたらdirect.hが無いとか言われるし….chdirは,unistd.hで良いみたいだけど….いつもWin32SDKで書いてるので,標準的な(?)Cで書いてみると分からないことが多い.結局,manで調べてみたらsys/stat.hが必要ということに落ち着いた.しかもパラメーターの数も違うし….
今日は寝る.strlen,strmid,instr,getstr,memcpy,memsetあたりを作ってみる.本物のHSPと比べると,計算がちょっと遅いです.
ノーベル賞(平和賞とかは除いて)ってのは純粋に研究自体が評価されるべきであって,その人間の人格や社会的地位は,あまり騒ぐ対象にして欲しくないです.その研究をしたのがどんな人だったのかを知りたいのも分かりますが,なんか,テレビを見ると,「その研究をした人」では無くて単に「ノーベル賞を取った人」にされている気がしてならないです.マスコミは,田中さん派みたいですが,結局,田中さんの人間自体の事ばかりで,田中氏がやった研究の中身に関しては殆どノータッチです.せっかく,ノーベル賞受賞者がでても,研究の内容に関心を持つ事が出来ないというのは悲しい気がします.小柴氏なんて悲惨な状態です.カミオカンデも画期的なものだったのに….まぁ,結局は研究ってのは他人に理解してもらうためにやっているわけでは無いわけで,何でも良いのかもしれませんが….
ランタイムをdim,sdim,alloc,int,str,wpoke,wpeekに対応.これで,大きなバッファが使えるようになった.あと,バッファがsignedになってて,いきなりマイナスになったりするのをfixed.なんか,色々機能追加をするついでに,処理の仕方を変えてたら,FreeBSD版のランタイムのサイズが小さくなってるんですけど….昨日は,最適化するオプションを忘れてたのかなぁ.,次は,文字列系の命令を作るか….
昨日のランタイムをrepeat,loop,break,continue,gosub,returnに対応.これで制御文は一通り揃ったかな?ただ,引数の処理が怪しかったのも修正.ついでに1次配列変数も使えるようにする.あと,peek,poke,bsave,bloadも仮実装してパックファイルを扱えるようにする.もうちょっといじったら公開できるかな.
その前に,明日は模試っぽい.
昨日のランタイムを変数が使えるように修正.あとifにも対応…これでスクリプトらしいことが出来るかな?あと,試しにFreeBSDでコンパイルしてみる.これも正常にランタイムとして使えるようです.それではと思って,作ったEXEの拡張子をCGIにしてサーバーにアップロードしてみたところ,ちゃんとCGIとして使えるようです.ちなみにここで動かしています.
ディスコンパイラを作ったついでに,インタプリタも作り始めたり….とりあえず,HSPのランタイムとして使える低機能なインタプリタが完成.ちなみに,mesとgotoしかできません(爆).mesは標準出力に出力します.
bindに穴があるようなので,8.3.4にアップデートしておく.FreeBSDのPortsはまだ8.3.3のままですね.
久しぶりにHSPのaxファイルを眺めてみると,以前とちょっと変わってる.ということで,HSP2.55&2.6用のディスコンパイラを作ってみる.面倒なので,モジュール機能は無視.で,私が普段使わない命令も無視.命令のコード自体は以前のバージョンからあまり変わって無い感じなので,その辺は2.5用に作ったディスコンパイラを参考にする.というわけで,30分程で完成.特に使い道は無いんですが….とりあえず,axファイルからasファイルを作って正常に実行できるのを確認して遊ぶ.でも,こうやってデータを解析してると楽しいですね.HSPも暗号化に対応しましたし,そろそろディスコンパイラを公開しても良いかなぁ.でも,これは作るのが楽しいのであって,使っても何も面白くないソフトなので,公開する必要性は感じないですが.
予備校で…というより,ジュンク堂で2時間ほど立ち読みをしていると,急に体の調子がおかしくなって,これは不味いと思って帰ってくる.よく考えると,昨日からなんだか頭が働いてない気がしたし,頭も痛いし,鼻水も止まらないしと,別に急におかしくなったわけじゃないのか.とにかく,歩くのもままならないような状態だったのでとにかく,動けるうちに帰ろうと思って電車に乗る.が,途中から記憶が全く無い.いや寝てただけなんだけど.で,電車の中で2時間ほど寝てたら嘘のように直ってました.なんだったんだ…あれは.でも,頭痛と鼻水とだるさだけは微妙に残ってます.
ふと,NOHって何基?っと思って調べてみる.オキシムとかヒドロキシイミノとか色々あって結局良く分からなかった.それに関連して,面白い問題を思いついたのだけど,実験する相手が難しいし(人体実験では無いです).いつもながら意味不明ですね.
いつもどおり予備校に行って帰ってくる.帰りに友人とポーカーでストレートの出る確率を計算して時間を潰す.
メールのチェックをすると,なにやら月曜あたりからのメールが未読のままたまっていた.すぐに返さなければいけないようなメールも何通か….そんなにメールを読んでなかったかなぁ.それともプロバイダの不具合だろうか…そうだそうに違いない.と思って,ヘッダを見てみるが遅延した形跡が無い.なんでだ…そうか,きっと私には想像もつかないような裏の組織がメールのヘッダ情報を書き換えたんだ.そう仮定して納得して今日は寝る.
例のコンパイラを手直し.それにしても無駄が多すぎる.かといって作り直す気にはなれない.とりあえず,吐き出すコードをちょっとまともに….が,なかなか思ったように動かない…というより処理の仕方が全く問題だらけのルーチンを書いていた.ちょっとした間違いはいつものことだけど,頭の中での設計の段階で間違ってるとかなり落ち込む.
昨日のバグは最近HSP(Cで書くのが面倒なのでHSP)で使えるようになったmemcpyを使ってたのが原因でした.memcpyはコピー先とコピー元が重なった場合も元のままコピーされるんですね.おかげで,まだ書き込まれていない部分がコピーされてました.仕方ないのでpeek~pokeでやる…処理に時間掛かりすぎ….データが上手く展開できるようになったので,展開した後のデータでプログラムを起動してみる.が,データが見つからないと言われる.十数分悩んだ結果,ファイル名のスペルが間違ってるのに気づく(爆).SCENEじゃなくてSEENなんですね.ってSEENって何ですか?過去分詞形ですか?設定をちょっと書き換える必要があったけど,問題なく動く.ちなみに,無圧縮のデータもパックして1つにまとめたり出来るみたい.
今日もなんだか体の調子が悪い.咳と鼻水が止まらないし….そんなわけで,休みの時間に秋葉原に行く.今日は,いつもより広範囲を歩いてみる.普段あまり歩かないところを歩いていると,いろいろ面白いものもある.さまよっていると霙が降ってきた…もう冬ですね.冷陰極蛍光灯用のインバーターのキットとか買ってくる.
朝,駅に行ったら,電車が無かった….本来なら今日は休日だということに気づく.30分以上,ホームでぼけーっと待つ.おかげで朝の立ち読みタイムが潰れてしまった(泣).
家に帰って眠いので寝る.
PostfixをSMTP-AUTHできるようにしようかと思ったけど,なぜかうまくいかないので後回し.
新しいHSPで少し遊んでみる….以前作ったスクリプトがエラーを出すので調べてみると,モジュールに渡した変数が配列でなくなってしまうようだ.配列変数として渡せば良いんだけど.オーバーフロー対策なんだろうけど,ちょっと不便.
「有限と微小のパン」を読む.四季博士も出てきたし,満足です.
HSP2.6β15が公開されてますね.loadlibの機能が標準で使えるようになったようです.これでHSP単体でもAPIが使えます.