「ソース公開」の編集履歴(バックアップ)一覧はこちら

ソース公開」(2012/07/16 (月) 18:44:24) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

** ソースを公開しています 高々10,000ステップのソースですが。 ソースも洗練されておりません。 しかも、コメントがほとんどありません、、、 それでも、もし興味があれば、ダウンロードして見て下さい。 実行形式の作成は、[[ビルド方法]]をご参照ください。 -[[20120716>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20120716.tar.gz]] -- 多倍長整数が扱えるようになりました。 -- 多値代入が出来るよう、set コマンドの書式を拡張しました。 -[[20120610>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20120610.tar.gz]] -- コルーチン機能の実装(コルーチンでCスタックを使用する処理を書きました)。 -- データタイプを判断するためのコマンドを追加。 --- symbol?/nil?/list?/integer?/real?/string?/rquote?/block?/closure?/func?/object?/dict?/vector? -- パーサに ':' マクロを追加。以下の様に使います(→が ':' マクロを使用した例): --- [[[self] vars] len] + 1 → self : vars : len : + 1 -- スコープのデータ構造・処理を変更。これにより、Yコンビネータが正しく動くようになりました。 -- 64ビット環境での動作。Linux、FreeBSD での64ビットOSに対応しました。 -[[20110828>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20110828.tar.gz]] --Hashクラス/Arrayクラスにかわるdict型、vector型を追加。 --辞書を取得するコマンド各種を追加 ---dict-local / dict-object / dict-func / dict-global / dict-class --eq?コマンド追加。 --connectコマンド(TCPソケットのクライアント側)追加。 --loopコマンド追加。 --injectコマンド追加(Rubyからの輸入)。 --String::int、String::real、String::number を追加(それぞれ数値に変換)。 --Integer に real、<<、>>、||、&&、^^、~~ を追加(それぞれ、realに変換、左シフト、右シフト、ビット or、and、xor、not)。 --関数呼び出しのパラメータについて、基本的に遅延評価により呼び出すように変更。 --hash.cのバグ修正。 --String::fmt を追加。 --memoiz 関数を作成する memoiz.toy をライブラリに追加。 -[[20091101>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20091101.tar.gz]] --String::split メソッド。 --goto コマンド。 -[[20090923>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090923.tar.gz]] --ローカル変数のスコープを抑止する begin コマンド。 --外部プロセスを起動する exec。 --print/println と対になる read コマンド。 --Block::<< メソッド。 --オブジェクトのメソッド一覧を表示する flat コマンド。 -[[20090905>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090905.tar.gz]] --Fileクラスのコンストラクタ。 --メソッドキャッシュ。Makefile に HAS_GCACHE を指定してください。 --call コマンドのシンタックス変更。メソッドも呼べるように。 --最適化を少々。 -[[20090727>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090727.tar.gz]] --マニュアルをコマンドリファレンスまで作成。 --コンストラクタの書式を変更。 --Cのスタックを消費しつくすバグを修正。 --デフォルトのインタプリタスタックサイズを変更(1024→4096*4)。 --メモリ不足時の処理を変更。 -[[20090706>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090706.tar.gz]] --case コマンドのシンタックス変更。 --cond コマンド追加。 --lazy コマンド追加。 --Object::string のバグフィックス。 --Object::method? メソッド追加。メソッドをサーチします。 --Hash::each メソッド追加。 --unknown バグフィックス。 --あと、マニュアル(途中ですが)追加。doc の下においてあります。 -[[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]] ----
** ソースを公開しています 高々10,000ステップのソースですが。 ソースも洗練されておりません。 しかも、コメントがほとんどありません、、、 それでも、もし興味があれば、ダウンロードして見て下さい。 最新のソースは、GitHub からでも取得が出来ます。 https://github.com/mitchan0321/toy 実行形式の作成は、[[ビルド方法]]をご参照ください。 -[[20120716>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20120716.tar.gz]] -- 多倍長整数が扱えるようになりました。 -- 多値代入が出来るよう、set コマンドの書式を拡張しました。 -[[20120610>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20120610.tar.gz]] -- コルーチン機能の実装(コルーチンでCスタックを使用する処理を書きました)。 -- データタイプを判断するためのコマンドを追加。 --- symbol?/nil?/list?/integer?/real?/string?/rquote?/block?/closure?/func?/object?/dict?/vector? -- パーサに ':' マクロを追加。以下の様に使います(→が ':' マクロを使用した例): --- [[[self] vars] len] + 1 → self : vars : len : + 1 -- スコープのデータ構造・処理を変更。これにより、Yコンビネータが正しく動くようになりました。 -- 64ビット環境での動作。Linux、FreeBSD での64ビットOSに対応しました。 -[[20110828>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20110828.tar.gz]] --Hashクラス/Arrayクラスにかわるdict型、vector型を追加。 --辞書を取得するコマンド各種を追加 ---dict-local / dict-object / dict-func / dict-global / dict-class --eq?コマンド追加。 --connectコマンド(TCPソケットのクライアント側)追加。 --loopコマンド追加。 --injectコマンド追加(Rubyからの輸入)。 --String::int、String::real、String::number を追加(それぞれ数値に変換)。 --Integer に real、<<、>>、||、&&、^^、~~ を追加(それぞれ、realに変換、左シフト、右シフト、ビット or、and、xor、not)。 --関数呼び出しのパラメータについて、基本的に遅延評価により呼び出すように変更。 --hash.cのバグ修正。 --String::fmt を追加。 --memoiz 関数を作成する memoiz.toy をライブラリに追加。 -[[20091101>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20091101.tar.gz]] --String::split メソッド。 --goto コマンド。 -[[20090923>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090923.tar.gz]] --ローカル変数のスコープを抑止する begin コマンド。 --外部プロセスを起動する exec。 --print/println と対になる read コマンド。 --Block::<< メソッド。 --オブジェクトのメソッド一覧を表示する flat コマンド。 -[[20090905>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090905.tar.gz]] --Fileクラスのコンストラクタ。 --メソッドキャッシュ。Makefile に HAS_GCACHE を指定してください。 --call コマンドのシンタックス変更。メソッドも呼べるように。 --最適化を少々。 -[[20090727>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090727.tar.gz]] --マニュアルをコマンドリファレンスまで作成。 --コンストラクタの書式を変更。 --Cのスタックを消費しつくすバグを修正。 --デフォルトのインタプリタスタックサイズを変更(1024→4096*4)。 --メモリ不足時の処理を変更。 -[[20090706>http://www31.atwiki.jp/toy-lang?cmd=upload&act=open&pageid=12&file=toy-20090706.tar.gz]] --case コマンドのシンタックス変更。 --cond コマンド追加。 --lazy コマンド追加。 --Object::string のバグフィックス。 --Object::method? メソッド追加。メソッドをサーチします。 --Hash::each メソッド追加。 --unknown バグフィックス。 --あと、マニュアル(途中ですが)追加。doc の下においてあります。 -[[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]] ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: