Agena

ソフトウェアのスクリーンショット:
Agena
ソフトウェアの詳細:
バージョン: 2.11.5 更新
日付のアップロード: 22 Jun 18
開発者: Alexander Walz
ライセンス: 無料
人気: 23

Rating: nan/5 (Total Votes: 0)

Agenaは、オープンソースのフリーでマルチプラットフォームで使いやすい、手続き型のプログラミング言語です。毎日の使用のために設計されています。グラフィカル、科学、言語、教育環境、スクリプトアプリケーションで使用でき、すべてのメインストリームオペレーティングシステムをサポートします。


多数のフロー制御設備を提供

アプリケーションはif、thenのような多数のフロー制御機能を提供します。 elif、else条件、case ofおよびelse条件は演算子、from、to、およびbyループの数値、forおよびwhileループ、forループおよびinループ、whileおよびdoループ、skip文、breakステートメント、データ型の検証などがあります。


列挙の割り当てを提供する

他の機能の中には、任意の精度の数学ライブラリ、あなたの個人的環境の簡単な構成、使いやすいパッケージシステム、列挙割当て、epocs / scopeキーワードによるスコープ制御、その他多くの魅力的な機能があります。

フードと空き状況

フードの中のクイックルックでは、プロジェクトがC、BASIC、Lua、ALGOL 68プログラミング言語で書かれていることがわかります。つまり、その構文はこれらのプロジェクトの構文に似ています。これはコンソール/端末環境で完全に実行されます。つまり、グラフィカルユーザーインターフェイス(GUI)はありません。


シンプルなエディタで出荷

Agenaソフトウェアはコマンドラインアプリケーションであるにもかかわらず、統合されたAgena環境と構文強調機能を備えた、AgenaEditと呼ばれる簡単なエディタグラフィカルソフトウェアが付属しています。これは、FLTKクロスプラットフォームのC ++ GUIツールキットのBill Spitzakによって開発された同様のエディタに大きな影響を受けています。


ラズベリーパイの作品

Agenaのグラフィカル機能は、GNU / Linux、Solaris、Mac OS X、Microsoft Windows、eComStation-OS / 2およびDOSオペレーティングシステムでサポートされています。

このリリースの新機能:

64ビットおよび32ビットハードウェアプラットフォームに簡単に展開でき、ARMベースのRaspberry Piコンピュータボードで正常にテストされています。

新しい微積分と統計関数

バージョンの新機能:

新しい微積分と統計関数

バージョン2.9.4の新機能:

新しい微積分と統計関数

バージョン2.8.5の新機能:

新しい微積分と統計関数

バージョン2.8.2の新機能:

新しい微積分と統計関数

`stats.chauvenet`は、` outlier = 'lower' `または`外れ値=「上」である。
`bags.remove`はセグメンテーション違反を引き起こしました。これは修正されました。さらに、C言語で実装されたすべての `バッグ`関数は内部的に変更されています。
`with`関数または` import / alias`文で `bags`パッケージが呼び出されていない場合、` + `、` -`、 `*`の(非公開の)メタメソッドは機能しませんでした。これは修正されました。

バージョン2.5.4の新機能:

`stats.chauvenet`は、` outlier = 'lower'または `outlier = 'upper'というオプションをそれぞれ渡すことによって、下限値または上限値を具体的にチェックできるようになりました。
`bags.remove`はセグメンテーション違反を引き起こしました。これは修正されました。さらに、C言語で実装されたすべての `バッグ`関数は内部的に変更されています。
`with`関数または` import / alias`文で `bags`パッケージが呼び出されていない場合、` + `、` -`、 `*`の(非公開の)メタメソッドは機能しませんでした。これは修正されました。

`stats.chauvenet`は、` outlier = 'lower' `または`外れ値=「上」である。
`bags.remove`はセグメンテーション違反を引き起こしました。これは修正されました。さらに、C言語で実装されたすべての `バッグ`関数は内部的に変更されています。
`with`関数または` import / alias`文で `bags`パッケージが呼び出されていない場合、` + `、` -`、 `*`の(非公開の)メタメソッドは機能しませんでした。これは修正されました。

バージョン2.4.2の新機能:


`stats.chauvenet`は、` outlier = 'lower'または `outlier = 'upper'というオプションをそれぞれ渡すことによって、下限値または上限値を具体的にチェックできるようになりました。
`bags.remove`はセグメンテーション違反を引き起こしました。これは修正されました。さらに、C言語で実装されたすべての `バッグ`関数は内部的に変更されています。
`with`関数または` import / alias`文で `bags`パッケージが呼び出されていない場合、` + `、` -`、 `*`の(非公開の)メタメソッドは機能しませんでした。これは修正されました。

バージョン2.3.0 RC1の新機能:

`for`ループの数値は` downto 'キーワードをサポートしているので、義務的な負の `by`ステップサイズを使わずにカウントダウンすることができます。 `downto 'の文脈では、` by'ステップサイズは常に正でなければならない。 `downto 'キーワードを使用するときは、` from'開始値と `to '終了値は必須です。
メタメソッド '__finite'、 '__entier'、 '__sqrt'はサポートされなくなりました。代わりに、構造体の操作のための3つの新しいメタタドが追加されました。つまり、結合操作のための '__union'、交差点の決定のための '__intersect'、そして相違点の '__minus'です。したがって、 `bags`パッケージは、これら3つの操作をサポートします。
``整数除算演算子は、そのメタメソッドをサポートせず、代わりに浮動小数点除算( `/`演算子)のために使用しました。これは修正されました。
新しい関数 `stats.gini`は、(イン)平等の尺度であるジニ係数を決定します。
新しい関数 `stats.zscore`は、サンプルのz-スコア(標準スコア)を計算する関数 - サンプルが分布の平均よりも上または下にある標準偏差の数を返します。

`stats.sorted`はデフォルトでQuicksortの代わりにIntrosortアルゴリズムを使用します。これにより、通常の状況でパフォーマンスを犠牲にすることなく、条件の悪い状況(QuicksortでO(n ^ 2)の操作が必要)で3回の計算時間を短縮できます。実際には、IntrosortはデフォルトでQuicksortを使用し、再帰の深さが2 * log(n、2)に達すると自動的にHeapsortに切り替えます.nは構造内の要素の数です。
この論理をオーバーライドするには、従来の再帰Quicksortメソッドを使用する新しいオプション 'quicksort'に番号をソートするだけです。また、 `stats.sorted`は新しいオプション 'heapsort'が渡されている場合にのみHeaportアルゴリズムを使用し、新しいオプション 'nrquicksort'でNiklaus Wirthが考案した非再帰Quicksortアルゴリズムも使用できます。
新しい関数 `stats.meanmed`は、算術平均と分布の中央値、あるいは平均値と中央値の商を返し、これらの値が約20%必要とされるときに計算時間を短縮します。
`size`演算子のエラーメッセージを改善しました。

バージョン2.1.1の新機能:

新しい機能とパッチ:
`try / catch`:` catch`トークンの直後にエラー変数を明示的に指定することは現在オプションです。エラー変数が与えられていない場合、エラーメッセージは自動的にローカルの `lasterror`変数に格納され、` then`キーワードは省略しなければなりません:
>お試しください
>エラー( 'oops!')
>キャッチ
>印刷(ラスタ)
> yrt;
おっとっと !
`try / catch`ステートメントはプロシージャーで動作しないことがありました(未割り当てエラー変数)。これは修正されました。
新しい `net.wget`関数は、WebからHTMLページをダウンロードします。
`skycrane.counter`を10%調整しました。新しい第3引数が文字列 'ozawa'の場合、カハン和算アルゴリズムの代わりにKahan-Ozawaを適用するようになりました。コンパイラの最適化を防ぐために、対応するCソースが変更されており、最適化もキャンセルされる可能性があります。
`argerror`はエラーメッセージで受け取った値のユーザ定義の型名を出力するようになりました。値にユーザー定義型がない場合は、その基本型が発行されます。

`debug.getinfo`の新しい 'a'オプションは、Rob HoelzのLuaPowerPatchのおかげで、手続きが期待する引数の数を返します。
文字列の `index-out-of-range`エラーメッセージが改善されました。
エラー処理に関して、 `stats.agn`、` linalg.agn`、 `library.agn`、` ansi.agn`ファイルを修正しました。

バージョン2.1.0の新機能:

