Agena

軟件截圖:
Agena
軟件詳細信息:
版本: 2.11.5 更新
上傳日期: 22 Jun 18
許可: 免費
人氣: 73

Rating: 2.0/5 (Total Votes: 1)

Agena 是一種開源,免費,多平台且易於學習的過程式編程語言,專為日常使用而設計。它可用於圖形,科學,語言和教育環境,以及腳本應用程序,支持所有主流操作系統。


提供眾多流量控制設施

該應用程序提供了許多流量控制設施,例如if。 elif,else條件,case和else條件,是operator,numeric,from,to和by循環,組合數字for和while循環,for循環,while和do / as循環,skip語句,break聲明,以及數據類型驗證。


提供枚舉分配

在其他功能中,我們可以提到任意精度數學庫,輕鬆配置您的個人環境,易於使用的包系統,枚舉分配,通過epocs / scope關鍵字進行範圍控制以及許多其他有吸引力的功能。

引擎蓋和可用性

快速瀏覽一下我們將向我們展示該項目是用C,BASIC,Lua和ALGOL 68編程語言編寫的,這意味著它的語法類似於這些項目的語法。它完全在控制台/終端環境中運行,這意味著它沒有圖形用戶界面(GUI)。


用簡單的編輯器發貨

儘管Agena軟件是一個命令行應用程序,但它附帶了一個名為AgenaEdit的簡單編輯器圖形軟件,該軟件具有集成的Agena環境和語法高亮功能。它受到Bill Spitzak為FLTK跨平台C ++ GUI工具包開發的類似編輯器的啟發。


適用於Raspberry Pi

GNU / Linux,Solaris,Mac OS X,Microsoft Windows,eComStation - OS / 2和DOS操作系統支持Agena的圖形功能。它可以輕鬆部署在64位和32位硬件平台上,並且已經在基於ARM的Raspberry Pi計算機主板上成功進行了測試。

什麼是新的此版本:

  • 新的微積分和統計功能

版本中的新功能

  • 新的微積分和統計功能

版本2.9.4中的新功能

  • 新的微積分和統計功能

版本2.8.5中的新功能

  • 新的微積分和統計功能

版本2.8.2中的新功能

  • 新的微積分和統計功能

版本2.6.1中的新功能

  • `stats.chauvenet`現在可以專門檢查通過分別通過選項`outlier ='lower'`或`outlier ='upper'`可以得到更低或更高的異常值。
  • `bags.remove`導致分段錯誤。這已得到修復。此外,用C實現的所有`bag`函數都已在內部更改。
  • 如果沒有使用`with`函數或`import / alias`語句調用`bags`包,則`+`,`-`和`*`的(未記錄的)元方法不起作用。這已得到修復。

2.5.4版中的新功能

  • `stats.chauvenet`現在可以分別通過選項`outlier ='lower'`或`outlier ='upper'來專門檢查下方或上方的異常值。
  • `bags.remove`導致分段錯誤。這已得到修復。此外,用C實現的所有`bag`函數都已在內部更改。
  • 如果沒有使用`with`函數或`import / alias`語句調用`bags`包,則`+`,`-`和`*`的(未記錄的)元方法不起作用。這已得到修復。

版本2.5.3中的新功能

  • `stats.chauvenet`現在可以專門檢查通過分別通過選項`outlier ='lower'`或`outlier ='upper'`可以得到更低或更高的異常值。
  • `bags.remove`導致分段錯誤。這已得到修復。此外,用C實現的所有`bag`函數都已在內部更改。
  • 如果沒有使用`with`函數或`import / alias`語句調用`bags`包,則`+`,`-`和`*`的(未記錄的)元方法不起作用。這已得到修復。

版本2.4.2中的新功能

  • `stats.chauvenet`現在可以分別通過選項`outlier ='lower'`或`outlier ='upper'來專門檢查下方或上方的異常值。
  • `bags.remove`導致分段錯誤。這已得到修復。此外,用C實現的所有`bag`函數都已在內部更改。
  • 如果沒有使用`with`函數或`import / alias`語句調用`bags`包,則`+`,`-`和`*`的(未記錄的)元方法不起作用。這已得到修復。

版本2.3.0 RC1中的新功能

  • 數字`for`循環現在支持'downto'關鍵字,這樣您就可以倒計時而不使用強制性的'by`步長。在'downto'環境中,'by'步長應始終為正。當使用`downto'關鍵字時,`from'start和`to'stop值是必須的。
  • 不再支持metamethods'__finite','__ initier'和'__sqrt'。相反,增加了三個用於結構操作的新方法:用於聯合操作的'__ion',用於確定交叉點的'_intersect'和用於差異的'__minus'。因此,`bags`包現在也支持這三種操作。
  • ``整數除法運算符不支持它的metamethod,而是用它來表示float divison(`/`運算符)。這已得到修復。
  • 新功能`stats.gini`決定基尼係數,衡量(in-)相等。
  • 新函數`stats.zscore`返回一個計算樣本z分數(標準分數)的函數 - 樣本高於或低於分佈均值的標準偏差數。
  • `stats.sorted`現在默認使用Introsort算法而不是Quicksort。這可以在病態條件下(Quicksort需要O(n ^ 2)操作)加快計算時間,同時不會犧牲普通情況下的性能。實際上,Introsort默認使用Quicksort,如果遞歸深度達到2 * log(n,2),則會自動切換到Heapsort,其中n是結構中元素的數量。
  • 您可以通過傳遞新選項'quicksort'來覆蓋此邏輯,該選項僅使用傳統的遞歸Quicksort方法對數字進行排序。此外,`stats.sorted`現在也可以使用Heapsort算法,如果新選項'heapsort'被傳遞,以及Niklaus Wirth用新選項'nrquicksort'設計的非遞歸Quicksort算法。
  • 新函數`stats.meanmed`同時返回分佈的算術平均值和中位數,或者平均值和中位數的商,當需要這些值大約20%時,可以加快計算時間。
  • 改進了`size`操作符的錯誤信息。

