「ソース公開」の編集履歴(バックアップ)一覧に戻る

ソース公開 - (2009/05/17 (日) 22:49:13) のソース

** ソースを公開しています

高々10,000ステップのソースですが。
ソースも洗練されておりません。
しかも、コメントがほとんどありません、、、
それでも、もし興味があれば、ダウンロードして見て下さい。

実行形式の作成は、[[ビルド方法]]をご参照ください。

-[[20090517>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090517.tar.gz]]
--遅延評価もどきの機能を導入してみた。竹内関数が一瞬で終わる!
--[[サンプル公開]]を参照ください。
-[[20090510>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090510.tar.gz]]
--rubyに似たイテレータ構文を導入。
--そのた色々変更。
-[[20090308>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090308.tar.gz]]
--trace コマンドを追加。
--exit コマンドを追加。
--デフォルトのオプティマイズオプションを -O3 に変更。
--イベントドリブンに実行する対話形式インタプリタを追加。lib/interp.toy で、toysh から "interp" として実行する。SysQueue を使って多重にイベントを扱う仕組み。
--List:.. を追加。1 .. 100 で 1 から 100 までのリストを表します。
-[[20090301>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090301.tar.gz]]
--msort (merge sort) のサンプルをライブラリに追加。
--List::>> (shift), List::<< (unshift), List::->> (pop), List::<<- (push) を追加。
-[[20090222>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090222.tar.gz]]
--lsort のバグ修正。
--to_string_call にあった奇妙なバグを修正。
--toysh で、result の出力文字数のリミットを設定。
-[[20090221>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090221.tar.gz]]
--if 文のコンディションがブロック以外でも動くよう文法を拡張した。
--List::flat、Array::list、String::>,>=,<,<= メソッドを追加。
--setup.toy を整理し、$LIB_PATH 配下に配置した。
--global.c へ各定数を分離した。
-[[20090219>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090219.tar.gz]]
--unknown を実装。$LIB_PATH から自動的に 関数名 + ".toy" ファイルをロードし、実行します。
--全体的にイテレータのシンタックスを変更 var: x -> in: x にしてみた。Ruby 的なイテレータを実装すべきなんだろうな。
-[[20090215>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090215.tar.gz]]
--List::eval メソッド追加。
--sleep コマンド追加。
--Block::>> メソッド追加(setup.toy 内)
--setvar コマンド追加。これに伴い、defvar コマンドの動作を変更。
--setup.toy ファイルのインストール先を変更(/usr/local/lib/toy)。
--file コマンド追加。
--exists? コマンド追加。
--$HOME/.toyrc ファイル読み込み。
--List::filter メソッド追加。
--List::map メソッド追加。
-[[20080904>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080904.tar.gz]]
--new コマンドの糖衣構文を追加。
--キーワード引数の糖衣構文を追加。
--Hash/Array のコンストラクタを作成。
-[[20080831>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080831.tar.gz]]
--String::sub 部分文字列取得のメソッド追加。
--String::=~ のバグ修正。
--init メソッドでパラメータを渡せるように。
--Object::string methods.c/commands.c 内部の ::string 呼び出しをオブジェクトのメソッド呼び出しに変更。
-[[20080824>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080824.tar.gz]]
--正規表現による文字列マッチングができるようになりました。
-[[20080823>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080823.tar.gz]]
--原始的な install を書きました。
--pwd/cd/alias コマンドを書きました。
--グローバル変数に ENV 変数をセットアップ。VERSION 文字列をセットアップ。
-[[20080822>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080822.tar.gz]]
--sdirコマンド--スクリプトの一覧を返す関数--を追加。
--List::append! のバグを修正。
-[[20080819>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080819.tar.gz]]
--論理演算コマンド ! (not) / and / or を追加。
--load コマンド追加。stack-trace でも load したファイルのファイル名が出るようにした。
--そのほか細々とした最適化(根本的な効果は非常に薄かった)。
-[[20080816>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080816.tar.gz]]
-- trap コマンドでシグナルを扱えるようになった。
-- stack-trace コマンドでその時点のスタックトレースを取得できる。
-- function/method でクロージャの変数を参照できるようになった。
-[[20080813>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080813.tar.gz]]
-- exception 発生時に、グローバル変数の '@stack-trace' にスタックトレースを出力するようになりました。仕様としては良くないですが、とりあえず実装してみたものです。
-[[20080808>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080808.tar.gz]]
-- print / println が、@out 変数、stdout 変数の File オブジェクトに出力するようになった。
-- argv をローカルからグローバルのスロットに移動し、ARGV に変更。
-- グローバルスロットの stdin / stdout / stderr を初期生成。
-[[20080805>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080805.tar.gz]]
-- File クラスの追加。
-- Array クラスの追加。
-- get マクロ (ex. [$objec get $key] → $obj,$key に展開。
-- 引数展開のアルゴリズムを改良。
-[[20080727>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080727.tar.gz]]
-- Hash の追加。
-- コンストラクタ(init メソッド) を呼べるように。
-[[20080726>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20080726.tar.gz]]

















----