尼姆羅德是一個開源的,免費的,靜態類型,命令式編程語言設計,支持過程,面向對象的,通用的,功能性的編程風格,同時保持高效和簡單。
尼姆羅德能夠抽象語法樹(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]:關作為命令行參數編譯器現在工作
- 在默認參數模板現在的工作。
- 修正了安全問題。
- 在字符串的情況下沒有其他部分產生錯誤的代碼。
- 在各種修復的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而不是 。
在system.copy
什麼在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執行可執行文件; UNIX下
- 在編譯器現在支持程序的指針數組常量
- 在ELIF在case語句現在工作
- 在使用開放數組參數的迭代器現在的工作
- 修正了在某些情況下$ myEnum沒有工作
./& QUOT;
什麼是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中
評論沒有發現