版本2.1.1中的新功能

  • 新功能和補丁:
  • `try / catch`:在`catch`標記現在是可選的之後立即明確指定錯誤變量。如果沒有給出錯誤變量,那麼錯誤消息將自動存儲到本地`lasterror`變量中,並且必須省略`then`關鍵字:
  • >嘗試
  • >錯誤('oops!')
  • >捉
  • >打印(lasterror)
  • > YRT;
  • oops!
  • `try / catch`語句有時在程序中不起作用(未分配的錯誤變量)。這已得到修復。
  • 新的`net.wget`函數從網上下載HTML頁面。
  • 調整`skycrane.counter` 10%。如果新的第三個參數是字符串'ozawa',該函數現在可選地應用Kahan-Ozawa而不是原始的Kahan求和算法。已修改相應的C源以防止編譯器優化,這也可能取消優化。
  • `argerror`現在打印在其錯誤消息中收到的值的用戶定義類型名稱。如果某個值沒有用戶定義的類型,則會發出其基本類型。
  • “debug.getinfo”的新“a”選項返回程序所期望的參數數量,這要歸功於Rob Hoelz的“LuaPowerPatch”。
  • 改進了字符串的“索引超出範圍”錯誤消息。
  • 修改了`stats.agn`,`linalg.agn`,`library.agn`和`ansi.agn`文件的錯誤處理。

