Nimrod

软件截图:
Nimrod
软件详细信息:
版本: 0.9.2
上传日期: 20 Feb 15
开发: Andreas Rumpf
许可: 免费
人气: 16

Rating: nan/5 (Total Votes: 0)

尼姆罗德是一个开源的,免费的,静态类型,命令式编程语言设计,支持过程,面向对象的,通用的,功能性的编程风格,同时保持高效和简单。
尼姆罗德能够抽象语法树(AST),为规范的一部分,从而使一个强大的宏系统,它可以被用来创建领域特定语言。一个特点继承了Lisp的。
该软件采用了原生代码生成,垃圾回收,零开销迭代器,用户defineable运营商,高级别的数据类型,编译时的评价,期待compability,GTK2的Windows API,POSIX API绑定,一个可插拔分析器系统,文档生成,和一个帕斯卡尼姆罗德转换工具。
尼姆罗德是便携式的,这意味着它可以在Linux,BSD,Mac的OS&NBSP运行; X 和Windows操作系统

什么在此版本中是新的

  • 在错误修正:
  • 在旧的GC永远不会正确采集周期。固定的,但它可能会导致性能下降。但是您可以停用与GC_disableMarkAndSweep周期收集并明确在适当的时间或根本没有运行。还有一个新的GC可以用--gc激活。markAndSweep不存在这个问题,但在一般的慢,也没有实时保证
  • 在投浮点类型现在这样的手册中规定的bitcast。这打破了错误地使用投地转换不同的浮点值的代码。
  • 在SCGI模块的性能得到了很大的提高,它将不再阻止许多并发请求。
  • 在全社会固定资产超过70 github上的问题,合并60拉的请求。
  • 在图书馆添置:
  • 有一个新的实验标记和扫GC可以更快(或更慢),而不是默认的GC。启用与--gc:markAndSweep
  • 添加system.onRaise支持空调系统。
  • 新增system.locals提供访问PROC的当地人。
  • 新增macros.quote的AST准引用。
  • 添加system.unsafeNew支持哈克可变长度的对象。
  • 在system.fields和system.fieldPairs支持的对象也;他们用只支持元组。
  • 添加system.CurrentSourcePath返回当前源文件的完整文件系统路径。
  • 在宏模块现在有很多有用的佣工建立抽象语法树。
  • 在影响向后兼容的变化:
  • 在共享是一个关键字了。
  • 在已过时sockets.recvLine和asyncio.recvLine,增加的readLine代替。
  • 在该压痕的方式在显著改变解析器处理。但是,这会影响很少(如果有的话)真实世界的代码
  • 在表达/陈述统一已经实施。同样,这只会影响边缘情况,并没有已知的现实世界中的代码。
  • 在改变了SCGI模块的异步接口。
  • 在WideStrings现在垃圾收集像其他字符串类型。
  • 在编译器的添加:
  • 在该DOC2命令不产生输出整个项目了。使用新的--project开关来启用这种行为。
  • 在编译器现在可以发出警告阴影局部变量。然而,这需要打开明确通过--warning [ShadowIdent]:在
  • 在编译器现在支持在推编译几乎每一个杂。
  • 在通用变频器已经实施。
  • 在增加了一个高度实验性noforward编译使一个特殊的编译模式在很大程度上省去了向前​​声明。
  • 在语言附加:
  • 在CASE表达式现在支持。
  • 在表的构造,现在模仿case语句的更紧密的语法。
  • 在尼姆罗德现在可以从它身上推断PROC的返回类型。
  • 添加一个mixin声明影响符号仿制药具有约束力的规则。
  • 在异常跟踪已添加和DOC2命令诠释可能出现的异常你。
  • 在用户自定义效果("标签")。跟踪已添加和DOC2命令诠释可能的标签为您
  • 在类型可以被标注有新的语法不无明确规定为零是不允许的。不过目前编译器执行没有先进的静态检查这一点;现在它只是用于文档目的。
  • 在一个出口语句已被添加到语言:它可以用于符号转发等客户端模块没有明确导入模块的依赖性
  • 在基于AST的窦房结已经实施。
  • 在泛型现在支持多方法。
  • 在对象可以通过对象构造表达式初始化。
  • 有一个新的语法结构(;)统一表达式和语句
  • 您现在可以从模块进口零使用,如果你要导入的模块,但要执行完全合格的进入每个符号的模块。

什么在0.8.14版本是新的

  • 在固定有关消息传递的一个严重的内存损坏
  • 修正了一个严重的错误有关的通用PROC不同的实例。
  • 修正了一个错误的EIO了异常的文件,文本文件,不以换行符结束的最后一个新引入的错误。
  • 修正c2nim,c2pas:在--out选项始终无法正常工作
  • 修正:通用特效转发从未使用过
  • 在一些较宏错误修正和编译时的评价。
  • 在该GC现在考虑到堆栈上的帐户内部指针可以通过积极的ç优化推出。
  • 在尼姆罗德的本地分配器/ GC现在可以在PowerPC上。
  • 在很多其他错误修正的:太多一一列举