新しい種類のエラー処理のために、新しい `try / catch`文が導入されました。 2008年にHu QiweiによってLua 5.1のために発明され、書かれました。
一般的に、例外が予想される文は、 `try`節に入れることができます。 `error`関数やその他の式、関数、または文への明示的な呼び出しによって生成されたエラーが発生した場合、コントロールは即座に対応する` catch`節にジャンプするか、 `try / yrt `文が` catch`節が与えられていない場合、 `try`節に続く他の文は無視されます。
`protect / lasterror`エラー処理機能はまだまだサポートされています。新しい制御ステートメントは、 `break`、` skip`、 `redo`、` return`ステートメントとも完璧に動作します。
新しい `redo`文は、最初から` for / to`と `for / in`ループの現在の反復を再開します。
新しい `recip`演算子は、数値xの逆数を返します。これは式1 / xと同等ですが、より高速です。

新しい `stats.ema`関数は、分布の指数移動平均を計算します。新しい関数 `stats.gema`は、分布のそれぞれの指数移動平均を返すイテレータ関数を返します。
`%%`、 `+%`、 ` - %`は正しいオペランドがゼロだったら正しい結果ではなく `undefined`を返しました。これは修正されました。
`net.survey`のエラーメッセージを修正しました。
ペアや文字列の範囲外インデックスのエラーメッセージが改善されました。
ANSI、Solaris、およびDOSのバージョンでは、 `int`演算子が調整されています。
新しいC API関数 `agn_arraytoseq`は数値配列をシーケンスに変換し、この新しいシーケンスをスタックの先頭にプッシュします。
マニュアルを更新しました。

バージョン2.1.0 RCの新機能:

新しい `redo`文は、最初から` for / to`と `for / in`ループの現在の反復を再開します。例:
>フラグ:= true; > for for j [10,11,12] do> print( '前'、j、フラグ); >フラグおよびj = 11の場合、>クリアフラグ; > print( ' - >'、j、flag、 'jump back')> &redo> fi; > print( '後'、j、フラグ)> j> 12; 10の前に真; 10の前に真; 11の前に真; 11前に偽ジャンプ11前に偽11後に偽12後は偽12後
新しい `recip`演算子は、数値xの逆数を返します。これは式1 / xと同等ですが、より高速です。
新しい `stats.ema`関数は、分布の指数移動平均を計算します。新しい関数 `stats.gema`は、分布のそれぞれの指数移動平均を返すイテレータ関数を返します。その使用法については、src / stats.cソースファイル、C関数* emaを見てください。
`%%`、 `+%`、 ` - %`は正しいオペランドがゼロだったら正しい結果ではなく `undefined`を返しました。これは修正されました。
`net.survey`のエラーメッセージを修正しました。

新しいC API関数 `agn_arraytoseq`は数値配列をシーケンスに変換し、この新しいシーケンスをスタックの先頭にプッシュします。

バージョン2.0.0の新機能:

新しいステートメントと関数:
Agena 2.0はAgena 1.12と下位互換性がありますが、トークン `import`、` alias`、 `until`、` onsuccess`はキーワードになり、変数として使用できなくなりました。現在、Solaris、Debian(x86、PowerPC、Raspberry Pi)、Windows、Mac、DOSインストーラは2.0で利用可能です。
新しいループ変種 `for / as`と` for / until`は、現在の反復の終了時に条件をチェックし、次の反復を開始するか、ループを抜けます。これは `for / to`と` for / in`ループの両方で動作します。事実上、両方のバリアントは、与えられた条件がチェックされるまで少なくとも1回ループを実行します。
例:
>私は5にする
>印刷(i)
&gt; i < 3
&gt; [1、2、3、4、5]のiのためのdo
&gt;印刷(i)
&gt; i> = 3になるまで
新しい `do / until`ループは、ある条件が満たされるまで繰り返されます:
&gt; c:= 0;
&gt;行う
&gt; inc。
&gt;印刷する(c)
&gt; c≧3になるまで数値の `for`ループでは、` to`節はもう指定できません。代わりに、 `to`節を省略すると、ループはC HUGE_VALのあなたのプラットフォームで表現可能な最大数に達するまで繰り返されます:
&gt;私のために
&gt;印刷(i)
&gt; OD
少なくとも1つの条件が真であれば、 `if`と` case`ステートメントの新しい `onsuccess`節がチャンクを実行します。例:
&gt;フラグ:= false;
&gt; 1 = 0の場合
&gt;印刷する(0)
&gt; elif 1 = 1 then
&gt;プリント(1)
&gt; onsuccess
&gt;フラグ:= true
&gt; else
&gt;プリント(-1)
&gt; fi;
&gt;印刷(フラグ);
真実
&gt;フラグ:= false;
&gt; 1 = 0の場合
&gt;印刷する(0)
&gt; elif 1 = 0
&gt;プリント(1)
&gt; onsuccess
&gt;フラグ:= true
&gt; else
&gt;プリント(-1)
&gt; fi;
&gt;印刷(フラグ);

&gt;フラグ:= false;
&gt; a:= 2;
&gt;ケースa
&gt;次に1の
&gt;プリント(1)
&gt;次に2の
&gt;プリント(2)
&gt; onsuccess
&gt;フラグ:= true
&gt; else&gt;プリント(-1)
&gt;エサック;
&gt;印刷(フラグ);
真実
新しい `import`ステートメントは、名前を引用符で囲まずに1つ以上のライブラリをインポートすることを可能にします。 "import calc、stats"は "readlib( 'calc'、 'stats')と同等です。
`import`ステートメントの` alias`オプションは、初期化されたライブラリ関数に1つ以上の短い名前を割り当てます。 "import calc alias xpdiff"は "with( 'calc'、 'xpdiff')"と "import calc alias"は "with( 'calc')"と同等です。
新しい `..`演算子は、その左側オペランドが` null`と評価されたとしても、テーブルをインデックスすることができます。この場合、 `null`が返され、`フィールドをインデックス化しようとしました...(ヌル値) `エラーは発行されません。これは `getentry`関数に似ていますが、3倍高速です。例:
&gt;テーブルを作成する。
&gt; a.b:
ヌル
&gt; a.b.c:
stdinの1行目のエラー:
フィールド「b」(ヌル値)のインデックスを作成しようとする
&gt; a..b..c:
ヌル
&gt;テーブルを作成する。
&gt; a [1]:
ヌル
&gt; a [1] [2]:
stdinの1行目のエラー:
フィールド `?`(NULL値)を索引付けしようとしました。
&gt; a .. [1] .. [2]:
ヌル

新しい関数 `drem`は整数除算x / yの剰余を評価しますが、` irem`とは逆に、内部商x / yをゼロに向かってではなく最も近い整数に丸めます。
新しい関数 `skycrane.todate`は、現在の日付と時刻をフォーマットされた文字列として返します。
新しい関数 `io.truncate`は、現在のファイル位置でファイルを切り詰めます。
新しい関数 `io.move`は、与えられた文字数のファイル位置を左または右に変更します。
新しい関数 `io.filesize`は、ファイルのサイズを返します。
`readlib`は文字列を引数として受け付けます。数字はもう許されません。
`with`の最後の引数が` false`のブール値であれば、関数は割り当てられた短い名前をコンソール(stdout)に書き出しません。
`strings.fields`はインデックス番号のシーケンスを受け付けるようになりました。しかし、それはもはやインデックス「0」を受け入れない。
Raspberry Pi Wheezy Debianインストーラには `gdi`グラフィックスパッケージが含まれています。
`change.log`ファイルがWindowsに正しく表示されるようになりました。

バージョン2.0.0 RC3の新機能:


新しいループ変種 `for / as`と` for / until`は、現在の反復の終了時に条件をチェックし、次の反復を開始するか、ループを抜けます。これは/ forループと/ inループの両方で機能します。

バージョン2.0.0 RC2の新機能:



新しいループ変種 `for / as`と` for / until`は、現在の反復の終了時に条件をチェックし、次の反復を開始するか、ループを終了します。これは/ forループと/ inループの両方で機能します。

バージョン2.0.0 RC1の新機能:


新しい `import`ステートメントは、名前を引用符で囲まずに1つ以上のライブラリをインポートすることを可能にします。 "import calc、stats"は "readlib( 'calc'、 'stats')と同等です。
`import`ステートメントの` alias`オプションは、初期化されたライブラリ関数に1つ以上の短い名前を割り当てます。 "import calc alias xpdiff"は "with( 'calc'、 'xpdiff')"と "import calc alias"は "with( 'calc')"と同等です。
新しい `..`演算子は、その左側オペランドが` null`と評価されたとしても、テーブルをインデックスすることができます。この場合、 `null`が返され、`フィールドをインデックス化しようとしました...(ヌル値) `エラーは発行されません。これは `getentry`関数に似ていますが、3倍高速です。

バージョン1.12.9の新機能:

