﻿S-SIZEインタプリタ更新履歴

2011/01/26 v1.20.3
テンプレート引数なしで関数を呼ぶとコンパイル中に落ちるのを修正。

2011/01/07 v1.20.2.4
<shell.ssz>にファイルをゴミ箱に移動する関数を追加。

2011/01/02 v1.20.2.3
<math.ssz>のrandIを修正。

2011/01/01 v1.20.2.2
<math.ssz>の乱数の生成を修正。

2010/12/18 v1.20.2.1
<file.ssz>にディレクトリ操作関係の関数を追加。

2010/11/12 v1.20.2
列挙型の定義ですでに定義された値を参照するとエラーになるのを修正。

2010/11/2 v1.20.1
refのメンバー関数を呼ぶとき、参照型の返り値だと落ちるのを修正。

2010/11/2 v1.20
sizeof(int)をtypesize(int)と書くようにした。
typeidof(int)をtypeid(int)と書くようにした。

r.method!$int(int)?~f(10)=>n
の様に書いてrefとlistの指す先頭のオブジェクトのメンバー関数を呼べるようにした。
失敗したときはfalseを返す。返り値は=>で取得する。

2010/10/29 v1.19.20
動的参照型の循環参照を自動的に開放するところで落ちるのを修正。

2010/10/18 v1.19.19
条件演算子の値に参照型が返り値の関数の呼び出しを書くと落ちるのを修正。

2010/10/15 v1.19.18
STLを使うようにした。

2010/10/3 v1.19.17
コマンドラインのパースを修正。

2010/10/3 v1.19.16
循環参照を自動的に開放するところで落ちるのを修正。

2010/10/1 v1.19.15
%^/charのようなものにも.=を使えるようにした。

2010/9/30 v1.19.14
refに^refを入れられるようにした。

2010/9/29 v1.19.13
循環参照を自動的に開放するところがまともでなかったのを修正。

2010/9/27 v1.19.12
循環参照を自動的に開放するところが確実でなかったのを修正。

2010/9/26 v1.19.11
循環参照を自動的に開放するところが確実でなかったのを修正。

2010/7/3 v1.19.10.2
socket.dllを更新。

2010/7/2 v1.19.10.1
socket.dllを更新。

2010/6/27 v1.19.10
メモリーリークするのを修正。

2010/6/26 v1.19.9
longで0除算が発生すると発生した場所がわからないのを修正。

2010/6/21 v1.19.8
実行時コンパイルの領域を実行時読み書き不可にした。

2010/6/19 v1.19.7
signature型で定義したdelegateが引数が2個以上だとエラーになるのを修正。

2010/5/20 v1.19.6
間違って、未定義ですのエラーが出るのを修正。

2010/5/16 v1.19.5
1 + r.new(0)$1 のように書いたときまともに動かないのを修正。

2010/5/14 v1.19.4
不動小数点数に単項演算子の＋をつけるとエラーになるのを修正。

2010/5/5 v1.19.3
同じクラスの/で定義された変数に代入できないのを修正。

2010/5/2 v1.19.2
返り値の型チェックをしていないのを修正。

2010/3/2 v1.19.1
無名関数を引数に持つ関数ポインタのバグを修正。

2010/1/29 v1.19
無名関数で返り値の型を後ろに書けなかったのを修正。

2010/1/16 v1.18
..をつけて返り値の型を後ろにかけるようにして、関数のテンプレートのときの..をやめた。

2010/1/13 v1.17.2
シグネチャ型のtypeのretが取れなかったのを修正。

2010/1/3 v1.17.1
sizeofとtypeidofが文の先頭にあるとエラーになるのを修正。

2010/1/1 v1.17
参照型が返り値の関数の関数ポインタも同じ型になるようにした。
signature.retで返り値の型を取れるようにした。

2009/11/29 v1.16.10
メンバーにlibがあるときのバグを修正。

2009/11/28 v1.16.9
@を使ったときコンパイル中にフリーズするのを修正。

2009/11/27 v1.16.8
=>でコンパイル中に落ちるのを修正。

2009/11/27 v1.16.7
@を使ったときまともに動かなくなるバグを修正。

2009/11/25 v1.16.6
=>でコンパイル中に落ちるのを修正。

2009/11/24 v1.16.5
(a=f(b))$(a+1) を f()=>a#(a+1)<, b と書けるようにした。=>の優先度は#と同じ。

2009/11/23 v1.16.4
f(a=, f(a=, b)$a)$a を f(a=)#a<, f(a=, b)#a と書けるようにした。#の優先度は<,と同じ。