版本2.1.0中的新功能

  • 對於一種新的錯誤處理,引入了新的`try / catch`語句。它是胡啟偉在2008年為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`循環的當前迭代。例如:
  • > flag:= true; >對於[10,11,12]中的j,> print('before',j,flag); >如果flag和j = 11那麼>明旗; > print(' - >',j,flag,'jump back')>重做>網絡連接; > print('after',j,flag)>直到j> 12;之前10真實之後10真實之前11真實 - > 11假之前11假錯誤之後12假之前12假之後錯誤
  • 新的`recip`運算符返回數字x的倒數。它相當於表達式1 / x,但更快。
  • 新的`stats.ema`函數計算分佈的指數移動平均值。新函數`stats.gema`返回一個迭代器函數,返回一個分佈的相應指數移動平均值。有關它的用法,請查看src / stats.c源文件,C functions * ema。
  • `*%`,`+%`和` - %`返回`undefined`而不是正確的結果,如果他們的右操作數為零。這已得到修復。
  • 修正了`net.survey`。
  • 中的錯誤消息

  • 新的C API函數`agn_arraytoseq`將數值數組轉換為序列,並將此新序列推送到堆棧頂部。

版本2.0.0中的新功能

  • 新陳述和功能:
  • Agena 2.0與Agena 1.12向下兼容,但令牌`import`,`別名`,`until`和`onsuccess`現在是關鍵字,不能再用作變量。目前,Solaris,Debian(x86,PowerPC,Raspberry Pi),Windows,Mac和DOS安裝程序可用於2.0,包括更新的Primer和Reference,詳細解釋了所有新功能。
  • 新的循環變體`for / as`和`for / until`檢查當前迭代結束時的條件,並開始下一次迭代或離開循環。這適用於`for / to`,以及`for / in`循環。實際上,兩種變體都至少執行一次循環,直到檢查給定條件為止。
  • 示例:
  • > for i to 5 do
  • >打印(ⅰ)
  • >因為我< 3
  • >對於[1,2,3,4,5]中的我來說
  • >打印(ⅰ)
  • >直到i> = 3
  • 新的`do / until`循環迭代,直到滿足某個條件:
  • > c:= 0;
  • >做
  • > inc c;
  • >打印(c)中
  • >直到c> = 3
  • 在數字`for`循環中,可能不再給出`to`子句。相反,當省略`to`子句時,循環迭代,直到你的平台上可以表示的最大數字,在C HUGE_VAL中,已經到達:
  • >因為我做
  • >打印(ⅰ)
  • > OD
  • 如果至少有一個條件為真,則`if`和`case`語句中的新`onsuccess`子句執行一個chunk。示例:
  • > flag:= false;
  • >如果1 = 0那麼
  • >打印(0)
  • > elif 1 = 1然後
  • >打印(1)
  • >的onSuccess
  • > flag:= true
  • >其他
  • >打印(-1)
  • >網絡連接;
  • >打印(標記);
  • > flag:= false;
  • >如果1 = 0那麼
  • >打印(0)
  • > elif 1 = 0然後
  • >打印(1)
  • >的onSuccess
  • > flag:= true
  • >其他
  • >打印(-1)
  • >網絡連接;
  • >打印(標記);
  • > flag:= false;
  • > a:= 2;
  • >案例a
  • > 1然後
  • >打印(1)
  • >然後是
  • >打印(2)
  • >的onSuccess
  • > flag:= true
  • >其他
  • >打印(-1)
  • > ESAC;
  • >打印(標記);
  • 新的`import`語句允許導入一個或多個庫而不將其名稱放入引號,例如“import calc,stats”相當於“readlib('calc','stats')”。
  • `import`語句的`alias`選項為初始化的庫函數分配一個或多個短名稱,例如: “import calc alias xpdiff”相當於“with('calc','xpdiff')”,“import calc alias”相當於“with('calc')”。
  • 新的`..`運算符允許索引表,即使它的左側操作數計算為“null”。在這種情況下,返回`null`並且沒有'嘗試索引字段...(空值)`錯誤。它類似於`getentry`功能,但速度提高了三倍。示例:
  • >創建表a;
  • > A·B:
  • > A.B.C:
  • stdin錯誤,第1行:
  • 嘗試索引字段`b`(空值)
  • > a..b..c:
  • >創建表a;
  • >一個[1]:
  • >一個[1] [2]:
  • stdin錯誤,第1行:
  • 嘗試索引字段`?`(空值)
  • >一個.. [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`圖形包。
  • 現在可以在Windows中正確顯示`change.log`文件。

版本2.0.0 RC3中的新功能

  • 新的循環變體`for / as`和`for / until`檢查當前迭代結束時的條件,並開始下一次迭代或離開循環。這適用於for / to和for / in循環。

版本2.0.0 RC2中的新功能

  • 新的循環變體`for / as`和`for / until`檢查當前迭代結束時的條件,並開始下一次迭代或留下循環。這適用於for / to和for / in循環。

版本2.0.0 RC1中的新功能

  • 新的`import`語句允許導入一個或多個庫而不將其名稱放入引號,例如“import calc,stats”相當於“readlib('calc','stats')”。
  • `import`語句的`alias`選項為初始化的庫函數分配一個或多個短名稱,例如: “import calc alias xpdiff”相當於“with('calc','xpdiff')”,“import calc alias”相當於“with('calc')”。
  • 新的`..`運算符允許索引表,即使它的左側操作數計算為“null”。在這種情況下,返回`null`並且沒有'嘗試索引字段...(空值)`錯誤。它類似於`getentry`功能,但速度提高了三倍。

版本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的取冪,其中r為任何非零浮點數,返回“undefined”而不是0。這已得到修復。
  • 在包含Mac OS X且僅在復雜域中的DOS和UNIX系統中,基數0到指數r + 0 * I的取冪,其中r為任何正浮點數,返回“undefined”而不是0。已被修復。
  • `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中的新功能

  • 如果第二個參數為“null”,則新的`alternate`函數返回其第一個參數。否則它返回第二個參數。
  • 已刪除-b切換到Agena可執行文件,因為它的輸出與-v選項相同。
  • `strings.utf8size`的Windows和UNIX / Mac版本包含潛在的內存洩漏;這已經改變了。
  • plus庫的所有二進制DLL / SO不再包含未使用的代碼,根據操作系統的不同,最大可減小10%。 makefile和以前導入未使用的頭文件的源已更改。例如,這樣可以將Windows二進製文件的大小減少55 kBytes。
  • 擴展測試套件。
  • 更新了方案文件。

版本1.6.0中的新功能

  • 新功能和特點:
  • 新函數`checktype`確定結構中的所有值是否都是給定類型。
  • 新函數`isint`檢查它的所有參數是否都是整數。
  • 新函數`strings.dleven`返回兩個字符串的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位系統上C類型unsigned long的最大整數值,以及16位機器上的unsigned long。
  • C API:
  • 通過引入Lua的*轉儲功能,重新建立了Agena C API與Lua C API的100%兼容性。因此,您現在能夠以二進製表示形式存儲函數,例如在C級使用`strings.dump`或lua_dump。
  • 引入了新的`agnL_optboolean`函數來檢查可選的布爾參數,並在成功的情況下返回它們。
  • 錯誤修正:
  • `environ.globals`總是退出並出現錯誤,這已得到修復。
  • `assume`返回false,其兩個參數都是或者評估為'undefined'。在這種情況下,它現在返回true。
  • Agena在將空表和分隔符傳遞給`join`時崩潰了 - 這已經修復了。
  • `gdi.plot`不再忽略`colour`選項。
  • 對於表,`stats.minmax`返回了一個錯誤的最小值。它現在可以正常工作。
  • 使用空表,`stats.median`返回0,現在它返回失敗。
  • 與文檔相反,`strings.isending`返回'true',兩個字符串相等。這已得到修復。

  • 如果現有的Agena腳本包含語法錯誤,則
  • `run`返回`無法打開文件`。通過完全重寫函數來解決這個問題。
  • 添加了Lua 5.1.4補丁9:“某些特定[例如復雜]布爾表達式的代碼生成錯誤。”
  • 添加了Lua 5.1.4補丁11:“Parser可能會在構建時收集原型。”
  • *信息:添加Lua 5.1.4補丁10,“如果metatable是它自己的metatable,”[__ write / __ new]索引元方法可能無效“,對Agena來說沒有必要,因為Agena在這種情況下已經正常工作。
  • 刪除了未使用的關鍵字`default`。
  • 功能和功能的一些強化。
  • 增強:
  • 在Mac版本中添加了`io.anykey`的_experimental_版本。然而,至少在Lion上,被按下的鍵有時會在外殼上迴響。
  • `utils.readcsv`現在可以選擇以平面順序返回CSV文件中的所有值。
  • `clock`包現在支持除法運算符`/`,將它添加到`tm`運算符的metatable中。
  • `with`的行為已被更改,因為它無法為許多庫函數指定短名稱:如果已將函數放入.aux表中,請不要為這些函數名指定短名稱;否則為_all_其他包函數指定短名稱。因此:不再需要`package.register`來註冊`with`的所有庫函數來分配短名稱。它將在以下版本之一中棄用。
  • 改進了測試套件。
  • 手冊:
  • 改進了手冊和索引。
  • 一致性:
  • 對於以下所有重命名,仍支持以下舊變量名稱。
  • `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`現在返回'fail',就像UNIX或OS / 2版本一樣。
  • 最終刪除了`-DCOMPAT13`開關,用於編譯Agena 1.3.x complient版本。
  • 其他:
  • 已棄用的`calc.fseq`已被刪除。請改用`nseq`。

版本1.5.1中的新功能

  • 補丁`strings.fields`根本不起作用。此外,它已被轉換為C庫函數,因此速度提高了2.6倍。
  • `strings.words`現在接受第三個參數,如果設置為“true”,則忽略後續分隔符。
  • 從`io.write`和`io.writeline`中刪除了可能的安全漏洞並改進了其錯誤消息。
  • 修補`binio.readchar`以避免文件大小超過2 GB的麻煩。
  • 更正了函數`xbase.purge`,`xbase.readvalue`,`xbase.purge`,`ads.getvalues`,`binio.readshortstring`,`os.computername`,`os.login`的錯誤消息, `os.fattrib`,`environ.kernel`,`package.register`。
  • 現在可以使用符號T輸入太字節,其中是整數,T是字符“T”。同樣,g表示數十億,和數万億。有關詳細信息,請參見手冊的第48頁。
  • 更新了手冊。
  • 由於代碼清理原因,大部分C源代碼中的所有向後兼容性開關都已被刪除。這僅影響那些試圖重新編譯Agena 1.5或更高版本且完全向後兼容Agena 1.3和1.4,並且大部分向後兼容Lua 5.0(舊Lua 5.0庫處理除外)的人。

版本1.5.0中的新功能

  • `map`現在也可以處理作為第二個參數給出的字符串。相應的函數及其參數從左到右連續應用於每個字符,結果按順序返回。
  • `run`:如果要從帶有'agn'後綴的文件加載和執行代碼,則不必再在參數中指定後綴。所以`run'test'和`run'test.agn'`現在都是一樣的。
  • 現在必須使用`is`關鍵字來定義程序。 (使用GCC,使用-DCOMPAT14開關編譯Agena的版本,其中`is`關鍵字仍然是可選的。)
  • `try`語句已被棄用,不再受支持。 (使用GCC,使用-DCOMPAT14開關編譯仍然具有此語句的Agena版本。)
  • 以下`utils`函數已被刪除:`arraysize`,`getarray`,`getwholearray`,`newarray`,`searcharray`,`setarray`。為了向後兼容,它們已添加到lib / compat.agn文件中。 (使用GCC,使用-DCOMPAT14開關編譯仍支持原始utils函數的Agena版本。)
  • `utils.singlesubs`已被完全重寫。它現在期望一系列數字作為第二個參數而不是前一個stringarray userdata結構。它比前一版本慢35%,但刪除stringarray結構更為重要。

  • 如果以0作為第二個參數調用,則
  • `strings.include`崩潰。這已得到修復。
  • 應用Michael G. Schwern的2011年5月10日補丁到他的'32位年2038-Fix`日期輔助函數`os`和`xbase`包使用(`make mktime64()糾正傳入的tm結構正如ISO C要求的那樣。)
  • 內部代碼優化:一些庫初始化和文件加載C函數使用堆棧來構建路徑和文件名字符串。由Solar Designer編寫的新C aux函數`concat`現在在許多情況下被使用。
  • Agena C API現在與Lua C API 100%兼容,以便於將C Lua包移植到Agena。
  • 以下功能已重命名:lua_isnumber - > agn_isnumber,lua_isstring - > agn_isstring,luaL_optnumber - > agnL_optnumber,luaL_checknumber - > agnL_checknumber,luaL_optnumber - > agnL_optnumber,luaL_checkinteger - > agnL_checkinteger,luaL_optinteger - > agnL_optinteger。
  • 以下宏已重命名:luaL_checkint - > agnL_checkint,luaL_optint - > agnL_optint。
  • 與前Agena實現相反,lua_tonumber現在返回0,就像在Lua中一樣,如果傳遞了非數字,而不是返回HUGE_VAL。
  • lua_setglobal2已被刪除。請改用lua_pushvalue和lua_setglobal。

版本1.4.2中的新功能

  • 如果在過程的參數列表中指定了用戶定義的類型,則在
  • 過程調用沒有發出錯誤,而是在以下情況下執行了該過程:
  • a)表,集,序列,對或過程 - 不是用戶定義的
  • 類型 - 已通過,
  • b)相關參數沒有傳遞任何值。