新しい関数 `io.getclip`と` io.putclip`はAgenaとクリップボードの間でテキストを交換します(Windowsのみ)。
`stats.prange`はC言語で書き直され、最大60%速くなっています。
`os.cpuinfo`はARMベースのシステムに関する正確で詳細な情報を返すようになりました。
Mac OS Xや複雑なドメインのみを含むDOSやUNIXシステムでは、基数0から指数0 + r * Iへのべき乗は、ゼロ以外の浮動小数点で0の代わりに `undefined`を返しました。一定。
Mac OS Xや複雑なドメインのみを含むDOSやUNIXシステムでは、基数0から指数r + 0 * Iへのべき乗は、正の浮動小数点で0の代わりに `undefined`を返しました。これは修正されました。
`stats.obcount`と` stats.obpart`は一番右のサブインターバルに値を含めることができませんでした。これは修正されました。
`calc.nakspline`、` calc.naksplinecoeffs`、 `calc_clampedspline`、および` calc_clampedsplinecoeffs`は、あまりにも少ない点、つまり対を含んでいる構造体で呼び出された場合、セグメンテーションフォルトを引き起こしました。これらは、 `fail`を返すことで修正されています。

潜在的なメモリ割り当て解除エラーは、 `calc.neville`、` calc.interp`、 `calc.newtoncoeffs`、` calc.naksplinecoeffs`、 `calc.clampedsplinecoeffs`、` calc.nakspline`、および `calc .clampedspline`。
新しいC API関数 `agn_checkinteger`は、引数が数値か整数かをチェックし、` luaL_checkinteger`とは異なり、それ以外の場合はエラーを発行します。

バージョン1.9.0の新機能:


新しい `alternate`関数は、2番目の引数が` null`ならば最初の引数を返します。それ以外の場合は、2番目の引数を返します。
Agena実行可能ファイルへの-bスイッチは、その出力が-vオプションと同じであったため、削除されました。
WindowsとUNIX / Mac版の `strings.utf8size`には潜在的なメモリリークがありました。これは変更されました。
プラスライブラリのすべてのバイナリDLL / SOには、オペレーティングシステムに応じて、使用されていないコードが含まれなくなり、最大10%のサイズが削減されます。メイクファイルと以前に使用されていないヘッダファイルをインポートするソースが変更されました。たとえば、Windowsバイナリのサイズを55 kByte減らすことができます。
テストスイートを拡張しました。
スキームファイルを更新しました。

バージョン1.6.0の新機能:

新しい機能と特長:
新しい関数 `checktype`は、構造体内のすべての値が与えられた型であるかどうかを決定します。
新しい関数 `isint`は、すべての引数が整数かどうかをチェックします。
新しい関数 `strings.dleven`は2つの文字列のDamerau-Levenshtein距離を返します。
新しい関数 `stats.ad`は構造内のすべての値の絶対偏差を決定します。
新しい関数 `stats.countentries`は、構造内のすべての要素の出現回数を数えます。
新しい関数 `stats.deltalist`は、それぞれの隣接する要素のデルタの構造体を返します。
新しい関数 `stats.gmean`は構造体の幾何平均を返します。
新しい関数 `stats.hmean`は構造体の高調波の平均を返します。
新しい関数 `stats.ios`は、分布の安定性に関する実績のある指標を返します。
新しい関数 `stats.iqr`は四分位範囲を返します。
新しい関数 `stats.issorted`は、構造体内のすべての数値が昇順にソートされているかどうかをチェックします。
新しい関数 `stats.moment`は、起点に関する与えられたデータのモーメントを計算します。新しい関数 `stats.numbperm`は順列の数を返します。
新しい関数 `stats.percentile`は百分位数を決定します。
新しい関数 `stats.skewness`は、確率分布の対称性の指標である歪度を返します。
新しい関数 `stats.sumdata`は構造体の原点についてのすべての累乗を集計します。
`stats.tovals`はCライブラリ関数になりました。したがって、最大40%高速です。
空のテーブルやシーケンスでは、 `stats.qmean`、` stats.mean`、 `stats.gmean`、` stats.sd`、 `stats.median`、
`stats.var`は失敗を返します。
スタンドアロンインタプリタでの入力行の最大長が512から2048文字に変更されました。
新しい環境変数 `environ.maxpathlength`はファイルパス(Cの文字を除く)の最大文字数を格納します。
新しい環境変数 `environ.minnumber`と` environ.maxnumber`はAgena番号(現在はANSI-C double)が保存できる最小値と最大値を保持します。
新しい環境変数 `environ.umaxlong`には、32ビットシステムでのunsigned long型Cの最大整数値と16bitマシンでのunsigned longが含まれています。
C API:Agena C APIのLuaのC APIへの100%互換性は、Luaの*ダンプ機能を導入することによって再確立されました。したがって、バイナリ表現で関数を格納できるようになりました。 Cレベルで `strings.dump`またはlua_dumpを使用してください。
新しい `agnL_optboolean`関数を導入して、オプションのブール引数をチェックし、成功した場合にそれらを返します。
バグの修正:
`environ.globals`は常にエラーで終了しますが、これは修正されました。
`assume`は両方の引数が 'undefined'であるか評価されてfalseを返します。この場合、今度は真を返します。
空のテーブルと区切り文字を `join 'に渡すと、Agenaがクラッシュしました。これは修正されました。
`colour`オプションは` gdi.plot`によって無視されなくなりました。
テーブルでは、 `stats.minmax`が最小値に対して間違った値を返しました。これで正しく動作します。
空のテーブルでは `stats.median`が0を返しましたが、失敗します。
ドキュメントとは異なり、 `strings.isending`は両方の文字列が等しい場合に 'true'を返しました。これは修正されました。
既存のAgenaスクリプトが構文エラーを含んでいた場合、 `run`は` could not open file`を返しました。これは、関数を完全に書き換えることによって固定されています。追加されたLua 5.1.4パッチ9:「いくつかの特定の[複雑な]ブール式のコード生成が間違っています。
追加されたLua 5.1.4パッチ11:「パーサーは、構築中にプロトタイプを収集するかもしれません。
* Info:Lgen 5.1.4パッチ10を追加すると、 "Aetaが独自のメタテーブルであれば、[__write / __ new]インデックスメタメソッドは機能しません"、Agenaは必要ありません。
未使用のキーワード `default`を削除しました。
機能と機能の強化。
拡張機能:
`io.anykey`の_experimental_バージョンをMac版に追加しました。しかし、少なくともLionでは、時には押されているキーがシェルにエコーされます。
`utils.readcsv`はオプションで、フラットな順序でCSVファイルのすべての値を返すことができます。
`clock`パッケージは、` tm`演算子のメタテーブルにそれを加えることで除算演算子 `/`をサポートするようになりました。多くのライブラリ関数に短い名前を割り当てることができないため、 `with 'の振る舞いが変更されました:関数が.auxテーブルに置かれている場合、これらの関数名に短い名前を割り当てないでください。それ以外の場合は_all_他のパッケージ関数の短縮名を割り当てます。したがって、短い名前を割り当てる `with`のためのすべてのライブラリ関数を登録する` package.register`はもはや必要ではありません。次のいずれかのリリースで廃止予定です。
テストスイートを改善しました。
マニュアル:
マニュアルとインデックスを改善しました。
一貫性:
以下のすべての名前変更については、引き続き以下の古い変数名がサポートされています。
`environ.MinLong`は` environ.minlong`に名前が変更されました。
`environ.MaxLong`は` environ.maxlong`に名前が変更されました。
`environ.BufferSize`の名前が` environ.buffersize`に変更されました。
`environ.PathSep`の名前が` environ.pathsep`に変更されました。
`environ.More`は` environ.more`に名前が変更されました。
`environ.WithProtected`は` environ.withprotected`に名前が変更されました。
`environ.Os`は` environ.os`に名前が変更されました。
`environ.Cpu`の名前が` environ.cpu`に変更されました。
`environ.Release`は` environ.release`に名前が変更されました。

`environ.GdiDefaultOptions`の名前が` environ.gdidefaultoptions`に変更されました。
Windowsでは、 `os.login`と` os.computername`はUNIXやOS / 2のように '失敗'を返します。
`-DCOMPAT13`スイッチは、Agena 1.3.x準拠バージョンをコンパイルするために最終的に削除されました。
その他:
廃止された `calc.fseq`は削除されました。代わりに `nseq`を使用してください。

バージョン1.5.1の新機能:

