新規作成
新規ページ作成
新規ページ作成(その他)
このページをコピーして新規ページ作成
このウィキ内の別ページをコピーして新規ページ作成
このページの子ページを作成
新規ウィキ作成
編集
ページ編集
ページ編集(簡易版)
ページ名変更
メニュー非表示でページ編集
ページの閲覧/編集権限変更
ページの編集モード変更
このページにファイルをアップロード
メニューを編集
バージョン管理
最新版変更点(差分)
編集履歴(バックアップ)
アップロードファイル履歴
ページ操作履歴
ページ一覧
ページ一覧
このウィキのタグ一覧
このウィキのタグ(更新順)
このページの全コメント一覧
このウィキの全コメント一覧
RSS
このウィキの更新情報RSS
このウィキ新着ページRSS
ヘルプ
ご利用ガイド
Wiki初心者向けガイド(基本操作)
このウィキの管理者に連絡
運営会社に連絡(不具合、障害など)
toy-lang
操作ガイド
新規作成
編集する
全ページ一覧
登録/ログイン
toy-lang
操作ガイド
新規作成
編集する
全ページ一覧
登録/ログイン
toy-lang
ソース公開
ソースを公開しています
高々10,000ステップのソースですが。
ソースも洗練されておりません。
しかも、コメントがほとんどありません、、、
それでも、もし興味があれば、ダウンロードして見て下さい。
最新のソースは、GitHub からでも取得が出来ます。
https://github.com/mitchan0321/toy
実行形式の作成は、
ビルド方法
をご参照ください。
20120716
多倍長整数が扱えるようになりました。
多値代入が出来るよう、set コマンドの書式を拡張しました。
20120610
コルーチン機能の実装(コルーチンで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
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
String::split メソッド。
goto コマンド。
20090923
ローカル変数のスコープを抑止する begin コマンド。
外部プロセスを起動する exec。
print/println と対になる read コマンド。
Block::<< メソッド。
オブジェクトのメソッド一覧を表示する flat コマンド。
20090905
Fileクラスのコンストラクタ。
メソッドキャッシュ。Makefile に HAS_GCACHE を指定してください。
call コマンドのシンタックス変更。メソッドも呼べるように。
最適化を少々。
20090727
マニュアルをコマンドリファレンスまで作成。
コンストラクタの書式を変更。
Cのスタックを消費しつくすバグを修正。
デフォルトのインタプリタスタックサイズを変更(1024→4096*4)。
メモリ不足時の処理を変更。
20090706
case コマンドのシンタックス変更。
cond コマンド追加。
lazy コマンド追加。
Object::string のバグフィックス。
Object::method? メソッド追加。メソッドをサーチします。
Hash::each メソッド追加。
unknown バグフィックス。
あと、マニュアル(途中ですが)追加。doc の下においてあります。
20090517
遅延評価もどきの機能を導入してみた。竹内(たらい回し)関数が一瞬で終わる!
サンプル
を参照ください。正直、これほど効果があるとは思わなかった。
20090510
rubyに似たイテレータ構文を導入。
そのた色々変更。
20090308
trace コマンドを追加。
exit コマンドを追加。
デフォルトのオプティマイズオプションを -O3 に変更。
イベントドリブンに実行する対話形式インタプリタを追加。lib/interp.toy で、toysh から "interp" として実行する。SysQueue を使って多重にイベントを扱う仕組み。
List:.. を追加。1 .. 100 で 1 から 100 までのリストを表します。
20090301
msort (merge sort) のサンプルをライブラリに追加。
List::>> (shift), List::<< (unshift), List::->> (pop), List::<<- (push) を追加。
20090222
lsort のバグ修正。
to_string_call にあった奇妙なバグを修正。
toysh で、result の出力文字数のリミットを設定。
20090221
if 文のコンディションがブロック以外でも動くよう文法を拡張した。
List::flat、Array::list、String::>,>=,<,<= メソッドを追加。
setup.toy を整理し、$LIB_PATH 配下に配置した。
global.c へ各定数を分離した。
20090219
unknown を実装。$LIB_PATH から自動的に 関数名 + ".toy" ファイルをロードし、実行します。
全体的にイテレータのシンタックスを変更 var: x -> in: x にしてみた。Ruby 的なイテレータを実装すべきなんだろうな。
20090215
List::eval メソッド追加。
sleep コマンド追加。
Block::>> メソッド追加(setup.toy 内)
setvar コマンド追加。これに伴い、defvar コマンドの動作を変更。
setup.toy ファイルのインストール先を変更(/usr/local/lib/toy)。
file コマンド追加。
exists? コマンド追加。
$HOME/.toyrc ファイル読み込み。
List::filter メソッド追加。
List::map メソッド追加。
20080904
new コマンドの糖衣構文を追加。
キーワード引数の糖衣構文を追加。
Hash/Array のコンストラクタを作成。
20080831
String::sub 部分文字列取得のメソッド追加。
String::=~ のバグ修正。
init メソッドでパラメータを渡せるように。
Object::string methods.c/commands.c 内部の ::string 呼び出しをオブジェクトのメソッド呼び出しに変更。
20080824
正規表現による文字列マッチングができるようになりました。
20080823
原始的な install を書きました。
pwd/cd/alias コマンドを書きました。
グローバル変数に ENV 変数をセットアップ。VERSION 文字列をセットアップ。
20080822
sdirコマンド--スクリプトの一覧を返す関数--を追加。
List::append! のバグを修正。
20080819
論理演算コマンド ! (not) / and / or を追加。
load コマンド追加。stack-trace でも load したファイルのファイル名が出るようにした。
そのほか細々とした最適化(根本的な効果は非常に薄かった)。
20080816
trap コマンドでシグナルを扱えるようになった。
stack-trace コマンドでその時点のスタックトレースを取得できる。
function/method でクロージャの変数を参照できるようになった。
20080813
exception 発生時に、グローバル変数の '@stack-trace' にスタックトレースを出力するようになりました。仕様としては良くないですが、とりあえず実装してみたものです。
20080808
print / println が、@out 変数、stdout 変数の File オブジェクトに出力するようになった。
argv をローカルからグローバルのスロットに移動し、ARGV に変更。
グローバルスロットの stdin / stdout / stderr を初期生成。
20080805
File クラスの追加。
Array クラスの追加。
get マクロ (ex. [$objec get $key] → $obj,$key に展開。
引数展開のアルゴリズムを改良。
20080727
Hash の追加。
コンストラクタ(init メソッド) を呼べるように。
20080726
「ソース公開」をウィキ内検索
最終更新:2012年07月16日 18:44
添付ファイル
toy-20090219.tar.gz
toy-20090221.tar.gz
toy-20090222.tar.gz
toy-20090301.tar.gz
toy-20090308.tar.gz
toy-20090510.tar.gz
toy-20090517.tar.gz
toy-20090706.tar.gz
toy-20090727.tar.gz
toy-20090905.tar.gz
toy-20090923.tar.gz
toy-20091101.tar.gz
toy-20110828.tar.gz
toy-20120610.tar.gz
toy-20120716.tar.gz
メニュー
トップページ
更新履歴
取得中です。
ここを編集