
671年6月10日(旧暦:天智天皇10年4月25日) 漏刻と鐘鼓による時報開始。
それに由来して時の記念日になってます。
漏刻は簡単に言うと水時計、水があふれるまでの時間をカウントして、時刻をみたわけだ
俺がなんかの拍子にものすごい金持ちになって、広い庭付きの大豪邸に住めるようになったら
庭に水時計作るんだ、鹿おどしみたいなのを組み合わせて時刻が分かるようにして
もちろん電気なんか使わないで
1955年、日本電電公社の時報サービス(いわゆる117)が始まる。
時の記念日に合わせたんだろうね
1865年には、ミュンヘンでワーグナーの『トリスタンとイゾルデ』 初演

» 続きも読む
» 続きも読む
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は一番最後に環境を整える物 くらいに考えて良いのかもしれない。
と、書いているうちにインストールが終わった。
» 続きも読む

