自己紹介
- 名前:hikarupsp
- OsaskWiki内のページ
- はりぼてOSからKさんの世界に引き込まれた。
- CHNOSProjectという自作OSのプロジェクトを(今のところ一人で)進めている。
- 最近は人工知能を研究しようとしていて、OS自作の方は進まなくなってしまった。
- 人工知能を研究している理由は、膨大な情報を分かりやすい形に変換することができれば、人類はまだ進化の余地があると考えたから。
- 進化に伴って知るべき情報は増えてゆくけれど、それにかかる学習の時間は以前より増えてしまう。
- そうすると、やがては人類は、「すでに分かりきったこと」を学習するだけで寿命がつきてしまうのではないか?と思った。
- その意味では、Kさんの考える「機能密度」という概念は、人類の処理能力という有限のリソースを十分に活用するためにも使えるのかもしれない。
- 学校が忙しくて、人工知能すら進まない…。
OSECPU関連で計画中のこと
- WebCPU-VM
- OSECPU-VMのJavaScript実装(着手済み・動作する状態)
- OSEC
- OSECPU-VMのためのC言語風言語(計画中)
- 最初はJavaScriptで作って、その後OSECを使ってOSECPUで動くOSECコンパイラを作ればいいと思う(笑)。
OSECPU Tips
- Macでamakeの代わりをするには "make appname.ose"
OSECPU Bugs
- @064a
- app0023(bball)をコンパイルしたところ、
db2bin: error: LMEMPP(R00, 0x03, P01);
となってコンパイルできない。
- osecpu_ask.hにLMEM0PPのところを真似して
#define LMEMPP(reg, typ, preg) LMEM(reg, typ, preg, 0); PADDI(preg, typ, preg, 1)
と書いたところコンパイルも通り、正しく実行できた。これはアプリソースとヘッダファイルどちらを直すべきなんだろう…
amake.sh
amakeはバッチファイルなのでMacintoshでは動かない…。
こんなことしなくてもmake appname.ose で生成できるじゃん…もっとよく調べるべきだった。
#!/bin/sh
# gcc実行コマンドを設定
cc=gcc
${cc} -x c -E -o a_0ask.txt ${1}.ask
./osectols tool:aska in:a_0ask.txt out:a_1oas_${1}.txt
${cc} -x c ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} -E -P -o a_2cas.txt a_1oas_${1}.txt
./osectols tool:lbstk in:a_2cas.txt out:a_3cas.txt lst:a_3lbl.txt
./osectols tool:db2bin in:a_3cas.txt out:a_4ose.ose
./osectols tool:appack in:a_4ose.ose out:${1}.ose
- ポイント
gccはファイル形式を拡張子で判断してしまうので、"-x c"オプションで、言語解釈をCだよと教えてあげないとプリプロセッサすら通してくれない。"linker input file unused because linking not done"とか言われる。
osecpuをMacOSX Xcodeで!
HariboteOSでも同じことをしているので。
- osecpu.cとtek.cを追加。
- BuildSettingsでPreprocessorMacroにシンボル定義"JITC_OSNUM=0x0002"を追加
- FileTypeはCSource
- BuildPhase.LinkBinaryWithLibrariesにCocoa.frameworkを追加。
現状:Illegal instruction: 4で落ちます…。
配布されている状態で、説明の通りにコンパイルを行っても、落ちます…。
Xcodeなんて使わなくても、forMacOSフォルダ内のMakefileをソースと同じディレクトリにコピーして、
make osecpu
で、きちんと動作するバイナリが生成されます。
"make"だけじゃだめだった…。
default:
make osectols
make osecpu
をMakefileの一般生成規則の下に追加すると良いかもしれない。
コメント
- 時間なんて所詮四つの次元の内の一つでしかない。 -- ttwilb 2013-07-09 (火) 00:55:55
- MacOS版のosecpu生成で、forMacOSディレクトリからMakefileを取り出して、それをosecpuディレクトリにコピーしてからmakeしたらうまくいきますか? -- K 2013-07-09 (火) 10:05:21
- あ…できました!Makefileをコピーして、"make osecpu"でosecpuバイナリが生成されるんですね…。
昨日は"make"しか試していなくてosectolsしか生成されておらず、今Makefileを読んで、defaultターゲットがないのに気付きました。ありがとうございます。
bball(app0023.ose)もきちんと動作しました。お騒がせしてごめんなさい。 -- hikarupsp 2013-07-09 (火) 16:08:35
- Xcodeでうまく行かない原因もわかりました。64bitでコンパイルすると、jitfuncのあたりがずれてしまって動かないようです。32bitでコンパイルすれば問題なしでした。 -- hikarupsp 2013-07-09 (火) 16:23:36
- 解決して何よりです。 -- K 2013-07-09 (火) 17:17:36