patched `strings.fields`は全く動作しませんでした。また、Cライブラリ関数に変換されているため、2.6倍も高速です。
`strings.words`は3番目の引数を受け取り、` true`に設定すると、後続の区切り文字は無視されます。
`io.write`と` io.writeline`からセキュリティ漏れがなくなり、エラーメッセージが改善されました。
`binio.readchar`にパッチを当てて、サイズが2GBを超えるファイルの問題を回避しました。
関数 `xbase.purge`、` xbase.readvalue`、 `xbase.purge`、` ads.getvalues`、 `binio.readshortstring`、` os.computername`、 `os.login`、` osのエラーメッセージを修正しました。 fattrib`、 `environ.kernel`、` package.register`です。
表記法Tでテラバイトを入力できるようになりました。ここで、Tは文字「T」です。同様に、gは、数十億およびt兆を表す。詳細については、マニュアルの48ページを参照してください。
マニュアルを更新しました。
コードのクレンジングの理由から、Cソースコードのほとんどすべての後方互換性スイッチが削除されています。これは、Agena 1.5以上を再コンパイルしようとする人にのみ影響し、Agena 1.3と1.4と完全に下位互換性があり、Lua 5.0との後方互換性がほとんどあります(古いLua 5.0ライブラリ処理を除く)。

バージョン1.5.0の新機能:

`map`は2番目の引数として与えられた文字列を処理できるようになりました。それぞれの関数とその引数は、左から右に連続して各文字に適用され、結果はシーケンスで返されます。
`run`: 'agn'接尾辞を持つファイルからコードをロードして実行する場合は、引数に接尾辞を指定する必要はありません。だから、 `run 'test'と` run 'test.agn'`は同じです。
`is`キーワードは現在、プロシージャを定義することを義務付けられています。 (GCCでは、-DCOMPAT14スイッチを使用してAgenaのバージョンをコンパイルします。ここで `is`キーワードはオプションです)。
`try`ステートメントは廃止され、もはやサポートされていません。 (GCCでは-DCOMPAT14スイッチを使用してこのステートメントを引き続き使用するAgenaのバージョンをコンパイルします)。
`arraysize`、` getarray`、 `getwholearray`、` newarray`、 `searcharray`、` setarray`の `utils`関数は削除されました。下位互換性のため、lib / compat.agnファイルに追加されています。 (GCCでは-DCOMPAT14スイッチを使って元のutils関数を引き続きサポートするAgenaのバージョンをコンパイルします)。`utils.singlesubs`は完全に書き直されました。これは、以前のstringarrayのuserdata構造ではなく、2番目の引数として一連の数値が期待されるようになりました。以前のバージョンよりも35%遅いですが、文字列配列の削除がより重要でした。
第2引数として0を指定して呼び出すと、 `strings.include`がクラッシュします。これは修正されました。
Applied Michael G. Schwernの2011年5月10日、 `os`と` xbase`パッケージ( `` mktime64()をISO Cとして修正しました)の `32-bit-Year 2038-Fix`日付補助関数必要とする。
内部コードの最適化:いくつかのライブラリの初期化とファイル読み込みC関数は、パスとファイル名の文字列を構築するためにスタックを使用しました。 Solar Designerによって書かれた新しいC aux関数「concat」が、多くの場合代わりに使用されています。
Agena C APIは、AgenaへのC Luaパッケージの移植を容易にするために、Lua C APIと100%互換性があります。
したがって、以下の関数の名前が変更されました:lua_isnumber - &gt; agn_isnumber、lua_isstring - &gt; agn_isstring、luaL_optnumber - &gt; agnL_optnumber、luaL_checknumber - &gt; agnL_checknumber、luaL_optnumber - &gt; agnL_optnumber、luaL_checkinteger - &gt; agnL_checkinteger、luaL_optinteger - &gt; agnL_optinteger。

次のマクロの名前が変更されました:luaL_checkint - &gt; agnL_checkint、luaL_optint - &gt; agnL_optint。
以前のAgenaの実装とは対照的に、lua_tonumberは、HUGE_VALを返す代わりに、非番号が渡された場合にLuaのように0を返します。
lua_setglobal2は削除されました。代わりにlua_pushvalueとlua_setglobalを使用してください。

バージョン1.4.2の新機能:



プロシージャのパラメータリストにユーザ定義型が指定されている場合は、
プロシージャ・コールでエラーが発行されず、次の場合にプロシージャが実行されました。
a)テーブル、セット、シーケンス、ペア、またはプロシージャ - ユーザ定義ではない
タイプ - が渡された、
b)関係するパラメータに対して全く値が渡されていない。

バージョン1.4.1の新機能:


`stat`quartiles`と` stats.mode`の短縮名は `with`関数で割り当てることができませんでした。これは修正されました。
誤って、 `with 'は` gdi.settriangle`の短い名前を割り当てることができませんでした。これは変更されました。
`calc.polygen`のエラー処理が改善されました。
FRACTINTマップファイルがないため、 `fractals.draw`のエラーメッセージが改善されました。
廃止予定の `strings.rseek`関数を削除しました。下位互換性のために、 `strings.seek`がlib / compat.agnファイルに追加されています。
インタプリタの起動時にデバッグ情報を出力するための-dスイッチが追加されました。
Windows版のAgenaはGCC 4.5.2でコンパイルされました。
更新された言語スキームファイル。
マニュアルが更新されました。

バージョン1.4.0の新機能:

意味論的変更:
数値のfor / toループのループ制御変数は、(内部の)ループ本体ではなく、周囲のブロックに自動的にローカルになりました。ループ制御変数と同じ名前のローカル変数が事前に宣言され、割り当てられている場合
数値ループを実行すると、ループの最後の反復値によって上書きされます。そのため、数値の `for`ループの` external`スイッチはもはや受け入れられません。 (GCCでは、-DCOMPAT13スイッチを使用してAgenaのバージョンをコンパイルしますが、それでも `external`キーワードは認識して無視します)。
定数 `fail`では、` not`が `true`を返しますが、` fail`が変数に代入されると、 `not`はfalseを返します。これは変更されました。 'a:= fail; not(a) 'は `true`を返します。
指定された構造体が空の場合、 `stats.median`は0の代わりに` fail`を返します。
`utils.readcsv`:` delim`オプションで1つの空白が渡され、 `ignorespaces`オプションが指定されていない場合、ファイルの各行を単語に分割する前に空白は自動的に削除されません。この関数には、ファイルの最初の行を示す `header`と、ファイルの内容をファイルヘッダで定義されたフィールド名で辞書に格納する` output`という2つの新しいオプションもあります。
`$`部分文字表記はもはやサポートされていません。 (GCCを使って-DCOMPAT13スイッチを使って `$`演算子をサポートしているAgenaのバージョンをコンパイルしてください)。
拡張機能:
無限のdo / odループが追加されました。この種のループは無限に繰り返され、 `break`や` return`ステートメントでのみ中断することができます。それらは真のdo ... odのwhileループの構文的な砂糖です。
テーブルでは、 `stats.minmax`は以前は配列だけを扱っていました。これは変更されました。つまり、対応する正のキー(文字列、正の整数、負の浮動小数点など)を持つ値が評価で正しく認識されるようになりました。
`stats.mean`、` stats.qmean`、 `stats.sd`、` stats.var`もシーケンスを処理します。
新しい `stats.mode`関数は、出現数が最も多いシーケンスまたはテーブルのすべての値、つまり最高頻度を返します。
新しい `stats.quartiles`関数は_sorted_テーブルまたはシーケンスの第1、第2、第3四分位数を返します。以前は文書化されていない `linalg.matrix`の機能がマニュアルに追加され、エラー処理が改善されました。
`linalg.hilbert`のエラー処理を改善しました。
`gdi.setinfo`は` square`オプションを受け付けるようになりました。 `square = false`の場合、x軸とy軸は` gdi.plot`で作成されたプロットでは同じ縮尺になりません。
グラフィックスを描画する `gdi.plot`関数は残念ながら文書化されていません。これは変更されました。
`gdi.plot`は2つの新しいオプションを受け入れます: 'x'オプションはプロットが表示される水平範囲を指定し、 'y'オプションは垂直範囲を指定します。
POINT、LINES、RECTANGLES、TRIANGLE、CIRCLE、およびELLIPSE(* FILLEDバリアントを含む)だけを含む `gdi.plot`にPLOT構造体が渡された場合、` gdi.plot`は自動的にスケールを決定します( `gdi.setinfo必ずしも呼び出される必要はありません)。
Luaから継承されたOOPの機能は、付録A9で説明されています。著者はオブジェクト指向プログラミングを推奨していません。
チューニング:
チューニングされた `filled`演算子は約3%です。
「in」、「join」、「sadd」、「qsadd」、「replace」、「copy」、「unique」、およびCantorをテーブルに設定してビットを設定します。テーブルでは、「トップ」と「ボトム」の演算子は現在約5%高速化されています。
テーブルにヌルが含まれていない場合、 `size`演算子は少なくとも8%高速です。
`linalg.mzip`、` linalg.mmul`、 `linalg.transpose`はそれぞれ約3%調整されています。
分数ステップサイズの/ forループの数値は、制御変数の数を半減することで最適化されています。しかし、これは速度の向上を達成しなかった。
パッチ:
特異行列を検出するために `linalg.ludecomp`にパッチを当てました。また、この関数は、指定された行列の次数を自動的に決定できるようになりました。
マニュアルとは対照的に、 `gdi.plot`は自動的に水平と垂直の範囲を決定しませんでした。これは修正されました。
`gdi.plot`は` gdi.setinfo`によって設定された `square`オプションを無視しなくなりました。
`gdi.setinfo`は既に存在していてもINFO構造体に設定を追加しました。これは変更されました。
円は `gdi.plot`によって適切にプロットされませんでした。これは変更されました。
ほとんどの状況で `gdi.plot`関数は幾何学的オブジェクトの個々の色付けを無視していました。これは変更されました。

