Agena

软件截图:
Agena
软件详细信息:
版本: 2.11.5 更新
上传日期: 22 Jun 18
许可: 免费
人气: 23

Rating: nan/5 (Total Votes: 0)

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

类似的软件

STklos
STklos

15 Apr 15

byacc
byacc

3 Jun 15

GCC
GCC

16 Aug 18

意见 Agena

评论没有发现
添加评论
打开图片!