版本1.4.1中的新功能

  • `stats.quartiles`和`stats.mode`的短名稱不能由`with`函數指定。這已得到修復。
  • 錯誤地,`with`無法為`gdi.settriangle`分配短名稱。這已經改變了。
  • `calc.polygen`的錯誤處理已得到改進。
  • 針對缺少的FRACTINT地圖文件改進了“fractals.draw”的錯誤消息。
  • 刪除了已棄用的`strings.rseek`函數。為了向後兼容,`strings.seek`已添加到lib / compat.agn文件中。
  • 添加-d開關以在解釋器啟動期間打印調試信息。
  • 現在已經使用GCC 4.5.2編譯了Agena的Windows版本。
  • 更新了語言方案文件。
  • 手冊已更新。

版本1.4.0中的新功能

  • 語義變化:
  • 數字`for / to`循環的循環控制變量現在自動對其周圍的塊而不是它們的(內部)循環體本地。如果在
  • 之前聲明並分配了與循環控制變量同名的局部變量
  • 執行數字循環,它被循環的最後一個迭代值覆蓋。因此,不再接受數字`for`循環中的`external`開關。 (使用GCC,使用-DCOMPAT13開關編譯仍然可以識別但忽略`external`關鍵字的Agena版本。)
  • 使用常量`fail`,`not`返回`true`,但將`fail`賦值給變量,`not`返回false。這已經改變,即'a:=失敗;不是(a)'現在返回`true`。

  • 如果給定的結構為空,
  • `stats.median`現在返回`fail`而不是0。
  • `utils.readcsv`:如果使用`delim`選項傳遞一個空格並且如果沒有給出`ignorespaces`選項,則在將文件的每一行拆分成白色空格之前不再自動刪除空格它的話。
  • 該函數還有兩個新選項:`header`,用於標記文件中的第一行;`output`,用於將文件內容存儲到字典中,字段名稱由文件頭定義。
  • 不再支持`$`子字符串表示法。 (使用GCC,使用-DCOMPAT13開關編譯仍然支持`$`運算符的Agena版本。)
  • 擴展:
  • 添加了無限的do / od循環。這種循環無限迭代,只能用`break`或`return`語句中斷。它們是`while true do ... od` loops的語法糖。
  • 使用表格,`stats.minmax`以前只適用於數組。這已經改變,即現在在評估中正確識別具有相應非正鍵的值(例如字符串,非正整數,負浮點數和正浮點數等)。
  • `stats.mean`,`stats.qmean`,`stats.sd`和`stats.var`現在也處理序列。
  • 新的`stats.mode`函數返回序列或表中具有最大出現次數的所有值,即最高頻率。
  • 新的`stats.quartiles`函數返回_sorted_表或序列的第一,第二和第三四分位。
  • 以前未提供的`linalg.matrix`功能已添加到手冊中,其錯誤處理已得到改進。
  • 改進了`linalg.hilbert`的錯誤處理。
  • `gdi.setinfo`現在接受`square`選項。如果`square = false`,則x和y軸在使用`gdi.plot`創建的圖上不會有相同的比例。
  • 遺憾的是,用於繪製圖形的`gdi.plot`函數尚未記錄。這已經改變了。
  • `gdi.plot`接受兩個新選項:'x'選項指定繪圖的水平範圍,'y'選項指定垂直範圍。
  • 如果PLOT結構傳遞給只包含POINT,LINES,RECTANGLES,TRIANGLEs,CIRCLE和ELLIPSE(包括它們的* FILLED變體)的`gdi.plot`,那麼`gdi.plot`會自動確定比例(`不一定需要調用gdi.setinfo`。
  • 從Lua繼承的OOP功能現在記錄在附錄A9中。作者不建議使用面向對象的編程。
  • 調整:
  • 調整`填充'操作員約3%。
  • 調整`in`,`join`,`sadd`,`qsadd`,`replace`,`copy`,`unique`,以及Cantor在表格上設置運算符並稍微設置一下。
  • 使用表格,`top`和`bottom`運算符現在快5%左右。
  • 如果表不包含空值,則“size”運算符的速度至少提高8%。
  • `linalg.mzip`,`linalg.mmul`和`linalg.transpose`各調整約3%。
  • 通過將控制變量的數量減少一半來優化具有小數步長的數字for / to循環。然而,這並未達到速度的任何增加。
  • 補丁:
  • 修補`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`指定短名稱。這已經改變了。
  • fractals包沒有為用戶定義類型'esctime'的函數指定短名稱。這已經改變了。如果位置參數不是數字,則更正`fractals.draw`的錯誤消息。
  • `calc.fseq`的功能已合併為`nseq`。為了向後兼容,`calc.fseq`仍然是calc包的一部分,但該函數實際上是指`nseq`實現。
  • 將`environ.FractScreenUpdates`變量添加到`fractals package`以表示垂直線的數量(非負整數),之後將在窗口中更新分形。不推薦使用`environ.FractOptimised`變量。
  • 輔助gdi功能已重新組合。

版本1.3.3中的新功能

  • 補丁到`instr`:
  • 當處於正則表達式模式時,如果已給出開始位置,則操作員返回錯誤的結果。
  • 當處於普通搜索模式時,如果沒有給出開始位置,則操作員返回超出範圍的錯誤。
  • 除反向搜索模式外,如果未找到匹配項,則返回第一個參數而不是“null”。
  • 更正了關於序列的`create`語句的錯誤消息。
  • 在AgenaEdit中,當輸出多個結構而只調用一次`print'時,如果第一個結構具有__tostring元方法,則結構不會以完整形式打印。這已經改變了。

版本1.3.2中的新功能

  • 此版本包含錯誤修復,擴展和改進的手冊:

  • 如果結構已作為傳遞,則
  • `dimension`會創建有趣的結果
  • 初始化劑。這已經改變了:`dimension`現在創建了
  • 的獨立副本
  • 初始化表時的結構。
  • `strings.rseek`的功能已添加到`instr`操作符。
  • 因此,`strings.rseek`已被棄用。為了向後兼容,
  • `strings.rseek`已添加到lib / compat.agn文件中。
  • `strings.hits`現在支持正則表達式和捕獲。這種行為
  • 可以通過傳遞布爾值作為第三個參數來關閉。
  • `strings.isabbrev`和`strings.isending`現在自動使用普通搜索
  • 如果沒有正則表達式或捕獲作為第二個
  • 的一部分傳遞
  • 參數。
  • 調整`strings.ismagic`和`strings.isfloat`。
  • `log`功能現在快了13%。
  • 輸出多個結構時只需調用一次“print”,

  • 如果第一個結構具有__tostring ,則
  • 結構不會以完整形式打印
  • 元方法。這已經改變了。
  • 在第7章中添加了功能分類,以便於開始新的
  • 用戶。

版本1.3.1中的新功能

  • 對以下二元運算符的嵌套調用存在問題:`xor`,`atendof`,`&&`,`||`,`^^`,`::`和`: - `,因此還有漂亮的打印機,在打印嵌套結構時退出並出錯。這已得到修復。
  • 對`os.list`的四個修復:如果已經傳遞'r'選項,則在完成調用後錯誤地更改了當前工作目錄。
  • 如果'r'尚未作為最後一個參數傳遞,則該函數發出錯誤。
  • `null`尚未被接受為表示當前工作目錄的第一個參數。
  • 在Windows 7中,打印根目錄的內容不起作用,即os.list('c:')返回當前工作目錄的內容。
  • 當字符串使用非數字編入索引時,例如“str [null]”,Agena返回“null”。現在出現了錯誤。
  • 如果未找到library.agn,則警告中輸出錯誤的路徑兩次。這已經改變了。

版本1.2中的新功能

  • 子串運算符已經過重新設計,但舊版本仍然可用,直到Agena 2.0:新版本是:`str [從左到右]`,舊版本:`str $(左,右)` 。一個例子:before:`str:='string'; print(str $(2,3))` - > 'tr'現在:`str:='string'; print(str [2 to 3])` - > “TR”
  • 您現在可以使用上面提到的新語法確定表數組和序列的子列表:`s [從左到右]`。一個例子:現在:`a:= [10,20,30,40]; print(a [2 to 3])` - > [20,30]現在:`a:= seq(10,20,30,40); print(a [2 to 3])` - > 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-1對此新創建的結構的引用。之前,已經製作了n份獨立副本。
  • 新的`isnonposint`函數檢查給定的數字是否都是整數且非正數。
  • `io.close`現在只需撥打一個電話即可關閉多個文件。
  • `with`函數沒有為`math`包的以下過程指定短名稱:`convertbase`,`fraction`,`zeroin`,`todecimal`,`lcm`,`gcd`,和` ndigits`。這已得到糾正。
  • 手冊中提到的`rwritemode`函數不存在。它現在可用,但稱為“rmode”。
  • 各種功能的錯誤消息已得到改進。
  • 命名空間清理:重命名或移動的函數:
  • `register`和`loadclib`基本庫函數已移至`package`庫。
  • 前``rdelete`,`rget`,`rinit`,`roinit`,`rmode`,`rset`,`remember`和`defaults`基礎庫函數已被移動到新的`rtable`包中
  • 將全局_Env表重命名為`environ`,現在還包含訪問環境的過程。
  • 以前的全局`homedir`和`infolevel`環境變量分別被重命名為`environ.homedir`和`environ.infolevel`。
  • 以下以前的基本庫函數已移至`environ`包:`anames`,`attrib`,`gc`,`getfenv`,`globals`,`isselfref`,`pointer`,`setfenv` ,`used`,`userinfo`,`__RESTART`,`__DOTTYPRINT`。
  • `mapm.xtoNumber`已重命名為`mapm.xtonumber`,`mapm.xtoString`已重命名為`mapm.xtostring`。為了向後兼容,仍然可以通過執行lib / compat.agn文件來使用舊函數名(首先讀取`mapm`包然後加載compat.agn文件。)
  • 不推薦使用的函數和變量:
  • `strings.seek`已被棄用。其功能已添加到`instr`運算符中。要關閉`instr`的​​模式匹配模式,將搜索的開頭作為第三個參數傳遞,將“true”作為第四個參數傳遞。 `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中的新功能

  • 改進了`join`,`copy`和`filled`操作符的錯誤信息,`toset`,`toseq`和`totable`函數,`insert`,`delete`,`pop`語句,和'for`循環。
  • 對於序列,Agena在以下事件序列中崩潰:1)執行了`delete`語句,2)therafter為空的序列,以及3)再次插入新元素。這已得到修復。 (在內部,`delete`語句不再在內部減少序列的大小。)
  • 大字符串,`concat`崩潰了。這已得到修復。
  • 使用512和更多字節的字符串,`join`和`replace`可能會崩潰。這已得到修復。這兩個運營商現在也比以前快得多。
  • `math.isprime`使用參數>返回錯誤的結果2 ^ 31(在手冊中含糊地提到)。通過將參數範圍擴展為值為+/- 2 ^ 63的整數來修復此問題。
  • `math.nextprime`和`math.prevprime`與`math.isprime`等較大的參數有同樣的問題。這也發生了變化。使用參數2,`io.nextprime`錯誤地返回5而不是3.這已經修復了。