gdiパッケージは、 `gdi.settriangle`、` gdi.settrianglefilled`、 `gdi.setrectangle`、` gdi.setrectanglefilled`の短縮名を割り当てませんでした。これは変更されました。
フラクタルパッケージは、ユーザー定義型 'esctime'の関数に短い名前を割り当てませんでした。これは変更されました。位置引数が数値でない場合、 `fractals.draw`のエラーメッセージを修正しました。
その他:
`calc.fseq`の機能は` nseq`にマージされました。下位互換性のために、 `calc.fseq`はまだcalcパッケージの一部ですが、関数は実際に` nseq`実装を参照します。
`environ.FractScreenUpdates`変数を`프랙탈パッケージに追加しました。フラクタルがウィンドウ内で更新されるまでの垂直線(非負整数)の数を表します。 `environ.FractOptimised`変数は推奨されなくなりました。
補助gdi関数が再グループ化されました。

バージョン1.3.3の新機能:


`instr`へのパッチ:
正規表現モードでは、開始位置が与えられていれば、オペレータは間違った結果を返しました。
通常の検索モードでは、開始位置が指定されていないと、オペレータは範囲外のエラーを返しました。
逆探索モードを除いて、一致するものが見つからなければ、 `null`ではなく、最初の引数が返されます。
シーケンスに関する `create`ステートメントのエラーメッセージを修正しました。
AgenaEditでは、 `print`を1回呼び出すだけで複数の構造体を出力すると、最初の構造体が__tostringメタメソッドを備えていれば、構造体は完全な形では印刷されませんでした。これは変更されました。

バージョン1.3.2の新機能:

このリリースには、バグ修正、拡張機能、改良されたマニュアルが含まれています:
構造体が渡された場合、 `dimension`は面白い結果をもたらしました。
イニシャライザー。これは変更されました: `dimension`は現在、
構造体を初期化するときに使用します。
`strings.rseek`の機能が` instr`演算子に追加されました。
したがって、 `strings.rseek`は廃止されました。下位互換性を保つため、
`strings.rseek`がlib / compat.agnファイルに追加されました。
`strings.hits`は正規表現とキャプチャをサポートするようになりました。この動作
ブール値を第3引数として渡すことでオフにすることができます。
`strings.isabbrev`と` strings.isending`は自動的にプレーン検索を使います
正規表現やキャプチャが2番目の部分の一部として渡されなかった場合
引数。
`strings.ismagic`と` strings.isfloat`を微調整しました。
`log`関数は現在13%高速です。
`print`を1回だけ呼び出すことで複数の構造体を出力する場合、
最初の構造が__tostringを特色にしていれば、構造は完全な形では印刷されませんでした
メタメソッド。これは変更されました。

第7章に関数の分類を追加して、新しい
ユーザー。

バージョン1.3.1の新機能:



`xor`、` atendof`、 `&amp;`、 `||`、 `^^`、 `::`、 `:-`のネストされた呼び出しには問題がありました。したがって、ネストされた構造体を印刷するときにエラーで終了するかわいいプリンタでも。これは修正されました。
`os.list`への4つの修正: 'r'オプションが渡された場合、現在の作業ディレクトリは、呼び出しの完了後に誤って変更されています。
'r'が最後の引数として渡されなかった場合、関数はエラーを出しました。
`null`は現在の作業ディレクトリを示す最初の引数として受け入れられていません。
Windows 7では、ルートディレクトリの内容を印刷できませんでした。つまり、os.list( 'c:')が現在の作業ディレクトリの内容を返しました。
文字列が非数字で索引付けされた場合(例: "str [null]"、Agenaは "null"を返しました。今度はエラーが発生します。
library.agnが見つからなかった場合、誤ったパスが警告で2回出力されています。これは変更されました。

バージョン1.2の新機能:

部分文字列演算子は再設計されましたが、古いバージョンはAgena 2.0まで使用可能です:新しい文字列は `str [left to right]`です。古い文字列は `str $(left、right)`でした。例:before: `str:= 'string'; print(str $(2、3)) ` - &gt; 'tr' now: `str:= 'string'; print(str [2 to 3]) ` - &gt; 'tr'
上で述べた新しい構文を使用して、テーブル配列とシーケンスのサブリストを決定することができます: ``左から右へ ``。例:今: `a:= [10、20、30、40]; print(a [2 to 3]) ` - &gt; [20、30]: `a:= seq(10、20、30、40); print(a [2 to 3]) ` - &gt; seq(20,30)
`ops`関数は、最初の引数としてインデックス位置のシーケンスを渡すことによって返される値を指定することができます。 ops(seq(1、-1)、10、20、
30)。
新しい関数 `strings.include`は文字列を文字列に挿入します
与えられた位置で。
次の関数は `fail`を返す代わりにエラーを出します。
失敗の場合: `os.remove`、` os.move`、 `os.mkdir`、` os.rmdir`、 `os.chdir`です。

ガベージコレクションに関するセットとシーケンスを操作する次の演算子の改良: `insert`文、` union`、 `intersection`、` minus`、 `unique`、` copy`、 `pop / top`および` pop / bottom`ステートメント、および割り当てを設定します。
FRACTINTカラーマップファイルがない場合、 `fractals.draw`のエラーメッセージが改善されました。
見つからなかった。

バージョン1.1.0の新機能:

このリリースでは、新しい機能と洗練された名前空間が特徴です。
Agena 1.0との互換性:
いくつかの関数はAgenaから削除され、一部はパッケージ関数に変換されています(下記参照)。それらを使用したい場合は、コマンドラインでreadlib 'compat'を実行するか、Agena 1.0との下位互換性を望む場合は上記の文を初期化ファイルに入れます。
拡張機能性:
`pop / top`と` pop / bottom`ステートメントと `bottom`と` top`演算子はテーブル配列にも適用できるようになりました。
`null`か引数なしで呼び出されたとき、` os.chdir`はエラーを出さずに現在の作業ディレクトリを返します。したがって、以前の `os.curdir`C関数は、Agena言語で書かれたものに置き換えられました。
新しい `r 'オプションが与えられた場合、` os.list`はサブフォルダを再帰的に走査します。
`join`演算子はオプションの区切り文字を受け入れ、連結する構造の最初と最後の要素を指定するオプションをサポートします。
`instr`は負の位置を渡して文字列の右端から検索できるようになりました。テーブルに他のテーブル、セット、シーケンス、またはペアが含まれている場合、 `copy`はそれらが複数回出現すると正しく扱う方法を知るようになります:埋め込み構造体がn回含まれていれば、この新しく作成された構造への参照が挿入されます。以前は、n個の独立したコピーが作成されていました。
新しい `isnonposint`関数は、指定された数値がすべて整数で非正であるかどうかをチェックします。
`io.close`は1回の呼び出しで複数のファイルを閉じることができます。
`with`関数は、` convert``、 `fractionin`、` zeroin`、 `todecimal`、` lcm`、 `gcd`、` ndigits`のような `math`パッケージの手続きの短縮名を割り当てませんでした。これは修正されました。
このマニュアルに記載されている `rwriteemode`関数は存在しませんでした。これは現在利用可能ですが、 `rmode`と呼ばれます。
さまざまな機能のエラーメッセージが改善されました。
名前空間のクレンジング:名前が変更された関数または移動された関数:
`register`と` loadclib`の基本ライブラリ関数は `package`ライブラリに移動されました。
`rdelete`、` rget`、 `rinit`、` rinit`、 `rmode`、` rset`、 `remember`、` defaults`の基本ライブラリ関数は新しい `rtable`パッケージに移されました。グローバル_Envテーブルの名前を `environ`に変更しました。環境にアクセスするためのプロシージャも含まれています。
以前のグローバルな `homedir`と` infolevel`環境変数はそれぞれ `environ.homedir`と` environ.infolevel`に名前が変更されました。
`environ`パッケージ、` attrib`、 `gc`、` getfenv`、 `globals`、` isselfref`、 `pointer`、` setfenv`、 `used`の前の基本ライブラリ関数は、 `、` userinfo`、 `__RESTART`、` __DOTTYPRINT`です。
`mapm.xtoNumber`の名前が` mapm.xtonumber`に変更され、 `mapm.xtoString`の名前が` mapm.xtostring`に変更されました。下位互換性を保つために、lib / compat.agnファイル(最初にreadlib `mapm`パッケージを実行してからcompat.agnファイルをロードする)を実行することによって、古い関数名を引き続き使用することができます。
推奨されない関数と変数:
`strings.seek`は廃止されました。その機能は `instr`演算子に追加されました。 `instr`のパターンマッチングモードをオフにするには、検索の開始点を3番目に渡し、` true`を4番目の引数として渡します。 `instr`は、` strings.seek`よりも非パターンマッチングモードで約40%高速です。下位互換性のために、 `strings.seek`がlib / compat.agnファイルに追加されています。`concat`ベースライブラリ関数は削除されました。代わりに `join`を使用してください。下位互換性のために、前者の関数はlib / compat.agnファイルに追加されています。
`hasrtable`と` hasrotable`関数は削除されました。下位互換性のため、lib / compat.agnファイルに追加されています。
`pcall`関数は非難されました。代わりに `protect`を使用してください。後方互換性のために、関数はlib / compat.agnファイルに追加されています。
`maptoset`関数は非難されました。後方互換性のために、関数はlib / compat.agnファイルに追加されています。
`os.alldirs`関数は推奨されなくなりました。代わりに `os.list`の呼び出しで 'dirs'と 'r'オプションを使用してください。後方互換性のために、関数はlib / compat.agnファイルに追加されています。
`os.isMac`、` os.isSolaris`、 `os.isLinux`、` os.isWin`、 `os.isOS2`、` os.isDOS`、 `os.isHaiku`は廃止されました。新しい環境変数environ.Osとenviron.Cpuを代わりに使用してください。これにより、コードが高速化されます。後方互換性のために、関数はlib / compat.agnファイルに追加されています。