2009/10/22 v1.16.3
signature型を使った関数定義でpublicにできないのを修正。

2009/10/21 v1.16.2
type _t = $int(int, int); *_t f(a, b){ ret a+b; } などのように関数を定義できるようにした。

2009/10/18 v1.16.1
循環参照を自動的に開放するところが安全でなかったのを修正。

2009/10/6 v1.16
signature型(funcやmethodなどとあわせて使う)を実装。
delegateを~と書くようにした。
type _t = $int(int, int); [_t(a, b){ ret a+b; }]; などのように書けるようにした。

2009/9/21 v1.15.2
循環参照を自動的に開放するところが安全でなかったのを修正。

2009/9/19 v1.15.1
文字列リテラルなどのMutexを開放していなかったのを修正。

2009/9/18 v1.15
`を&と書くように変更。
~を|と書くように変更。
mbr.を`と書くように変更。
<>.を~とかけるように変更。

2009/9/18 v1.14
$を/と書くように変更。
#を$と書くように変更。
len(r)を#rと書くように変更。
#演算子(絶対値を求める、前置)を追加。

2009/9/15 v1.13.16
実行中の使用メモリー量を減らした。

2009/9/14 v1.13.15
**のバグを修正。

2009/9/8 v1.13.14
プラグイン呼び出し方を変更(以前との互換性なし)。

2009/9/5 v1.13.13
プラグイン内でクリティカルセクションを開放すると落ちるのを修正。

2009/9/5 v1.13.12
constevalがスレッドセーフでなかったのを修正。

2009/9/2 v1.13.11
別のファイルから追加したメンバ関数が途中でretして
初期化されていない可能性のあるグローバル変数にアクセスできたのを修正。

2009/8/31 v1.13.10
@のバグを修正。

2009/8/13 v1.13.9
排他制御にクリティカルセクションを使うようにした。

2009/8/12 v1.13.8
ローカル変数の定義と同時に=だけでなく . .. .= も使えるようにした。

2009/7/25 v1.13.7
条件が定数の条件演算子で間違ってエラーが出るのを修正。

2009/7/12 v1.13.6
文字列リテラルなどのMutexを開放していなかったのを修正。

2009/7/5 v1.13.5
retがありませんのエラーの行数が間違うことがあるのを修正。

2009/6/13 v1.13.4
*をつけた定義で間違ってエラーが出るバグを修正。

2009/6/12 v1.13.3
delegate内で間違って、break内ではreturnできませんエラーが出るバグを修正。

2009/5/21 v1.13.2
@で間違って、ライブラリの循環参照はできませんエラーが出るバグを修正。

2009/5/20 v1.13.1
.の代わりに@でフィルスコープのグローバルのライブラリを参照できるようにした。

2009/5/14 v1.13
$を*と書くように変更。
seeを$と書くように変更。

2009/5/8 v1.12
コンパイラから見て先頭で定義かどうかわからないところには、
$をつけなければいけないように変更。

2009/4/28 v1.11.2
必要な場所にvolatileを使うように修正。

2009/4/16 v1.11.1
後置!!のバグを修正。

2009/4/15 v1.11
!!演算子(bool型のトグル、前置、後置)を追加した。

2009/3/23 v1.10.3
64bitの定数でない右シフトがまともに動いていなかったのを修正。

2009/1/1 v1.10.2
循環参照を自動的に開放するところがまともに動かない可能性があったのを修正。

2008/12/30 v1.10.1
constevalに長さ0の文字列を渡すと落ちるのを修正。

2008/12/27 v1.10
~.を.と書くようにした。
enumを~と書くようにした。

2008/12/20 v1.9.1
同じクラスの別のインスタンスのメンバ関数を呼ぶとエラーになるのを修正。
refやlistを含む循環参照を自動的に開放するところがまともに動いていなかったのを修正。