版本1.0.5中的

什麼是新的

  • `join`可能會導致Agena崩潰,如果生成的字符串
  • ,則會出現意外行為
  • 超過512個字節。這已經改變了。
  • 如果在上一次
  • 中發出錯誤後調用了`restart`
  • 聲明,Agena在極少數情況下因堆棧損壞而崩潰。這是
  • 固定。
  • 新創建的表中只包含哈希部分中的一個元素,`attrib`
  • 現在返回分配的哈希槽數(1而不是0)的正確結果。
  • 更正了`qsadd`和`sadd`。
  • 的錯誤消息
  • 改進了`join`,`copy`和`filled`運算符以及`insert`
  • 的錯誤消息
  • 和`delete`陳述。
  • 對`read`,`save`和`fractals.draw`的錯誤處理進行了改進。
  • 對makefile的改進。
  • 緩衝區大小現已在源中標準化。

版本1.0.4中的

新功能

  • 由於在初始化期間報告了罕見的崩潰(在Windows XP SP 3和OpenSolaris 134中,在某些情況下),現在在初始化階段關閉垃圾收集。當以root用戶身份在其包含目錄中運行Agena二進製文件時,在OpenSolaris中出現這些罕見的分段錯誤;在單擊具有本地管理員權限的Agena桌面圖標時,在XP中出現這些罕見的分段錯誤。
  • 將-d開關引入命令行選項,以便在初始化Agena期間打印信息。
  • 如果內存無法內部分配到:`trim`,`upper`,`lower`,`os.curdir`和`strings.rseek`。
  • ,則引入正確的錯誤處理。
  • 刪除了初始化中的潛在內存洩漏C函數agenaL_initialise和agenaL_setLibname,以及`io.write *`和`print`。