文書化されていない_VERSION変数が削除されました。下位互換性のために、その割り当てがlib / compat.agnファイルに追加されています。
その他の変更点:
マニュアルに記載されているC API関数lua_rawsetstringnumberは存在しませんでした。これは変更されました。
パーサへの最適化をコード化する。
いくつかのパッケージでは、誤っていくつかの変数が暗黙的にグローバルに宣言されています。これは修正されました。
初期化サンプルファイルを修正し、更新しました。
AgenaEditが更新されました。
言語スキームファイルが更新されました。
LinuxインストーラにxBaseパッケージが含まれるようになりました。

バージョン1.0.6の新機能:


`toset`、` toseq`、 `totable`関数の` join`、 `copy`、` filled`オペレータ、 `insert`、` delete`、 `pop`文、 forループ。
シーケンスでは、Agenaは次のイベントシーケンスでクラッシュしました.1)削除ステートメントが実行されました.2)シーケンスが空でした.3)新しいエレメントが再び挿入されました。これは修正されました。 (内部的には、 `delete`ステートメントはもはや内部的にシーケンスのサイズを減らしません)。
大きな弦では、「コンカット」がクラッシュしました。これは修正されました。
512バイト以上の文字列では、 `join`と` replace`がクラッシュする可能性があります。これは修正されました。 2人のオペレータは、これまで以上に高速になっています。
`math.isprime`は引数が&gt;で間違った結果を返しました。 2 ^ 31(マニュアルには漠然と記載されています)。これは、引数の範囲を+/- 2 ^ 63までの値で整数に拡張することで修正されています。
`math.nextprime`と` math.prevprime`は `math.isprime`のようなもっと大きな引数で同じ問題を抱えていました。これも変更されました。引数2を指定すると、 `io.nextprime`は3ではなく5を誤って返しました。これも修正されています。

バージョン1.0.5の新機能:


`join`はAgenaをクラッシュさせ、そうでなければ結果の文字列
512バイトを超えました。これは変更されました。
以前にエラーが発行された後に `restart`が呼び出された場合
Agenaはまれに、スタック破損のためにクラッシュしました。これはされている
一定。
新しく作成されたテーブルでは、ハッシュ部分に正確に1つの要素、 `attrib`
割り当てられたハッシュスロット数(0ではなく1)に対して正しい結果が返されるようになりました。
`qsadd`と` sadd`のエラーメッセージを修正しました。
`join`、` copy`、 `filled`演算子と` insert`演算子のエラーメッセージが改善されました。
と `delete`ステートメントです。
`read`、` save`、 `fractals.draw`のエラー処理が改善されました。
makefileの改善。
現在、バッファサイズはソースで標準化されています。

バージョン1.0.4の新機能:


初期化中に(Windows XP SP 3およびOpenSolaris 134では状況によって)まれなクラッシュが報告されているため、初期化段階でガベージコレクションがオフになりました。これらのまれなセグメンテーションフォールトは、Agenaバイナリをルートディレクトリとして実行するとOpenSolarisで、ローカル管理者権限を持つAgenaデスクトップアイコンをクリックするとXPで発生します。
Agenaの初期化中に情報を印刷するためにコマンドラインオプションに-dスイッチを導入しました。
`trim`、` upper`、 `lower`、` os.curdir`、 `strings.rseek`にメモリを内部的に割り当てることができなかった場合、適切なエラー処理が導入されました。
初期化のC関数agenaL_initialiseとagenaL_setLibname、および `io.write *`と `print`の潜在的なメモリリークを削除しました。

バージョン1.0.3の新機能:

新しい関数 `protect`はプロテクトモードのプロシージャを呼び出し、計算が中断されないようにエラーをキャッチします。エラーの場合は、エラー文字列をグローバル変数 `lasterror`に設定します。これは `pcall`に関連していますが、最初の結果としてステータスコードを返しません。
`attrib`は空の構造体で正しい結果を返すようになりました。空の構造体では、以前に割り当てられた1つのハッシュ要素を関数が間違って数えました。
`attrib 'はテーブル、セット、シーケンスが占めるバイト数を新しい' bytes 'キーとともに返します。返されるバイト数は、ネット上で利用可能な矛盾した情報に基づいています。
結果の文字列が512バイトを超えた場合、 `replace`はAgenaをクラッシュしました。これは変更されました。
`仮定`は `Assumption failed 'を返すようになりました。 「仮定が失敗しました」の代わりに。
新しいC API関数lua_setglobal2は、スタックの先頭の値をグローバル名に設定します。 lua_setglobalとは異なり、値はポップされません。

lobject.h(テーブル構造体)のコードクリーニングとlapi.c(actnodesizeマクロ)。 Agenaが非void lua_assertでコンパイルされている場合のC API関数agn_deletertableへのバグ修正。スタックの破損の(わずかな)可能性を防ぐために、初期化中に使用されるsavestate関数の戻り値に変更します。

バージョン1.0.2の新機能:

新しい `os.setenv`プロシージャは、オペレーティングシステムレベルで環境変数を設定します。この関数はもともとMark Edgarによって書かれています。
Windowsでは、 `os.getenv`は環境変数の値を取得するためにネイティブWindows API関数を呼び出します。 WindowsのコードはMark Edgarによって書かれています。
新しい `os.environ`関数は、割り当てられたすべての環境変数をテーブルに返します。この関数はもともとMark Edgarによって書かれています。
`io.open`は、正常にオープンしたファイルのFILEポインタ、名前、モードを新しいテーブル` io.openfiles`に追加するようになりました。 `io.close`は、ファイルを正常に閉じることができた場合、そのエントリを` io.openfiles`から削除します。
引数なしで呼び出されたとき、AgenaEditで(キーボードの読み込みのために)引数なしで呼び出された場合、 `io.read`はエラーを返します。
AgenaEditで `io.anykey`と` io.getkey`が呼び出された場合、適切なエラーメッセージが表示されます。
スタックの破損を避けるために、初期化のサブ手順の1つが変更されました(問題は発生しませんでしたが)。
os.isMac( 'ppc')はPowerPCマシンで動作するようになりました。

入門書およびリファレンスの第4章と第6章が改訂され、拡張されました。インデックスが追加され、多くの化粧品が完成しました。
Windowsの実行可能ファイルに正しいバージョン情報を格納しました。

バージョン1.0の新機能:



親愛なる皆様、
開発のほぼ4年後に、私はAgena 1.0、手続き型プログラミング言語、Lua Cのソースから派生しました。
私のコミュニティは実際には非常に小さいですが、一部のユーザーは、それがうまく、有用で、安定していると私に言いました。
あなたがアジェナを見直して、あなたの結果について私に知らせれば、とても嬉しく思っています。それが役に立たない場合は、個人的に教えてください。問題を解決する機会を与えてください。

バージョン0.34.1dの新機能:



このバージョンには、AgenaEditの更新されたGUIバージョンが含まれています(実行可能ファイルagenaeditを参照)。

バージョン0.34.1の新機能:



Agena 0.34.1で、構文強調表示と組み込みのランタイムエンジンを備えたAgenaEditがリリースされました。

バージョン0.34.0の新機能:


Agena 0.34.0で、構文強調表示と組み込みのランタイムエンジンを備えたAgenaEditがリリースされました。

バージョン0.33.2の新機能:



xBaseファイルをサポートするAgena 0.33.2がリリースされました。

バージョン0.33.1の新機能:



xBaseファイルをサポートするAgena 0.33.1がリリースされました。

バージョン0.33.0の新機能:


新しい `xbase`パッケージは、dBASE III標準と互換性のあるxBaseファイルを読み書きできます。
`binio`と` ads`パッケージは2 ^ 63バイトまでのファイルを扱えるようになりました。最大2 ^ 31バイトのサイズのファイルのみを処理する前に。
新しい `io.lock`、` io.unlock`、 `binio.lock`、` binio.unlock`、 `ads.lock`と` ads.unlock`関数はファイルを他のAgenaによる読み書きアクセスからロックします
または後者がロッキングプロトコルを使用する場合には他のアプリケーションにも適用することができる。
baselib関数 `read`は` with`で上書きすることができなくなりました。
新しい `package.checkClib`は、Cの動的ライブラリに格納されたパッケージが初期化されているかどうかをチェックします。そうでない場合、画面に警告が表示され、空のパッケージ表が作成されます。それ以外の場合は何もしません。
Haikuポートはダイナミックリンクライブラリをサポートするようになりました。

バージョン0.32.3の新機能:



新しくチューニングされたCalculus関数を備えたAgena 0.32.3がリリースされました。
Macユーザーは、これ以上依存関係ライブラリを追加インストールする必要はありません。
Haiku港が利用可能になりました。

バージョン0.31.5の新機能:


このバージョンには、ビルトインのグラフィックス、任意精度の数学、改良された機能が含まれています。

バージョン0.31.3の新機能:

Solaris、Mac、Linux、Windowsでフラクタルを簡単に描画するためのフラクタルパッケージを追加しました。
SolarisとLinuxでは、 `gdi.mouse`は、押されたマウスボタンの標準値を返すようになりました(Mac版とWindows版と同じです)。
-vオプションを指定すると、Agenaはこれ以上初期化ファイルを実行しません。
UNIXまたはMacの場合、初期化ファイルのファイル名は、/ usr / agena / libにあるか個人フォルダにあるかにかかわらず、常に.agenainitでなければなりません。
インテルCPU用のバイナリMacの配布は、以前のリリースより約30%速くなっています。
`io.getkey`関数は、Mac OS X版でも利用できるようになりました。
Macでは、 `os.system`はオペレーティングシステムとCPUタイプに関する完全な情報を返します。 Darwinカーネルに関する情報を返すことに注意してください。そして結果のテーブルの最初のエントリは、 `MacOSX`ではなく` Darwin`です。
`os.memstate`、` os.freemem`、 `os.beep`はMac OS Xをサポートするようになりました。
`io.anykey`はすべてのプラットフォームで利用できますが、DOSとMacでは` fail`を返します。したがって、 `gdi.draw`は` mouse`オプションを使用しているときにMac上でエラーを発生させません。`os.listcore`はファイル、ディレクトリ、またはリンク名だけを返すように拡張されました。 '。'と '..'は今返されません。
`os.list`はオプションを認識せず、代わりに空のリストを返しました。これは修正されました。また、オプションを組み合わせることもできます。 '。'最初の引数として '..'が正しく認識されるようになりました。
`os.curdir`はスラッシュで指定されたパスのバックスラッシュを自動的に置き換えます。
ファイルの日付が2038年1月19日火曜日を超えた場合、 `os.fstat`と` ads.attrib`はAgenaをクラッシュさせました。これは、日付キー(os.fstat)の空のテーブルを返すか、 0/01 00:00:00、(ads.attrib)。
`utils.calendar`は引数が無効、負または大きすぎるとAgenaをクラッシュしました。これは変更されました。さらに、日付が2038年1月19日火曜日を超えている場合、正しい日付が返されます。
新しい関数 `os.screensize`と` os.mousebuttons`はそれぞれ、現在の画面解像度とマウスのボタン数を返します(Windowsのみ)。
agena.ini.sampleファイルの名前は、UNIX / Macディストリビューションの.agenainit.sampleに変更されました。

Solaris向けの新しいメークファイルは、Michael Cringによって書かれたオリジナルのMAPMソースを完全にコンパイルするためにmapm Agenaバインディングに同梱されています。

バージョン0.31.2の新機能:

恣意的な数学精度のためのmapmパッケージは、AgenaのDOS版でも利用できるようになりました。
mapmパッケージが使用する桁数は、DOSまたはOS / 2 Warp用のAgenaの起動時に17桁に初期化されます。以前は、デフォルトは1桁でした。
MAPMバインディングのCコードは標準化されています。以前は、DOSとOS / 2のソースファイルは、UNIXとWindowsのものと異なりました。
WindowsおよびMac OS Xインストーラの機能拡張。
Macでは、ドキュメントは/ Users / Share / Agenaの代わりにLibrary / Documentation / Agenaで利用できるようになりました。
sin、cos、arcsin、arccos、arctan関数は、虚数単位として0の代わりに-0を返し、これらの関数の返り値がlnなどの他の関数に適用された場合、間違った結果になりました(つまり、これらの他の機能の結果の単位は正しくありませんでした)。これは、sin、cos、arcsin、arccos、およびarctanの復帰で虚数単位-0を0に設定することで修正されています。
arcsin関数とarccos関数は、abs(real((z)))&lt;これは修正されました。
OS / 2では、最も複雑な算術関数が未定義で戻されました。これは修正されました。

OS / 2とDOSでは、複雑なドメインにarccosとarcsin演算子に関する問題がありますが、これは特定の状況では未定義に戻ります。
Windows、i386 Solaris 10、およびLinuxバージョンは、複雑な算術演算のエラー数を大幅に削減したGCC 4.4.x(およびxmath86.hなし)でコンパイルされました。実際に、精巧な複雑な数学のテストケースはゼロエラーを返します。 SparcのバージョンはSun SparcのGCC 4.3.3でコンパイルされており、0.31.1のリリースよりも複素数算術のバグは少ないです。
次のインクルードファイルの名前が変更されました:config.h - &gt; agncfg.h、chelpers.h - &gt; agnhlps.h、agnxlib.h - &gt; agnxlib.h。
Macでは、gdi.mouseは押されたマウスボタンの標準値を返すようになりました。

バージョン0.31.1の新機能:



Agena 0.31には、点、線、円、楕円、長方形、円弧をプロットするためのすべての基本ツールが含まれています。画像の大きさ、色などを制御する。

バージョン0.31.0の新機能:



バグを修正した言語の一貫性リリースがリリースされました。変更された内容については、変更ログを参照してください。

バージョン0.30.4の新機能:

Agenaにはグラフィックスが組み込まれています。これにより、X11またはWin32ウィンドウ、GIF、PNG、JPEG、FIG、またはPostScriptファイル(Solaris、Linux、およびWindowsの両方)にグラフ、イメージなどをプロットすることができます。 Agenaは、Ljubomir MilanovicとHorst Wagnerによって書かれたg2グラフィカルライブラリにバインドして、これらの新しい機能を提供しています。
Agena 0.30には、点、線、円、楕円、長方形、円弧をプロットするためのすべての基本ツールが含まれています。画像の大きさ、色などを制御する。
&gt;と 'gdi';
gdiパッケージv0.1.4 2009年12月20日現在
インク、最終アクセス、ライン、改行、改行、プロット、プロット、ポイント、矩形、矩形塗りつぶし、リセット、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、 resetpalette、setinfo、setoptions、構造体、テキスト、太さ、三角形、三角形、useink

plotfn関数は、1つの実数で関数の1つ以上のグラフを描画します。オプションで、ユーザー定義の色でプロットされた軸も表示されます。 y軸の範囲も指定できます。そうでなければ、Agenaが最適な設定を決定します。 setoptions関数で設定することができ、ウィンドウの解像度、カラーマップ、線の太さ、背景の色など、セッションで生成されるすべてのグラフに適用されるさまざまなオプションがあります。もちろん、ユーザーは特定のプロットのオプションの一部または全部を無効にすることができます。特異性は適切に扱われます。