什么在0.8.6版本新

  • 在错误修正:
  • 在该编译指示提示[X]:关闭并警告[X]:关闭现在的工作

  • 对于迭代器
  • 在方法调用语法再次工作(对于x在lines.split())。
  • 修正了removeDir一个错字的POSIX导致无限递归。
  • 在编译器现在会检查模块文件名是有效的标识符。
  • 在空图案为dynlib编译现在是可能的。
  • 在os.parseCmdLine返回错误结果尾随空白。
  • Inconsequent元组的用法(使用相同的元组使用和不使用的命名字段)不崩溃代码生成了。
  • 当一个进程内的动态lib目录中的加载失败提供更好的错误消息。
  • 在附加:
  • 新增system.contains开放数组。
  • 在该PEG模块现在支持搜索循环操作@。
  • 在语法/分析器:SAD | IND是任何类型的右括号之前允许的。这允许更灵活的源代码格式化。
  • 在编译器现在使用绑定范围内的符号查找绑定表。 (见manual.html#模板的详细信息。)
  • 在丢弃"""我长注释"""现在优化掉。
  • 在新--floatChecks:ON | OFF开关和用法进行浮点运算的更好的调试。 (见manual.html#预先定义的浮点类型的详细信息。)
  • 在本手册已有所改善。 (非常感谢菲利普LHOSTE!)
  • 在影响向后兼容的变化:
  • 在编译器不会跳过链接步骤了,即使没有文件发生了改变。
  • 在os.splitFile("名为.xyz")现在返回("","名为.xyz",""),而不是("","","名为.xyz" )。先从一个点的文件名的处理方式不同。
  • 在strutils.split(S:字符串,SEPS:设置[字符])永远不会再产生空字符串。此行为可能是更适合的空白分裂。
  • 在编译器现在--version命令行开关后停止。
  • 的枚举继承解析器删除了支持;枚举继承从未被记录而已。
  • 在system.E_base的味精字段,而不是现在的CString类型的字符串。这提高了内存的安全。

什么在0.8.2版本新

  • 在错误修正:
  • 在传递--hint [X]:关闭或--warning [X]:关作为命令行参数编译器现在工作
  • 在默认参数模板现在的工作。

  • 在system.copy
  • 修正了安全问题。
  • 在字符串的情况下没有其他部分产生错误的代码。
  • 在各种修复的osproc模块;现在适用于Windows。
  • 在附加:
  • 在实现多方法。
  • 在编译器现在检测可用的处理器的数量和并发执行的C编译器。这可以通过--parallel_build进行调整:NUMBER_OF_PROCESSORS命令行开关
  • 在PEG为基础的模式,通过钉模块匹配。
  • 添加system.definedInScope。
  • 添加system.accumulateResult。
  • 添加os.walkDirRec。
  • 新增osproc.countProcessors。
  • 添加osproc.execProcesses。
  • 在配置系统现在支持$ cc.options.linker。
  • 在合并EXPR和TYPEDESC在语法/分析器:这将允许匿名特效没有拉姆达
  • 在许多脚本有没有必要为GC:新--gc:没有命令行开关可用于排除从可执行的GC
  • 在影响向后compability变化:
  • 在拍摄对象判别的地址现在是无效的。
  • 在传递一个PROC到PROC VAR只允许标注procvar或调用约定!= nimcall特效。现在这不仅会导致一个警告,但是这会变成一个错误很快。
  • 系统&和system.add现在收到的序列参数openArray代替。
  • 在删除strutils.findSubStr和strutils.findChars。他们已经被弃用了3个版本。
  • 在Unicode的模块使用不同的类型TRune。
  • 在已过时strutils.toString:使用$来代替
  • 在已过时os.splitPath:使用os.splitPath返回一个元组,而不是
  • 在已过时os.extractDir:使用splitFile(路径).DIR而不是
  • 在已过时os.splitFilename:使用splitFile而不是
  • 在已过时os.extractFileExt:使用splitFile而不是
  • 在已过时os.extractFileTrunk:使用splitFile而不是
  • 在已过时os.appendFileExt:使用os.addFileExt而不是
  • 在已过时os.executeShellCommand:使用os.execShellCmd而不是
  • 在已过时os.iterOverEnvironment:使用os.envPairs而不是
  • 在弃用parseopt.init:使用parseopt.initOptParser而不是
  • 在已过时parseopt.getRestOfCommandLine:使用parseopt.cmdLineRest而不是
  • 在已过时os.pcDirectory:使用os.pcDir而不是
  • 在已过时os.pcLinkToDirectory:使用os.pcLinkToDir而不是
  • 在已过时osproc.executeProcess:使用osproc.execProcess而不是
  • 在已过时osproc.executeCommand:使用osproc.execCmd而不是

什么在0.8.0版本新

  • 在错误修正:
  • 修正了编译器不报告未使用过载符号的小虫子
  • 在固定的一个小错误就象征超载
  • 在固定一个错字:它是"暧昧",&不QUOT; ambigious" ; - )
  • 在编译器现在可以检测递归的包含文件
  • 在system.card应该重新工作
  • 在对集合[字符]和阵列[CHAR,T]的项目现在应该工作
  • 在附加:
  • 在实施泛型类型和两相符号查找在通用程序

  • 现在
  • 在模板参数可以是实际的类型
  • 在实施全身原始字符串字面量:IDENT" ABC"是的ident的快捷方式(R" ABC")
  • 在超载分辨率迭代器从特效分开;现在迭代器具有相同的名称+签名特效
  • 在符号查找在模板中可能会受到新的绑定关键字
  • 在编译器现在接受--no_main开关与其他编译语言更好的互操作性的链接
  • 在实施元组拆包的VAR部分
  • 在代码生成器发出默认:__assume(0);为Visual C ++(优化)
  • 在编译器现在检查,如果一个进程内有副作用;该声明有没有副作用的特效被拒绝,如果编译器无法验证此
  • 在格式操作strutils%现在支持$#自动参数计数
  • 实施strutils.join
  • 在影响向后compability变化:
  • 在两相符号查找在普通程序执行
  • 在绑定现在是一个保留字;例外的是没有保留的字了
  • 在抽象类型已被重命名为不同的类型;因此,不同的是现在是一个保留字;抽象是没有保留的字了
  • 在system.openFile推荐使用:使用system.open而不是
  • 在system.closeFile弃用:使用system.close而不是
  • 在strutils.replaceStr弃用:使用strutils.replace而不是
  • 在strutils.deleteStr弃用:使用strutils.delete而不是
  • 在strutils.splitSeq弃用:使用strutils.split而不是
  • 在strutils.splitLinesSeq弃用:使用strutils.splitLines而不是
  • 在strutils.parseFloat不接受附加的启动参数了
  • 文档:
  • 在本手册已有所改善

什么在0.7.6版本新

  • 在错误修正:
  • 在Windows Vista安装现在可以正常工作的开箱即用;请尝试!
  • 在固定的存&QUOT错误;递归模块"例如,从工作
  • 现在,有名和无名的参数在混合过程调用的工作原理
  • 在现在适当的支持与前缀0℃八进制数
  • 在枚举现在可以开始负值
  • 在parseInt函数,ParseBiggestInt现在抛出一个异常,如果字符串不解析数
  • 结束后,
  • 在编译器现在可以正确处理顶级语句
  • 在生成nimcache目录从来没有在一个斜线
  • 结束
  • 在createDir现在为UNIX下的全球目录(" / somepath /在这里和QUOT;)

  • ./& QUOT;
  • 在编译器现在的领先和QUOT执行可执行文件; UNIX下
  • 在编译器现在支持程序的指针数组常量
  • 在ELIF在case语句现在工作
  • 在使用开放数组参数的迭代器现在的工作
  • 修正了在某些情况下$ myEnum没有工作

什么是0.7.4版本,新的

  • 在Windows安装现在应该工作,如果该目录包含空间
  • 的文档生成,现在只呈现文档注释
  • ````是允许运营商如手册上说
  • 在罕见的情况下,该指数支票已被优化了,尽管它也有必要
  • 在一些bug修复的元组类型
  • 在增加了对UTF-8的``unicode``模块处理
  • 在加的HostOS和hostCPU魔法的``system``模块
  • 在system.echo现在可以接受多个参数
  • 在添加优化:在某些情况下,迭代器内联现在生产具有更好的代码
  • 添加整个程序死代码消除
  • 魔```现在运营商的工作枚举
  • 在``const``部分先进的编译时间评估完成
  • 在更名为``in_Operator``为``contains``:``in``是现在转换成``contains``
  • 模板
  • 在改变``strutils.quoteIfSpaceExists``来``strutils.quoteIfContainsWhite``
  • 在解析器现在更挑剔失踪逗号等,如果这会影响你的代码太多,尝试通过漂亮的打印机运行代码。
  • 的``macros`` API不再是一部分``system``模块,你现在必须导入``macros``模块
  • 来使用这个API
  • 在添加了教程

什么版本0.7.2的新

  • 在这是一个bug修复版本。这个最重要的修复是尼姆罗德现在工作再上AMD64(x86_64的)处理器。
  • 在没有新的功能已经实现。

什么是0.7.0版本,新的

  • 在各种bug修复,太多在这里一一列举
  • 在安装的基于UNIX的系统不依赖于任何的Python不再
  • 的``koch.py​​``脚本现在与老的Python版本(包括1.5.2)
  • 在改变整数运算和转换规则
  • 在加``GC_ref``和``GC_unref``特效
  • 在序列现在需要用``@``运营商构建。这导致较少的歧义。
  • 在编译器现在使用较少的内存和更快
  • 的GC现在快得多
  • 在新的绑定:zlib的,SDL,Xlib中,OpenGL的,ODBC,Lua的
  • 在生成的C代码的速度要快得多,优化与GCC
  • 在新图书馆:流,zipfiles
  • 在尼姆罗德编译器已经被移植到了FreeBSD:它应该在其他BSD的太
  • 工作

要求

  • 在Python中

类似的软件

Pharo
Pharo

20 Feb 15

ChaiScript
ChaiScript

20 Feb 15

Flexc++
Flexc++

14 Apr 15

意见 Nimrod

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