2008/12/7 v1.9
ref:を^と書くようにした。
list:を%と書くようにした。
classを`と書くようにした。
returnをretと書くようにした。
:->を:<-と書くようにした。

2008/12/2 v1.8.31
普通の関数をテンプレート関数のように呼ぼうとしたときのバグを修正。

2008/11/29 v1.8.30
**演算子(浮動小数点数の累乗)を追加した。

2008/11/17 v1.8.29
クラスの定義内でmethod型の初期値にグローバル関数を指定できなかったのを修正。
idnemeが<:と:>のままだったのを修正。

2008/10/9 v1.8.28
初期化前のグローバル変数を使う可能性があってもコンパイルエラーがでないバグを修正。
定義されていないグローバルの関数を呼ぼうとするとコンパイル中に落ちるのを修正。

2008/8/31 v1.8.27
関係ないところに型エラーと出るバグを修正。

2008/8/26 v1.8.26
コンパイル時のメモリーリークを修正。

2008/8/12 v1.8.25
循環参照を自動的に開放するところがまともに動いていなかったのを修正。
グローバルの子ブロックでリターンすると落ちるバグを修正。

2008/8/11 v1.8.24
初期化前のメンバー変数を使う可能性がありますというエラーが出るバグを修正。

2008/8/10 v1.8.23
時々caseにおかしい値がありますというエラーが出るバグを修正。

2008/8/9 v1.8.22
エラーのダイアログにエラーアイコンを表示するようにした。

2008/8/8 v1.8.21
異常終了の時のダイアログを表示するときメモリを確保しないようにした。

2008/8/6 v1.8.20
グローバル変数がひとつもないと
初期化していない可能性のあるグローバル変数を使う関数ですというエラーが出るバグを修正。

2008/8/5 v1.8.19
ssz.dllのRunの返り値をboolにした。コンパイルに失敗したときにfalseを返す。

2008/7/26 v1.8.18
サブブロック内だと同じクラスのプライベートメンバにアクセスできなかったのを修正。

2008/7/20 v1.8.17
間違って初期化前のメンバー変数を使う可能性がありますというエラーが出るバグを修正。

2008/7/19 v1.8.16
符号付整数の比較がオーバーフローする値だと正しくないのを修正。

2008/7/7 v1.8.15
break:内でrefやlistの返り値の関数を使うと落ちるバグを修正。

2008/7/4 v1.8.14
テンプレート関数内で前方参照で関数を呼ぶと、全く正しくコンパイルできなかったのを修正。

2008/6/25 v1.8.13
breakラベル内で初期化の前にreturnする可能性がある変数にもアクセスできてしまうバグを修正。

2008/6/3 v1.8.12
異常終了のときどんな種類の例外が発生したか表示するようにした。

2008/5/10 v1.8.11
テンプレート内に\"か\'があると括弧の対応のエラーになるのを修正。

2008/5/1 v1.8.10
関数の引数でdelegateリテラルの前が直接レジスタに乗るオブジェクトだと
前のオブジェクトをスタックに積まずに関数をコールするバグを修正。

2008/4/23 v1.8.9
循環参照を自動的に開放するところで自動的にデストラクタを走らせたとき、
デストラクタが終了しても自己に対する参照が残っている場合、正しく動かなかったのを修正。

2008/4/22 v1.8.8
loop内などで最初のラベルの前のサブブロック内でbreak,continue;などとやると
コンパイル中に落ちるのを修正。

2008/4/13 v1.8.7
++,--の後に#があるとコンパイル中に落ちるのを修正。

2008/4/10 v1.8.6
テンプレート内で条件付きコメントアウトがおかしくなるのを修正。

2008/4/8 v1.8.5
/?/* 定数条件1: ... /* 定数条件2: ... /*?*/
のようにすると条件付きコメントアウトをするようにした。
最初に成立した条件の後以外はコメントになる。

2008/4/4 v1.8.4
wait(..)の後ろが;でなく#だったとき落ちるのを修正。

2008/4/2 v1.8.3
refやlistを返す関数でreturnがなくてもエラーにならなかったのを修正。
refやlistを返す関数内でdelegateの返り値がエラーになるのを修正。

2008/3/29 v1.8.2
テンプレート内でライブラリを定義すると間違ってライブラリの循環参照になってしまうのを修正。
else:,default:がないときelse;,default;があるとエラーになるようにした。

2008/3/25 v1.8.1
同じクラスの別のインスタンスのメンバ関数を呼ぶとエラーになるのを修正。

2008/3/12 v1.8
<:を!と書くようにした。
:>を?と書くようにした。
propertyをseeと書くようにした。
ref:constをref:seeと書くようにした。

2008/3/7 v1.7.20
不正終了時にファイル名と行数を表示するようにした。

2008/3/3 v1.7.19
条件演算子のところにrefを返す関数があると落ちるのを修正。

2008/3/1 v1.7.18
関数がたくさん定義されているときなどのコンパイル速度を改善。
8bit、16bitのインクリメント、デクリメントで隣接する変数を壊していたのを修正。
#の後ろに定数を書いて演算すると落ちるバグを修正。

2008/2/25 v1.7.17
constでもconstでない公開グローバル関数とエラーがでるのを修正。

2008/2/24 v1.7.16
break:以降で子ブロックで親ブロックの変数にアクセスできなくなっていたのを修正。
methodを,で続けて定義するとエラーになるのを修正。
条件演算子のところでコンパイル中に落ちるのを修正。

2008/2/22 v1.7.15
文の先頭に\があるとエラーになるのを修正。

2008/2/19 v1.7.14
diffで再分岐するとき最初の分岐にelseがないとおかしくなるのを修正。
a[b[i]..-1]などがエラーになってしまっていたのを修正。

2008/2/18 v1.7.13
別ファイルで関数を定義したとき子ブロックがあるとエラーになるバグを修正。
複数の引数が渡されたdelegateがまともに動作していなかったのを修正。

2008/2/8 v1.7.12
循環参照を自動的に開放するところが安全でなかったのを修正。

2008/2/7 v1.7.11
条件演算子のところにrefを返す関数があると落ちるのを修正。

2008/2/2 v1.7.10
constevalで小数点つきの数字を正常に読み込めないのを修正。
ブロックでないifのところにrefを返す関数があると落ちるのを修正。

2008/2/1 v1.7.9
浮動小数点数の比較が間違っていたのを修正。

2008/1/31 v1.7.8
ライブラリの関数の関数ポインタをとろうとするとエラーになってしまうのを修正。
lock内でreturnすると落ちるバグを修正。

2008/1/25 v1.7.7
メンバー関数内で同じクラスの型のオブジェクトのメンバーを扱おうとすると
エラーになってしまうのを修正。

2008/1/20 v1.7.6
循環参照を自動的に開放するところが安全でなかったのを修正。

2008/1/17 v1.7.5
<,で最後の引数を括弧の外に書けるようにした。

2008/1/8 v1.7.4
lockが安全でなかったのを修正。

2007/12/29 v1.7.3
delegateの引数がおかしくなるのを修正。

2007/12/26 v1.7.2
循環参照を自動的に開放するところがおかしかったのを修正。

2007/12/25 v1.7.1
委譲した関数が関数ポインタの型になっていたのを修正。
循環参照を自動的に開放するところで再帰を使わないようにした。

2007/12/24 v1.7
idnameがメモリーリークしていたのを修正。
返り値にrefとlistを指定できるようにした。ただし、関数ポインタの型は
第一引数に返り値用の参照引数を加えたvoid関数。
refとlistの型を:で指定するようにした。例、ref:char、list:ref:char
返り値にもテンプレート引数を指定できるようにした。.._t foo<_t>()のように
..をつける。

2007/12/19 v1.6.12
符号なし8/16bitの右シフトがおかしかったのを修正。

2007/12/18 v1.6.11
初期化前の変数が使われる可能性があるエラーの判定を修正。

2007/12/16 v1.6.10
libのproperty変数を外から書き換えられたのを修正。
ref型の比較ができなかったのを修正。
本体部分をdllにした。
参照カウントのインクリメントがアトミックになっていなかったのを修正。

2007/12/4 v1.6.9
循環参照を自動的に開放するところのバグを修正。

2007/12/3 v1.6.8
参照引数のselfがおかしかったのを修正。

2007/11/26 v1.6.7
子ブロックでdelegate型変数が代入できないのを修正した。

2007/10/05 v1.6.6
r.new(1)#rでコンパイル中に落ちるのを修正。

2007/08/28 v1.6.5
循環参照を自動的に開放するところのメモリーリークを修正。

2007/08/22 v1.6.4
透過関数のmethod変数を修正。

2007/08/17 v1.6.3
#のある式がおかしいエラーがでるのを修正。

2007/08/16 v1.6.2
diff内でreturnすると正常でなかったのを修正。
テンプレート関数の再起でコンパイル中に落ちるのを修正。

2007/08/15 v1.6.1
テンプレートの前方参照が正常でなかったのを修正。

2007/08/13 v1.6
gblを~と書くようにした。

2007/08/06 v1.5.7
r[len(r)]が正しく動かないのを修正。
idnameでテンプレートでも名前がわかるようにした。

2007/08/03
new()内のエラーの行番号がおかしくなるのを修正。

2007/8/02 v1.5.6
戻り値があるときデストラクタを呼ぶと落ちるのを修正。

2007/7/31
continue:が無くてcontinue;の時エラーにするようにした。

2007/7/30 v1.5.5
new()やdelete()内で文字列リテラルなどが使用できなくなるのを修正した。
constevalで取得した関数ポインタの関数がコンパイルされていない場合があったのを修正。
branch{cond<ラベル> 条件: comm: diff<ラベル>: }がまるで正常に動作していなかったのを修正。
テンプレート関数を定義より前で呼び出せないのを修正。

2007/7/28
関数ポインタの比較ができなかったのを修正。

2007/7/27
「#」の優先度を「*」,「/」より高くした。

2007/7/26 v1.5.4
constevalで内部的に配列のリテラル領域を確保してしまうのを防止した。
constevalでブロックの中で正しく動かないのを修正。

2007/7/26 v1.5.3
idnameとconstevalを実装した。

2007/7/21 v1.5.2
委譲がうまくいかなかったバグを修正。
クラスをlist型の末尾に付け足すのを間違えていたのを修正。
浮動小数点数の計算が間違っていたのを修正。

2007/7/17 v1.5.1
クラスなどのコピーを間違えていたのを修正。

2007/7/15 v1.5
JITコンパイルで高速化した。
その他さまざまな仕様変更。

2007/6/10 v1.2.5
VMの内部を整理した。

2007/6/5
動的確保したthreadが正しく開放されていなかったのを修正。

2007/6/4 v1.2.4
VMとコンパイラを修正した。

2007/6/2 v1.2.3
VMを修正した。

2007/5/31 v1.2.2
テンプレートで正常なエラーメッセージが出ないことがあったのを修正。
関数ポインタの呼び出しで引数がないとき、4バイト以外の戻り値だと正常に動作しなかったのを修正。
refの型でのconstの扱いが間違っていたのを修正。
インデックスのオーバーフロー(4バイト整数上の)で落ちないようにした。

2007/5/30
delegateのが引数が2つ以上のとき動かなかったのを修正。
a.new[0]のような負でない数のとき動かなかったのを修正。

2007/5/28 v1.2.1
branch{cond<ラベル> 条件: comm: diff<ラベル>: }がまるで正常に動作していなかったのを修正。

2007/5/27
式の定数部分を事前に計算するようにした。
それにより定数同士の型チェックが厳しくなくった(左側の型にあわせられる)。

2007/5/9 v1.2
まだ定義されていないクラスを引数に指定したとき正常に動かなかったのを修正。

2007/5/4
switchが正常に動作していなかったのを修正。

2007/5/1
type型を使ってキャストをできるようにした。

2007/4/28
グローバルに初期化するものや実行するものがないとき、
そのファイルのグローバルオブジェクト(デストラクタしかないクラス)の破棄が行われないバグを修正。

2007/4/24
参照カウンタを減らすときInterlockedDecrementを使うようにした。
マルチスレッド関連のフラグ等にInterlockedExchangeなどを使うようにした。

2007/4/21
型を指定しないrefとlistのsizeをtypesizeと書くようにした。

2007/3/29
型を指定しないrefとlistを実装した。

2007/3/28
a[0]<>のようなものができなかったバグを修正。
a.new[0]などでデストラクタがある型だと正常に動かないバグを修正。

2007/03/25
グローバルのサブブロックでreturnした場合、グローバル変数をその場で破棄していたバグを修正。

2007/3/24
子ブロックで宣言されたものは親ブロックのdelegate型変数への代入をできないようにした。

2007/3/2
テンプレートで引用符があるとうまくいかないことがあるのを修正。

2007/3/1
gblをlibに指定できるようにした。
ライブラリ内のlibにアクセスできないバグを修正。

2007/2/19
(void)ができるようにした。

2007/2/15 v1.1.2
サイズ0のクラスのデストラクタが動かないバグを修正。

2007/2/14 v1.1.1
デストラクタが動かないことがあるバグを修正。

2007/2/14 v1.1
delegate型を実装した。

2007/2/9
循環参照の開放漏れを検出して開放するようにした(ただし別スレッドで)。

2007/2/3
->(弱参照)、=>(強参照)演算子の廃止。
coreのプライベートメンバにアクセスできるようにした。

2007/1/24
mbrとgblのenumで変数のメンバとしてenumの定数を書けなかったバグを修正。
定数などを指定するとき、classとenumの型を2層以上::でつなげなかったのを修正。

2007/1/21
new(0)ではオブジェクトを作らないようにした。
グローバルのブロック内でreturnしたときデストラクタが終了時になっていたのを修正。

2007/1/19
(int)[]など(空のリテラル)がエラーにならないようにした。

2007/1/14
else:にジャンプしたときその後がelseにならなかったのを修正。

2007/1/2
スレッドをが配列から呼び出せなかったのを修正。

2006/12/31
3項演算子の型チェックを修正。

2006/12/9
x.new[～]のとき、メンバなどを指定できないバグを修正。

2006/11/29
ブロック内でライブラリを定義できなかったバグを修正。

2006/11/3 v1.0
完成。