バージョン0.30.3の新機能:



Agena 0.30.3にはグラフィックス、任意精度の数学、改良された機能が組み込まれています。

バージョン0.30.2の新機能:

Agenaにはグラフィックスが組み込まれています。これにより、X11またはWin32ウィンドウ、GIF、PNG、JPEG、FIG、またはPostScriptファイル(Solaris、Linux、およびWindowsの両方)にグラフ、イメージなどをプロットすることができます。 Agenaは、Ljubomir MilanovicとHorst Wagnerによって書かれたg2グラフィカルライブラリにバインドして、これらの新しい機能を提供しています。
Agena 0.30には、点、線、円、楕円、長方形、円弧をプロットするためのすべての基本ツールが含まれています。画像の大きさ、色などを制御する。
&gt;と 'gdi';
gdiパッケージv0.1.4 2009年12月20日現在
インク、最終アクセス、ライン、改行、改行、プロット、プロット、ポイント、矩形、矩形塗りつぶし、リセット、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、 resetpalette、setinfo、setoptions、構造体、テキスト、太さ、三角形、三角形、useink

plotfn関数は、1つの実数で関数の1つ以上のグラフを描画します。オプションで、ユーザー定義の色でプロットされた軸も表示されます。 y軸の範囲も指定できます。そうでなければ、Agenaが最適な設定を決定します。 setoptions関数で設定することができ、ウィンドウの解像度、カラーマップ、線の太さ、背景の色など、セッションで生成されるすべてのグラフに適用されるさまざまなオプションがあります。もちろん、ユーザーは特定のプロットのオプションの一部または全部を無効にすることができます。特異性は適切に扱われます。

バージョン0.29.0の新機能:

Agenaにはグラフィックスが組み込まれています。これにより、Ljubomir Milanovicによって書かれたg2グラフィカルライブラリへのバインディングを含めることによって、ウィンドウ、またはSolaris、Linux、WindowsのGIF、PNG、JPEG、FIG、またはPostScriptファイルにグラフや画像などをプロットすることができますHorst Wagnerなどが挙げられる。
Agena 0.29.0は点、線、円、楕円、長方形、円弧をプロットするためのすべての基本的なツールを備えています。色を管理し、画像ファイルを作成したり、X11またはWin32ウィンドウを開くことができます。
次のアップデートの1つでは、gdi.plotfn関数とgdi.plot関数を特長とする高度なユーザーインターフェイスを使用して、単変量関数とポイントセットをオンザフライでプロットすることができます。 2つの関数は既にAgena 0.29.0に含まれていますが、まだベータ版です。ここにプレビューがあります:
&gt;と 'gdi';
gdiパッケージv0.1.0 2009年11月24日現在
円、背景、円、クリアパレット、閉じる、ダッシュ、楕円、filledArc、filledCircle、filledEllipse、filledRectangle、
塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、塗りつぶし、
resetpalette、setinfo、setoptions、構造体、テキスト、太さ、三角形、useink

plotfn関数は関数のグラフを1つの実数で描画し、オプションでユーザー定義の色でプロットされた軸を描画します。 y軸の範囲も指定できます。そうでなければ、Agenaは最適な設定を決定しようとします。 setoptions関数で設定することができ、ウィンドウの解像度、カラーマップ、線の太さ、背景の色など、セッションで生成されるすべてのグラフに適用されるさまざまなオプションがあります。もちろん、ユーザーは特定のプロットのオプションの一部または全部を無効にすることができます。特異性は適切に扱われます。
plotfn(sin(x)* x、-5,5、color〜 'blue'、axiscolour〜 'gray'、res〜640:480);

バージョン0.27.2の新機能:

新しいtoSet baselib関数は、文字列をその文字セットに変換し、テーブルまたはシーケンスをセットに変換します。
io.readlinesは2048文字以上の行を処理するためにパッチが適用されています。内部メモリの割り当てに失敗すると、この関数はエラーも発行します。内部バッファサイズは2048バイトから512バイトに減少しました。これを変更するには、agnconf.hファイルのAGN_IOREADLINES_MAXLINESIZEに別の値を代入します。
io.readlinesはファイルハンドルも受け付けます。ファイル名とは対照的にファイルハンドルを使用する場合は、io.readlinesを使用した後に手動でファイルを閉じる必要があることに注意してください。
ファイルが存在しない場合、io.readlinesは空のテーブルを返さなくなりました。代わりに、エラーを発行します。
toSeqは、文字列、セット、またはテーブルを受け取らない場合、失敗ではなくエラーを返すようになりました。
使用されるbaselib関数が拡張され、メモリ使用量をバイト、キロバイト、およびグロバイトで返すことができます。今はC関数です。
文書化されていないgcinfo関数が削除されました。その機能は使用されています。
新しいC API関数agn_usedbytesは、システムで使用されているバイト数を返します。
toTableの間違ったエラーメッセージを修正しました。

C AOI関数 `agn_isioforcerror`を` agn_isioforceerror`にリネームしました。

バージョン0.27.0の新機能:

誤差関数math.erfと補数誤差関数math.erfcを追加しました。
第1種のmath.besseljのベッセル関数と、第2の種類のベッセル関数math.besselyを追加しました。順序は最初の引数で、引数は2番目の引数で与えられます。
新しい環境変数_EnvIoForceErrorがnull以外の値(デフォルト)に設定されている場合、io.open、io.readlines、およびさまざまなbinio関数は正常に戻るのではなくエラーで終了します。
binio.readbytesとbinio.readcharは、読み込まれるファイルが存在しない場合に、失敗ではなく空のシーケンスを返しました。これが変更されました:失敗またはエラーが返されるようになりました。
arcsinとarccosは現在演算子であるため、約40%速くなります。
true、false、fail、およびnullと評価されるか、または真である値に対してブール排他的論理和を実行するxor演算子が追加されました。
単語が指定されたフレーズで終わるかどうかをチェックし、その位置を数値として返すatendof演算子を追加しました。文字列の長さが同じで、少なくとも1つが空の文字列であるか、指定されたパターンで終了しない場合、演算子はnullを返します。hasrtableは、読み書き覚えテーブル(return文で更新)がある場合にのみtrueを返します。
新しい関数hasrotableは、関数が読み取り専用覚えテーブル(return文では更新できない)を持つかどうかを判定し、trueまたはfalseを返します。
新しい演算子gethighとgetlowは、数値から上位バイトと下位バイトを検索します(つまりC double)。
新しい演算子sethighとsetlowは、上位バイトと下位バイトを数値(つまりC double)に設定します。
新しい演算子バンドbor、bxor、およびbnotは、ビットごとに、および/または、排他的に、および補数演算を行います。
新しい `kernel`関数は、Agenaカーネルの設定を行います。現在、ビット演算子が内部的に動作する方法(符号付きまたは符号なし整数の使用法)、および数値の印刷方法を変更できます。
実数xを用いると、x <0ならば、math.argumentは0の代わりにPiを返す。 0。
基礎となるANSI Cライブラリ関数のバグのため、arcsinとarccosは、UNIXシステムで虚数部分がゼロだった場合、複素数で誤った結果を生成しました。これは修正されました。
math.isPrimeは番号2でfalseを返しました。これが修正されました。マニュアルとは対照的に、absは2を返して失敗しました。今度は、-1を文書化して返します。
ビットパッケージは削除されました。
_EnvIoForceErrorがnull以外の値に設定されているかどうかをチェックする新しいC API関数agn_isioforcerrorを追加しました。
新しいC API関数agn_setbitwiseは、演算子バンドbor、bnot、bxor、およびshiftが内部的に符号付きまたは符号なし整数で計算されるかどうかを決定します。
新しいC API関数agn_getbitwiseは、agn_setbitwiseで設定されたモードを返します。
新しいC API関数agn_setdigitsは、数字の印刷に使用する桁数を設定します。
新しいC API関数agn_getdigitsは、数字の印刷に使用する桁数を決定します。
内部:luaP_opnamesから廃止予定のREPLエントリを削除しました。
Windowsインストーラは、Agenaの以前にインストールされたバージョンを確認し、別のインスタンスが既に実行されている場合にインストーラが起動されるのを防ぐことによって、およびその他の小さな改良によって改善されました。

要件:



Ncurses
GNU Readline

同じようなソフトウェア

nml
nml

15 Apr 15

Toka
Toka

3 Jun 15

aime
aime

19 Feb 15

Pyastra
Pyastra

3 Jun 15

へのコメント Agena

コメントが見つかりません
コメントを追加
画像をオンにする!