coal 2.0.0の機能改善およびバグfix ******************************** * 機 能 改 善 * ******************************** <2006.10.31> (1)式を実行時コンパイルし、オブジェクトを作成後、それを実行するようにした。 その際に、式の中で代入処理ができるようにした。 --> dmconst.c BXCompute.c BXExpImd.c BXCompile.c BXFuncBexp.c dmConvParm.c BXRepPrmSet.c dmlex.c (2)式のオブジェクトを再利用できるようにした。 --> dmconst.c dmlocal.h dmprot.h BXExpImd.c IFComper.c dmUserFunc.c BXCompute.c BXCompile.c dmleaf.c dmProcessOutput.c dmprloop.c dmConstMemGet.c dmexescr.c (3)式のコンパイル化に伴い、システム変数'TRNSHID'を定義済み外部変数にした。 --> dmglobal.c dmPacketCheck.c (4)スクリプト・ファイルの拡張子処理を追加した。 --> dmconst.c dmprot.h coalmain.c dmGetScriptName.c dmexescr.c <2006.11.19> (5)setarray関数を追加した。 --> BXRepSet.c dmconst.h <2006.11.20> (6)LET OPTIONを追加した。 --> dmProcessBEXP.c <2006.11.28> (7)手続き内変数を使用できるようにした。 --> dmlocal.h dmconst.h dmProcessBEXP.c dmmkscpt.c dmprdef.c dmclear.c dmlex.c dmProcessRead.c dmParmDataSet.c dmConvParm.c dmPacketCheck.c <2006.11.30> (8)手続き内で配列を定義できるようにした。 --> dmProcessBEXP.c dmmkscr.c dmprdef.c <2006.12.01> (9)DocMnMainでも、スクリプト・ファイルの拡張子の環境変数設定を反映するようにした。 --> coalmain.c <2006.12.08> (10)内部手続き呼び出しにパラメータを指定できるようにし、内部手続き側では、argc,argv 形式で参照できるようにした。 --> dmprproc.c dmprdef.c dmSCparmset.c dmtrproc.c dmprexec.c <2006.12.14> (11)内部手続き側で、パラメータを変数で参照できるようにした。 --> dmprproc.c <2006.12.15> (12)省略したパラメータを識別できるようにした。 --> dmmkscp.c dmConvParm.c dmSCparmset.c BXRepPrmSet.c dmfunc.c BXCompile.c <2006.12.22> (13)TO_BULK関数でオプションを追加して、以下を指定できるようにした。   ・数値型のバイトオーダー   ・文字型の16進数変換 --> dmCmptString.c dmCmptTo.c ******************************** * Bug fix * ******************************** <2006.10.29> (1)CHARの配列定義ができない。 [原因]CHARをmemicmpするときに、長さの引数が未指定。 [措置]長さの引数を指定する。 --> dmprdef.c <2006.11.19> (2)getargsでデータ属性指定の配列を指定したとき、値が入らない。 [原因]データ属性指定された配列時の処理抜け [措置]処理をするようにした --> dmCmptString.c <2006.12.01> (3)DocMnMainで同じスクリプトを2回実行するとパラメータ変数が未定義エラーとなる。 [原因]オブジェクトの中に、変数用構造体へのアドレスが入っているキャッシュを 2回目以降も使っている。 [措置]スクリプトがキャッシュから実行されるときは、上記アドレスをNULLクリアする。 オブジェクト実行時に、上記アドレスがNULLのときは、アドレスを取得し、オブジェクト に設定する。 --> BXCompile.c dmexescr.c <2006.12.08> (4)パラメータ変数と検索変数へのMAPPEDARRAY変数を参照すると、代入できないというエラーになる。 [原因]パラメータ変数と検索変数については、代入エラーをチェックするために、 's'モードで配列のエントリを取得に行くとエラーになるようになっていたが、 コンパイル方式に変更した際に、's'モードで行くようになった。 [措置]上記エラーチェックをはずし、パラメータ変数と検索変数については、保護フラグを立て、 代入処理を行うヶ所でこれをチェックしてエラーを出すようにする。 --> BXExpImd.c dmConvParm.c <2006.12.16> (5)関数の引数に関数型の変数を指定するとエラー、配列の引数に配列型の変数を指定するとエラー。 [原因]関数または配列の開始を表すスタック内の変数のデータ型が引数のデータ型と同じで、 判別できないため。 [措置]関数または配列の開始を表すスタック内の変数の次に関数または配列の括弧を示す変数を 追加して、関数または配列の開始を判別できるようにする。 --> dmconst.h BXCompile.c BXExpImd.c