新規作成
新規ページ作成
新規ページ作成(その他)
このページをコピーして新規ページ作成
このウィキ内の別ページをコピーして新規ページ作成
このページの子ページを作成
新規ウィキ作成
編集
ページ編集
ページ編集(簡易版)
ページ名変更
メニュー非表示でページ編集
ページの閲覧/編集権限変更
ページの編集モード変更
このページにファイルをアップロード
メニューを編集
バージョン管理
最新版変更点(差分)
編集履歴(バックアップ)
アップロードファイル履歴
このページの操作履歴
このウィキのページ操作履歴
ページ一覧
ページ一覧
このウィキのタグ一覧
このウィキのタグ(更新順)
このページの全コメント一覧
このウィキの全コメント一覧
おまかせページ移動
掲示板
このウィキのスレッド一覧
このページのスレッド一覧
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
メニュー
トップページ
更新履歴
取得中です。
ここを編集