版本1.0.3中的新功能

  • 新函數`protect`在受保護模式下調用過程並捕獲任何可能的錯誤,以便不中斷計算。如果出現錯誤,它會將錯誤字符串設置為全局變量`lasterror`。它與`pcall`有關,但不會返回狀態代碼作為第一個結果。
  • `attrib`現在返回空結構的正確結果。對於空結構,該函數錯誤地計算了一個指定的哈希元素。
  • `attrib`現在返回表,集和序列佔用的字節數以及新的“字節”鍵。返回的字節數基於網上有時可用的矛盾信息。

  • 如果結果字符串超過512字節,則
  • `replace`崩潰了Agena。這已經改變了。
  • `假設`現在返回'假設失敗'。而不是'假設失敗。'
  • 新的C API函數lua_setglobal2將堆棧頂部的值設置為全局名稱。與lua_setglobal相反,該值不會彈出。
  • 清除lobject.h(表結構)和lapi.c(actnodesize宏)的代碼。如果使用非void lua_assert編譯Agena,則修復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`,則會顯示正確的錯誤消息。
  • 其中一個初始化子程序已更改,以避免可能的堆棧損壞(儘管問題從未發生過)。
  • os.isMac('ppc')現在適用於PowerPC機器。
  • “引物和參考文獻”第4章和第6章已經修訂和擴展。已經添加了一個索引,並且已經完成了許多化妝品。
  • 將正確的版本信息存儲到Windows可執行文件中。

1.0版中的新功能

  • 親愛的女士們,先生們,
  • 經過近四年的發展,我發表了Agena 1.0,一種程序編程語言,源自Lua C源代碼。
  • 我的社區實際上非常非常小,但有些用戶告訴我它很好,很實用,也很穩定。
  • 如果您查看Agena並告知我您的結果,我將非常高興。如果你覺得它沒用,請親自告訴我,讓我有機會解決這些問題。

版本0.34.1d中的

新功能

  • 此版本包含更新的AgenaEdit GUI版本(請參閱可執行文件agenaedit)。

版本0.34.1中的新功能

  • 帶有語法高亮和內置運行時引擎的AgenaEdit已隨Agena 0.34.1發布。

版本0.34.0中的新功能

  • 帶有語法高亮和內置運行時引擎的AgenaEdit已隨Agena 0.34.0發布。

版本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
  • 功能或甚至其他應用程序,只要後者使用鎖定協議。
  • `with`。
  • 不能再覆蓋baselib函數`read`
  • 新的`package.checkClib`檢查存儲到C動態庫的包是否已初始化。如果沒有,它將返回屏幕上打印的警告並創建一個空的包表。否則它什麼都不做。
  • Haiku端口現在支持動態鏈接庫。

版本0.32.3中的新功能

  • 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上,初始化文件的文件名必須始終為`.agenainit`,無論它們是在/ usr / agena / lib還是個人文件夾中。
  • 英特爾CPU的二進制Mac發行版比以前的版本快30%左右。
  • “io.getkey”功能現在可在Mac OS X版本中使用。
  • 在Mac上,`os.system`現在返回有關操作系統和CPU類型的完整信息。請注意,它返回有關Darwin內核的信息,並且結果表中的第一個條目現在是“Darwin”而不是“MacOSX”。
  • `os.memstate`,`os.freemem`和`os.beep`現在支持Mac OS X.
  • `io.anykey`在所有平台上都可用,但在DOS和Mac上返回`fail`。因此,當使用`mouse`選項時,`gdi.draw`不會再在Mac上拋出錯誤。
  • `os.listcore`已擴展為僅返回文件,目錄或鏈接名稱。 '。“和'..'現在永遠不會歸還。
  • `os.list`無法識別任何選項並返回空列表。這已得到修復。此外,現在可以組合選項。 '。“和'..'作為第一個參數現在已被正確識別。
  • `os.curdir`現在自動替換用斜杠確定的路徑中的反斜杠。
  • `os.fstat`和`ads.attrib`如果文件的日期超過2038年1月19日星期二,則會丟失Agena。這已通過返回日期鍵的空表(os.fstat)來修復,或0/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的新makefile現在隨附mapm Agena綁定,以完全編譯Michael C. Ring編寫的原始MAPM源。

版本0.31.2中的新功能

  • 用於仲裁數學精度的mapm包現在也可以在Agena的DOS版本中使用。
  • 在啟動Agena for DOS或OS / 2 Warp時,mapm包使用的位數初始化為17位。之前,默認值是1位數。
  • MAPM綁定的C代碼已標準化。以前,DOS和OS / 2源文件與UNIX和Windows不同。
  • Windows和Mac OS X安裝程序的小增強功能。
  • 在Mac上,文檔現在可在Library / Documentation / Agena中找到,而不是/ Users / Share / Agena。
  • sin,cos,arcsin,arccos和arctan函數返回-0而不是0作為虛數單位,如果將這些函數的返回應用於其他函數(如ln),則會導致錯誤的結果這些其他功能的結果的假想單位是不正確的)。通過在sin,cos,arcsin,arccos和arctan的返回中將虛數單位-0設置為0來修復此問題。
  • 如果abs(real((z)))< 1.這已得到修復。
  • 在OS / 2中,大多數複雜的算術函數返回undefined。這已得到修復。
  • 請注意,在OS / 2和DOS中,在復雜域中仍存在arccos和arcsin運算符的問題,這些運算符在某些情況下返回undefined。
  • Windows,i386 Solaris 10和Linux版本現在已經使用GCC 4.4.x(並且沒有xmath86.h)進行編譯,這顯著減少了複雜算術中的錯誤數量。實際上,精心設計的複雜數學測試用例會返回零錯誤。 Sparc版本已經使用GCC 4.3.3編譯為Sun Sparc,複雜數字算法的錯誤少於0.31.1版本。
  • 重命名以下包含文件:config.h - > agncfg.h,chelpers.h - > agnhlps.h,agnxlib.h - > agnxlib.h。
  • 在Mac上,gdi.mouse現在返回按下的鼠標按鈕的標準值。

版本0.31.1中的新功能

  • Agena 0.31包括繪製點,線,圓,橢圓,矩形,弧的所有基本工具。等,以控製圖像大小和顏色。

版本0.31.0中的新功能

  • 已發布帶有錯誤修復的語言一致性版本。請參閱更改日誌以了解更改內容。

版本0.30.4中的新功能

  • Agena現在具有內置圖形功能。這將允許您在X11或Win32窗口中繪製圖形,圖像等,或在Solaris,Linux和Windows中繪製GIF,PNG,JPEG,FIG或PostScript文件。 Agena與Ljubomir Milanovic和Horst Wagner編寫的g2圖形庫綁定,以提供這些新功能。
  • Agena 0.30包括繪製點,線,圓,橢圓,矩形,弧的所有基本工具。等,以控製圖像大小和顏色。
  • >與'gdi';
  • gdi package v0.1.4截至2009年12月20日
  • 弧,arcfilled,背景,圓,circlefilled,clearpalette,關閉,短劃線,橢圓,橢圓填充,沖洗,fontsizeces,initpalette,墨水,lastaccessed,線,換行,newpoint,打開,情節,plotfn,點,矩形,矩形填充,reset,resetpalette,setinfo,setoptions,structure,text,thickness,triangle,trianglefilled,useink
  • plotfn函數在一個實數中繪製一個或多個函數圖,可選地與用戶定義顏色繪製的軸一起繪製。也可以給出y軸的範圍,否則Agena確定最佳設置。可以使用setoptions函數設置各種其他選項,這些選項將應用於會話中生成的所有圖形:窗口分辨率,顏色映射,線條粗細和背景顏色。當然,用戶可以覆蓋特定情節的一些或所有選項。奇點得到妥善處理。

版本0.30.3中

什麼是新

  • Agena 0.30.3內置圖形,任意精確數學和改進功能已經發布。

版本0.30.2中的新功能

  • Agena現在具有內置圖形功能。這將允許您在X11或Win32窗口中繪製圖形,圖像等,或在Solaris,Linux和Windows中繪製GIF,PNG,JPEG,FIG或PostScript文件。 Agena與Ljubomir Milanovic和Horst Wagner編寫的g2圖形庫綁定,以提供這些新功能。
  • Agena 0.30包括繪製點,線,圓,橢圓,矩形,弧的所有基本工具。等,以控製圖像大小和顏色。
  • >與'gdi';
  • gdi package v0.1.4截至2009年12月20日
  • 弧,arcfilled,背景,圓,circlefilled,clearpalette,關閉,短劃線,橢圓,橢圓填充,沖洗,fontsizeces,initpalette,墨水,lastaccessed,線,換行,newpoint,打開,情節,plotfn,點,矩形,矩形填充,reset,resetpalette,setinfo,setoptions,structure,text,thickness,triangle,trianglefilled,useink
  • plotfn函數在一個實數中繪製一個或多個函數圖,可選地與用戶定義顏色繪製的軸一起繪製。也可以給出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窗口。
  • 在即將發布的更新中,具有gdi.plotfn和gdi.plot功能的高級用戶界面允許您即時繪製單變量函數和點集。這兩個功能已經包含在Agena 0.29.0中,但仍然是測試版。這是預覽:
  • >與'gdi';
  • gdi package v0.1.0截至2009年11月24日
  • arc,background,circle,clearpalette,close,dash,ellipse,filledArc,filledCircle,filledEllipse,filledRectangle,
  • filledTriangle,flush,fontsize,initpalette,ink,lastaccessed,line,open,plot,plotfn,point,rectangle,reset,
  • resetpalette,setinfo,setoptions,structure,text,thickness,triangle,useink
  • plotfn函數在一個實數中繪製函數的圖形,可選地與用戶定義的顏色繪製的軸一起繪製。也可以給出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。
  • 添加了第一種math.besselj的Bessel函數,以及第二種math.bessely的Bessel函數。順序由第一個參數給出,參數作為第二個參數。
  • 如果新環境變量_EnvIoForceError設置為非空值(默認值),則io.open,io.readlines和各種binio函數將退出並顯示錯誤,而不是正常返回。
  • binio.readbytes和binio.readchar返回空序列而不是失敗,以防要讀取的文件不存在。這已更改:失敗或現在返回錯誤。
  • arcsin和arccos現在是運算符,因此快了大約40%。
  • 添加了xor運算符,該運算符對值為或者為true,false,fail和null的值執行布爾異或。
  • 添加了atendof運算符,該運算符檢查單詞是否以給定短語結束並將其位置作為數字返回。如果字符串具有相同的長度,則運算符返回null,其中至少有一個是空字符串,或者單詞不以給定模式結束。
  • hasrtable現在只返回true,如果它有一個read-write remember表(由return語句更新)。
  • 新函數hasrotable確定函數是否具有隻讀記住表(不能由return語句更新)並返回true或false。
  • 新運算符gethigh和getlow從一個數字中檢索較高和較低的字節(即C double)。
  • 新運算符sethigh和setlow將較高字節和較低字節設置為一個數字(即C double)。
  • 新的運營商band,bor,bxor和bnot對數字進行按位和/或排他或互補操作。
  • 新的`kernel`函數配置Agena內核的設置。目前它可以改變按位運算符內部工作的方式(使用有符號或無符號整數),以及如何打印數字。
  • 對於實數x,如果x
  • 由於底層ANSI C庫函數中存在錯誤,如果在UNIX系統中虛數部分為零,則arcsin和arccos會產生錯誤的複數結果。這已得到修復。
  • math.isPrime報告錯誤,編號為2.已更正。
  • 與手冊相反,abs在失敗時返回2。現在它返回-1記錄。
  • 已刪除位包。
  • 添加了新的C API函數agn_isioforcerror,它檢查_EnvIoForceError是否已設置為非空值。
  • 新的C API函數agn_setbitwise確定運算符band,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

類似的軟件

runawk
runawk

19 Feb 15

X11-Basic
X11-Basic

20 Feb 15

Excelsior JET
Excelsior JET

17 Feb 15

SWIG
SWIG

7 Mar 16

意見 Agena

評論沒有發現
添加評論
打開圖片!