ふと、気付くと
なんだか、Firefoxがやたら重い
まぁ、いつもの事なんだけど、いつもにもまして酷い
ページ表示もなんだかおかしいな、と思ったら
全ての画像が縮小表示されてる
ははぁん、何かのきっかけで縮小表示が有効になり、そんでクソ重いわけか
» 続きも読む
Firefox 1.5 にしたら、対応してなくて使えなかった。
……と思ったらあった!
http://addons.mozilla.org/thema に無いから気付かんかったよ。
これで今まで通り快適に使える ヽ(´ー`)ノ 標準のテーマきらーい
» 続きも読む
if (if-else)
while
do-while
for と、C/C++ と同じ物が用意されている。
条件式は int type を返さなければならず、 0 が偽でそれ以外が真だ。
Limbo の case (switchでは無い)は少し変わっている。
» 続きも読む
試しに、 helloworld.b をふざけた具合に書き直してみた。
init(ctxt : ref Draw->Context, args : list of string)
{
# 日本語で書いてみる。
システム : Sys;
システム = load Sys Sys->PATH;
システム->print("こんにちは 世界 !");
}
Windows上で動いているInfernoには、何の苦も無く日本語が打てた。
acme で Font /fonts/pelm/unicode.9.fonts を ボタン2クリック (以降 click(2) ) してやれば、フォントもちゃんと表示してくれる。
このコード、エラーも無くコンパイルでき、エラーも無く実行できた。
» 続きも読む
モジュール・インタフェース定義では、そのモジュールのtype(型)を定義する。
先の例では HelloWorld だ。
モジュール・インタフェース定義では、この type のみを定義していて、
その中身は別の話である。 つまりはインタフェースの定義と実装は別という話。
モジュールの type と 実装(または値)を関連付けるには、 load 命令を使用する。
このload 命令は、ランタイムに評価される。
先のHelloWorldは、多分実行時にDis VM が インタフェースとその実装を関連付けたんだろう。
» 続きも読む
import を使用すれば、他のモジュールからメンバをインポート出来る。
module_member : import module_variable;
helloworld.b を書き直すと
» 続きも読む
いよいよコードを書いてみよう。
とは言っても、先ずは HelloWorld
limbo には .b (ソースファイル) .dis (コンパイル済みバイトコード)の他に
.m (モジュール定義) があるらしい。
C のヘッダファイルみたいな感じかな? Pascal 流の declare にも近い気がする。
# helloworld.m
Helloworld : module
{
init : fn(ctxt: ref Draw->Context, args : list of string);
};
# helloworld.b
implement Helloworld;
include "sys.m";
include "draw.m";
include "helloworld.m";
init(ctxt : ref Draw->Context, args : list of string)
{
sys : Sys;
sys = load Sys Sys->PATH;
sys->print("Hello World !");
}
» 続きも読む
install.pdf に書いてあった、というか一通りのチュートリアルが書いてある。
起動して色々アプリも起動してみた。
charon (三途の川の渡し人だっけ?) という名の web browser がある。
スクリーンショット
» 続きも読む
※必ずしも書いてある通り/順 でやってるわけじゃないけど
まずは、Section 1 introduction
とりあえず、インストールしよう。
WindowsXPにインストールする。
vitanuovaから Inferno 4th Edition をダウンロード。
CD Image の方が楽だろう。
install ディレクトリに setup.exe があるのでポチっと実行
Inferno Root (インストールディレクトリ)を聞かれる。
僕は F:\Inferno と答えておいた。
インストールしてる間に、Infernoとは何ぞやと整理してみる。
・Plan 9から派生したOSで、その概念はPlan 9と共通する部分が多い
リソースがファイルとして表されてたり、プロセス毎にネームスペースがあったり。
・単なるVMではない。
「Windowsで動く? Javaと同じくVM?」 と思いがちだが、InfernoはOSである。
ただし、VMも持っている。 Dis VM という名前のVMがそれだ。
NativeのInfernoは、ハードウェアの上でInferno Kernel, Device Driver なんかが動き、
その上で Dis VM が動いている。
一方で、WindowsやUnixの上で動作する Inferno emu(こっちはエミュなのだ)では
Host OSの上に、InfernoのDevice Driver等が載り、その上でDis VMが動いている。
VMというと、高コストな物を想像してしまいがちだが、Dis VMは一番最後に環境を整える物 くらいに考えて良いのかもしれない。
と、書いているうちにインストールが終わった。
» 続きも読む