官方開發團隊宣佈:我們非常自豪地宣佈Nim版本1.2,經過六個月的持續開發!
此版本包含大約 600 個新提交,這些提交尚未移植到我們的 1.0.x 版本。與 1.0 相比,有幾個新功能和標準庫添加。我們試圖將更改降至最低,但如果不進行這些必要的更改,某些錯誤修復是不可能的,我們認為我們的用戶將從中受益。
我們建議所有用戶升級和使用版本 1.2。
使用多個 Nim 版本
useVersion
如果要升級到版本 v1.2,但依賴於 v1.0 行為,則存在命令行開關--useVersion,您可以使用最新的 Nim 來模擬以前的版本。
例如,Nim v1.2 對有關 proc 類型的類型轉換更加嚴格。如果這打破了你的代碼,通過--useVersion:1.0,這將模擬舊的行為。
這不限於上述示例。如果您依賴於一些邊緣案例和/或錯誤行為,現在已修復,請嘗試 -- --useVersion:1.0返回您預期看到的結果。如果這不起作用,並且您需要舊行為,請在bug 跟蹤器中打開問題,我們將嘗試使其在將來的錯誤修復版本 (1.2.x) 中工作。
when declared
如果您是庫作者,並且希望庫同時可用於 v1.0 和 v1.2 用戶,但您依賴於 v1.2 中引入的 v1.2 中引入的一些新功能,這些功能在 v1.0 版本中不可用,則可以在when declared使用。
例如sequtils模塊現在具有unzipproc。您可以像這樣編寫代碼:
import sequtils
when not declared(unzip):
proc unzip*[S, T](s: openArray[(S, T)]): (seq[S], seq[T]) =
result[0] = newSeq[S](s.len)
result[1] = newSeq[T](s.len)
for i in 0..<s.len>
result[0][i] = s[i][0]
result[1][i] = s[i][1]
let a = @[('a', 1), ('b', 2), ('c', 3)]
let b = unzip(a) # version 1.0 will use the proc declared above
# version 1.2 will use sequtils' proc
assert b == (@['a', 'b', 'c'], @[1, 2, 3])
安裝 Nim 1.2
新用戶
檢查操作系統的軟件包管理器是否是版本 1.2 或根據此處所述進行安裝.
現有用戶
如果您已經安裝了使用choosenim的早期版本,則獲取 Nim 1.2 非常簡單::
$ choosenim update stable
v1.2 的貢獻者
我們的貢獻者是驚人的,這裡有太多的人要列出來。非常感謝大家,沒有你們,我們不可能發佈這個版本!
新功能
GC: ARC
--gc:arc是我們此版本的主要新功能!
與其討論大量細節並劫持此發佈文章,不如將您指向FOSDEM 的此視頻,其中 Araq 解釋了 ARC 背後的詳細信息,並展示了一些顯示其益處的基準。
將來可能會發表一篇關於 ARC 的更詳細的文章。
新的 宏 語法糖
版本 1.2.0 引入了幾個新的宏,它們應有助於編寫一些常見任務。
在接下來的幾個部分中,我們將展示它們及其用法。所有的例子都暗示import sugar.
collect
collect是一個宏,它有助於編寫seq/set/表理解。它取代了lc列表理解),它比lc更慣用,更強大。使用collect沒有開銷,例如,您可以使用newSeqOfCap
所有集合的語法都相似,區別在於init函數和最後一個表達式。
例子:
let numbers = collect(newSeq): # or: collect(newSeqOfCap(10))
for i in 1..10:
i
assert numbers == @[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
import tables
let oddSquares = collect(initTable):
for i in numbers:
if i mod 2 == 1:
{i: i * i}
assert len(oddSquares) == 5
assert oddSquares[7] == 49
import sets
let oddOrNegative = collect(initHashSet):
for i in numbers:
{if i mod 2 == 1: i else: -i}
assert 5 in oddOrNegative
assert 2 notin oddOrNegative
assert -2 in oddOrNegative
Dup
dup是一個宏,它將就地函數轉換為在不修改其輸入的情況下返回結果的宏。其理念是,Nim 的未來版本將僅提供函數的就地版本(即不再sort和sorted、rotateLeft和rotatedLeft等),這些版本可以轉換為通過dup返回副本的函數.
此宏還允許(否則就地)進行功能鏈接。
例子:
proc makePalindrome(s: var string) =
for i in countdown(s.len-2, 0):
s.add(s[i])
var a = "abc"
makePalindrome(a)
assert a == "abcba"
var b = "xyz"
var c = b.dup(makePalindrome)
assert b == "xyz"
assert c == "xyzyx"
下劃線 (_) 可用於表示要傳遞的參數的位置:
import algorithm
# b = "xyz"
var d = dup b:
makePalindrome # xyzyx
sort(_, SortOrder.Descending) # zyyxx
makePalindrome # zyyxxxyyz
assert d == "zyyxxxyyz"
Capture
capture是一個宏,在循環中創建閉包時,它很有用,以便按其當前迭代值捕獲某些局部循環變量。您可能希望將其用於事件處理和{int: callBack}查找表。
例子:
import strformat, sugar
var myClosure: proc(): string
for i in 5..7:
for j in 7..9:
if i * j == 42:
capture i, j:
myClosure = proc (): string = fmt"{i} * {j} = 42"
let a = myClosure()
assert a == "6 * 7 = 42"
更改日誌
標準庫添加和更改
添加了使用指定字符作為分隔符而不是"*"和"*"的重載strformat.fmt宏。
在tables.nim添加了新的 procs:OrderedTable.popTable.pop CountTable.del CountTable.pop.
添加了strtabs.clear重載,可重用現有模式。
為操作系統特定的"打開"命令添加了browsers.osOpen別名。
添加了sugar.dup用於將就地算法(如sort和shuffle)轉換為處理數據副本的操作,並返回突變的副本,就像現有sorted副本一樣。
添加sugar.collect,理解seq/set/表集合。
添加了sugar.capture用於在創建閉包時捕獲一些局部循環變量。這是closureScope的增強版本.
添加了typetraits.tupleLen以獲取元組/類型元組的元素數,以及typetraits.get
添加了typetraits.genericParams以從通用實例化返回一組通用參數。
options現在對待proc與其他指針類型一樣,這意味著nil proc 變量轉換為None.
添加了os.normalizePathEnd以進行其他路徑清理。
增加了times.fromUnixFloat,toUnixFloatfromUnix到toUnixFloat的次秒分辨率版本.
添加了用於現場訪問和索引鏈的wrapnils模塊,其中 LHS 可以是 nil。這通過減少對中間可能為零值的 if-else 分支的需求來簡化代碼。例如echo ?.n.typ.kind.
添加了minIndex和unzip到sequtils模塊。 maxIndex
添加了os.isRelativeTo判斷路徑是否相對於另一個路徑。
添加了resetOutputFormatters到unittest.
向macros模塊添加了expectIdent
添加os.isValidFilename,如果filename參數對跨平臺使用有效,則返回true
增加times.isLeapDay
base64添加了 URL 安全基64,實現 RFC-4648 第 7 節。
添加了一個新模塊std / compilesettings,用於查詢編譯器的各種配置設置。
添加了net.getPeerCertificates和asyncnet.getPeerCertificates,用於檢索我們通過 SSL 包裝SocketAsyncSocket連接到的對等體的已驗證證書鏈.
添加了browsers.openDefaultBrowser,實現 IETF RFC-6694 第 3 節。
添加了jsconsole.trace, jsconsole.table jsconsole.exception目標.
為值添加了distinctBase重載:assert 12.MyInt.distinctBase == 12
添加了新的模塊std/stackframes,特別是setFrameMsg,它啟用堆棧幀的自定義運行時註釋,請參閱#13351有關示例。通過--stackTraceMsgs:on/off.
添加了sequtils.countIt允許使用謂詞計數項目。
添加了with隨處訪問的宏,無需關注 API 返回第一個參數以啟用"鏈接",而是使用專為它設計的with例如:
type
Foo = object
col, pos: string
proc setColor(f: var Foo; r, g, b: int) = f.col = $(r, g, b)
proc setPosition(f: var Foo; x, y: float) = f.pos = $(x, y)
var f: Foo
with(f, setColor(2, 3, 4), setPosition(0.0, 1.0))
echo f
macros.newLit現在適用於 ref 對象類型。
macro pragmas現在可用於類型部分。
5 新的雜注被添加到 Nim,以使即將推出的工具更方便使用。Nim 編譯器檢查這些雜注的語法,但否則忽略它們。雜注是requires,ensures,assume,assert,invariant.
system.writeFile已過載,以支持openarray[byte].
asyncdispatch.drain現在正確地考慮selector.hasPendingOperations
sequtils.zip現在返回一系列匿名的 tups,即這些 tups 現在沒有名為"a"和"b"的字段。
distinctBase已經從sugar移動到typetraits,現在它被實現為編譯器類型特性,而不是宏。distinctBase基現在被棄用了。
CountTable.mget已從tables.nim它不起作用,它是一個疏忽,包括在v1.0。
tables.merge(CountTable, CountTable): CountTable已被刪除。它與同一 proc 的現有原位版本(tables.merge(var CountTable, CountTable)配合不良好。這是一個疏忽,包括在v1.0。
asyncdispatch.drain現在始終使用傳遞的超時值,用於事件循環的所有迭代,而不僅僅是第一次迭代。這與其他異步派送 API 更一致,並允許asyncdispatch.drain更高效。
base64.encode和base64.decode速度加快約50%。
htmlgen添加了MathML支持 (ISO 40314)。
macros.eqIdent現在對於導出標記和回勾引號是不變的。
htmlgen.html允許在標記和通用有效屬性中使用lang
macros.basename和basename=得到了PragmaExpr的支持,因此正確處理了像MyEnum {.pure.}這樣的表達式。
httpclient.maxredirects從int變為Natural,因為負值沒有任何作用。
httpclient.newHttpClient和httpclient.newAsyncHttpClient添加了headers參數來設置初始 HTTP 標頭,而不是硬編碼的空newHttpHeader().
parseutils.parseUntil現在具有不同的行為,如果until參數為空。這是 strscans 模塊的直觀行為所必需的(請參閱 bug #13605)。
precision = 0的strutils.formatFloat在所有後端具有相同的行為,並且它與 Python 的行為兼容,例如formatFloat(3.14159, precision = 0)現在是3而不是3..
times.parse現在只使用輸入來計算其結果,now:parse("2020", "YYYY", utc()) 2020-01-01T00:00:00Z而不是2020-03-02T00:00:00Z如果運行在 03-02;每月29日、30日、31日使用時,它不再崩潰。
httpcore.==(string, HttpCode)現在由於缺乏實際用法而被棄用。$運算符可用於獲取HttpCode的字符串形式以進行比較。
std/oswalkdir是越野車,它現在被棄用和重用std/os procs。
net.newContext現在在 Linux 和 OSX 上執行 SSL 證書檢查。定義nimDisableCertificateValidation以全局禁用它。
os.walkDir和os.walkDirRec現在有新的標誌,checkDir默認:錯誤)。如果設置為 true,則如果輸入 dir 無效而不是 noop(這是默認行為,就像此更改之前一樣os.walkDirRec僅在頂級 dir 無效時引發,但忽略子 dir 的錯誤,否則無法恢復迭代。
selector.unregister FD變體ioselector_epoll現在正確處理Event.User選擇事件類型。 ioselector_select
當/是第一個參數正常工作時joinPath路徑規範化:assert "/" / "/a" == "/a"修復邊緣大小寫:assert "" / "" == "".
xmltree現在一致地將縮進添加到任意數量的子節點的子節點上。
os.splitPath()行為與os.splitFile()同步,以返回"/"作為/root_sub_dir的 dir 組件,而不是空字符串。
已棄用的lc宏已從sugar中去除。它現在替換為更強大的collect宏。
os.relativePath("foo", "foo")現在是"."而不是""""無效路徑,不應與"混為一起"."使用-d:nimOldRelativePathBehavior來還原舊行為。
os.joinPath(a, b)現在以b或a if b ="")中來表示尾隨斜槓"。
base64.encode不再支持lineLen和newLine。改用base64.encodeMime
語言更改
align雜注現在可用於變量和對象字段,類似於 C/C++ 中的alignas聲明修改器。
=sink類型綁定運算符現在可選。編譯器現在可以使用=destroy和copyMem的組合來有效地移動對象。
已修復未簽名整數運算符,以允許升級第一個操作數。
在運行時,對未簽名整數的轉換不受檢查,模仿早期的 Nim 版本。文件得到改進,以確認這一特殊情況。有關詳細信息,請參閱https://github.com/nim-lang/RFCs/issues/175。
lvalue 引用的新語法var b {.byaddr.} = expr通過import std/decls啟用的 expr.
var a {.foo.}: MyType = expr現在降低為foo(a, MyType, expr)用於非內置雜注,啟用 lvalue 引用等內容(參見decls.byaddr).
編譯器更改
生成的 JS 代碼使用空格,而不是混合空格和選項卡。
Nim 編譯器現在支持--asm命令選項,以便更輕鬆地檢查生成的彙編器代碼。
Nim 編譯器現在支持名為.localPassc的新雜注,用於將特定的編譯器選項傳遞給從當前 Nim 模塊生成的 C(*) 文件的 C(*) 後端。
編譯器現在推斷"接收器參數"。要禁用特定例程,請用.nosinks進行給下給它。要禁用它的代碼部分,請使用 [ {.push sinkInference: off.}...{.pop.}.
編譯器現在支持一個新的開關--panics:on,將運行時錯誤(如IndexError或OverflowError轉換為無法通過Nim try語句捕獲的致命錯誤。--panics:on可以顯著提高程序的運行時效率和代碼大小。
編譯器現在警告直接從system.Exception,因為這是非常糟糕的風格。您應該從DefectValueError、IOError、OSError 或從從CatchableError繼承且不能與缺陷混淆的其他特定異常類型繼承ValueErrorIOErrorOSError.
對Nim效應系統的錯誤報告進行了改進。
const隱式轉換現在運行正常,這意味著像const SOMECONST = 0.int; procThatTakesInt32(SOMECONST)現在將是非法的。只需改為編寫const SOMECONST = 0
{.dynlib.}在 POSIX 和 macOS 上創建共享對象時,現在需要導出符號,這使得它與 Windows 上的行為一致。
編譯器現在對有關 proc 類型的類型轉換更加嚴格:類型轉換不能用於隱藏.raise效果或副作用,而是必須使用cast。使用標誌--useVersion:1.0模擬舊行為。
Nim 編譯器現在實現了一種基於 GCC __builtin_sadd_overflow函數系列檢測溢出的快速方法。(Clang 也支持這些)。GCC 的某些版本缺乏此功能,不幸的是,我們無法可靠地檢測到這種情況。因此,如果您收到編譯錯誤,如"未定義引用__builtin_saddll_overflow編譯程序與-d:nimEmulateOverflowChecks.
工具更改
Nimitit 不再接受負縮進參數,因為它正在破壞文件。
錯誤修復
固定"nimgrep --nocolor在posix上被忽略;應該是--nimgrep --color=[auto]|true|false"(#7591)
修復了"const 數組上的運行時索引(轉換後的 obj)會導致 C 編譯器錯誤"(#10514)
修復了"帶 vcc 的 windows x86 編譯錯誤""asmNoStackFrame"(#12298)
修復了 [TODO] 迴歸:錯誤:鎖需要 [線程:打開選項](#12330)
修復了"將 @cc 選項添加到 [幫助]或 [完全幫助輸出"(#12010)
修復了"系統中的可疑csize定義system.nim)
修復的"os.getAppFilename()在 OpenBSD 上返回不正確的結果"(#12389)
修復了"哈希集[uint64] 慢插入,具體取決於值"(#11764)
修復了"編譯'經典調用語法'與"方法調用語法"之間的差異。(#12453)
修復了"c-d:nodejs > SIGSEGV:非法存儲訪問"(#12502)
修復了"由於"懸空引用"在 +新運行時關閉迭代器崩潰"(#12443)
修復了"否=destroy關閉環境的元素,但用於最新的 devel _gc:析構函數"(#12577)
修復了"支柱:格式大浮()在JS模式下給出不同的結果"(#8242)
修復了"迴歸(devel):新的csize_t定義沒有一致使用,也沒有經過徹底測試..."(#12597)
修復了"表.take()僅針對Table定義,未為其他表容器定義"(#12519)
修復了pthread_key_t上的pthread_key_t錯誤"(#12135)
修復了"newruntime:ct 處的簡單 seq 彈出導致編譯錯誤"(#12644)
修復了"[Windows] 完成.exe C:\\\\users_lt;USERNAME>.nimble\\bin 不在您的 PATH 環境變量中。(#12319)
修復了"錯誤與strformat + 異步調度 + const"(#12612)
固定"多部分數據需要 $"(#11863)
修復了"使用 _styleCheck:錯誤"的"尼姆斯特利布風格問題"(#12687)
修復了"新$nimbleDir路徑替換生成意外搜索路徑"(#12767)
固定"迴歸:內聯蛋白現在得到多輪析構劑注射"(#12766)
修復了"新運行時:編譯器生成有缺陷的代碼"(#12669)
修復了"由於'os.相對路徑'中斷更改而中斷的窗口模塊路徑處理"(#12734)
修復了"對於未正確呈現的循環元組語法"(#12740)
修復了"嘗試使用type.name[0]崩潰"(#12804)
修復了"在原子中,枚舉應視為微不足道的類型"(#12812)
修復了"儘可能為變量生成靜態/固定初始化"(#12216)
修復了"分配分壓器字段會導致內部斷言與 _gc:析構函數"(#12821)
修復了"尼姆建議use命令不返回符號的所有實例"(#12832)
修復"*"是 _gc:析構函數的問題"(#12820)
修復了"所有路徑中的 CODEgen ICE"(#12827)
修復了"具有 ref 和析構函數類型的 seq_對象] 在舊運行時不起作用"(#12882)
修復了"由於實例化太晚、舊運行時而未調用析構函數"(#12883)
修復了"收集宏不能正確處理/大小寫"(#12874)
修復了"允許在魔術器中鍵入/未鍵入的參數(即使不是在 stdlib 中)"(#12911)
修復了"ARC/新運行時內存損壞"(#12899)
修復了"tasyncclosestall.nim 仍在片狀測試:地址已在使用"(#12919)
修復了"newruntime 和計算的 goto:循環中的變量在生成的代碼中未初始化"(#12785)
修復了"osx: dsymutil 需要調用調試生成來保持調試信息"(#12735)
修復了"帶 ref 對象的代碼代碼 ICE,gc:析構函數"(#12826)
固定"可變迭代器不能生成命名元數"(#12945)
修復了"parsecfg 存儲"\\r\\n"換行符,就像"\\n"(#12970)
修復了"db_postgres.getValue 在未找到行時發出警告"(#12973)
修復了"ARC:用 seq 解包組因 segfault"(#12989)
修復了"ARC/newruntime:支柱.在 seq 上僅包含空字符串會導致 segfault"(#12965)
修復了"迴歸 (1.0.4): {.push exportc.}錯誤地影響通用實例化,導致代碼數錯誤"(#12985)
修復了"cdt,崩潰與 _gc:arc,工作正常與默認 gc"(#12978)
修復了"ARC:在超出的 seq 訪問上引發索引錯誤,而是 SIGSEGV"(#12961)
修復了"ARC/異步:在嘗試塊中返回會導致錯誤的代碼數"(#12956)
修復了"asm 關鍵字在 _cc:tcc"(#12988時生成錯誤的輸出 C 代碼)
修復了"未調用析構器"(#13026)
修復了"ARC/newruntime:將繼承的 var ref 對象添加到具有基類型導致 segfault的 seq"(#12964)
修復了"使用 JS 編譯器目標進行樣式檢查錯誤"(#13032)
修復了"迴歸(1.0.4):未聲明標識符:'讀取線';加上另一個迴歸和錯誤"(#13013)
修復了"迴歸(1.04)invalid pragma: since使用nim js"(#12996)
修復了"在噴油破壞器中沉入 MemMove 優化"(#13002)
修復了"_gc:arc:catch 與異常子類不起作用catch"(#13072)
修復了"nim c _gc:arc =異常:[setjmp,goto] 處理錯誤提升;nim cpp --gc:arc是確定"(#13070)
修復了"類型特徵特徵請求 - 獲取泛型類型的子類型"(#6454)
修復了"將值設置為 0 後鍵()和 len() 之間的 CountTable 不一致"(#12813)
修復了"{.對齊"。如果存在泛型字段,則不應用雜注#13122)
修復了"ARC,終結器,允許多次重新綁定同一功能"(#13112)
修復了"nim doc處理export localSymbol不正確"(#13100)
固定"_gc:arc SIGSEGV(雙免費?)"(#13119)
修復了"帶弧的編碼錯誤"(#13105)
修復了"語法中未定義的符號"(#10665)
固定[JS] 移動未定義"(#9674)
修復了[TODO] 路徑。/可以返回無效的絕對文件"(#13121)
修復了"迴歸(1.04)nim nim doc main.nim生成斷開的 html(無 css)"(#12998)
修復了"類型部分中的字符串上的錯誤支持CopyMem"(#13095)
修復了"弧形,終結器,內存不足"(#13157)
固定"--genscript混亂尼姆卡和未來的尼姆調用"(#13144)
修復了"_gc:arc 與 +異常:goto 為"nim c"生成無效 c 代碼"(#13186)
修復了[迴歸] 重複成員_i1代碼代號 bug"(#13195)
修復了"RTree 調查與 valgrind 為 @gc:arc"(#13110)
修復了"相對路徑","foo",""。返回錯誤的路徑"(#13211)
修復了"異步客戶端 - 歡迎.msg 的問題"(#4684)
修復了"不明確的錯誤消息,最低優先級"(#13256)
修復了"通道消息已損壞"(#13219)
修復了"帶有導出和案例對象的代碼錯誤"(#13281)
修復了[bugfix] 修復#11590:c 編譯器警告被忽略,給出未定義的行為"(#11591)
修復了"[CI] 三通片狀測試"(#13132)
修復了"使用 -d:mingw 的交叉編譯無法在 OSX 下找到編譯器"(#10717)
修復了nim doc --project與導入下的主要項目文件或重複的名稱"(#13150)
固定"迴歸:是命名圖普爾(我的通用圖普爾[int])是虛假的,應該為真"(#13349)
修復了"_gc:arc 代碼代錯誤複製綁定到 C 結構上缺少的 C 結構字段的對象"(#13269)
修復了"寫入需要轉換為字符串"(#13182)
修復了"對固定文檔的一些註釋"(#13352)
修復了"模板生成的check單位測試不顯示實際值"(#6736)
修復了"使用大小寫表達式的隱式返回失敗,帶"var"返回。(#3339)
修復了"弧上帶閉合的塞格斷層"(#13314)
修復了"[宏] 崩潰的格式錯誤的案例語句與多個其他"(#13255)
修復"迴歸:echo 'discard' | nim c -r -生成文件"-";-應特殊對待"(#13374)
修復了"在 OSX 上,調試 (w gdb 或 lldb) 一個 nim 程序崩潰在第一次調用execCmdEx(#9634)
修復了"獲取類型脫從器中的內部錯誤"(#13378)
修復了"gc:arc 模式中斷元組"(#13368)
修復了"對於某些 C/C++編譯器錯誤掛起的 Nim 編譯器"(#8648)
修復了"htmlgen 不支持data-*屬性"(#13444)
修復的"[gc:arc] setLen 將導致字符串不為 null 終止。(#13457)
固定"joinPath",""")"""""""/";應為""(#13455)
修復了窗口上的"[CI] 片狀測試:測試/osproc/texitcode.nim"(#13449)
修復了"在 NimVM 上浮動32 已損壞"(#13479)
固定--hints:off不工作(不覆蓋*/.config/nim.cfg)"(#8312)
固定"joinPath",""")"""""""/";應為""(#13455)
修復了"表.值已損壞"(#13496)
修復了"全局用戶配置可以覆蓋項目特定配置"(#9405)
修復了"非確定性宏和 id 一致性問題"(#12627)
修復了"嘗試表達式與預期分支的返回不起作用"(#13490)
固定"CI將在2月28日每4年休息一次:時間不能正確處理閏年"(#13543)
固定的"[次要] nimgrep --word不能與運算符配合使用(例如未命中1 +% 2(#13528)
修復了"asinfix 運算符可用,但其存在和優先級沒有記錄"(#13409)
修復了"JSON 取消整理丟棄 seq 的項目"(#13531)
修復了"os.joinPath 返回錯誤路徑時,頭結束''或'/'和尾部開始'.'。(#13579)
修復了"具有相同名稱的塊本地類型會導致錯誤代碼根(sighashes 迴歸)"(#5170)
修復了"元組代碼錯誤"(#12704)
修復了"newHttpHeader 不接受重複的標頭"(#13573)
修復了"迴歸:_增量:在最簡單的示例中失敗"(#13319)
修復了"sscan 無法獲取格式中最後一個元素的值"(#13605)
修復了 sparc64 上的"hashes_examples崩潰"(未對齊的訪問)(#12508)
修復了"gc:arc 錯誤與重複使用seq[T](#13596)
修復了"在投擲到監考體內時,使用 _gc:arc 斷開raise CatchableError"(#13599)
修復了"cpp _gc:arc =異常:goto 無法隨丟棄而升起"(#13436)
修復了 "終端未編譯 -d:使用 WinAnsi"(#13607)
修復了"分析"接收器點子 T" - 區域必須是對象類型"(#12757)
修復了"gc:arc = 線程:打開 = 關閉編譯錯誤"(#13519)
修復了[ARC] 分段故障"(#13240)
修復了每月 29、30 和 31 日的"時間.dateTime 越野車"(#13558)
修復了"在 VM 上行為不當"(#13310)
修復了"未找到路徑時文件應引發異常"(#12676)
修復了"如果即使在 _/.config/nims 中存在空配置.nims/[devel 迴歸]"(#13633)
修復了"nim 文檔生成大量誤報鎖定級別警告"(#13218)
修復了"數組通過複製到迭代器,導致崩潰、不必要的分配和減速"(#12747)
修復了"範圍類型始終使用簽名整數作為基本類型"(#13646)
修復了"生成 c 代碼無法使用最近的 devel 版本編譯"(#13645)
修復了"[迴歸] VM:錯誤:無法將 -1 轉換為 uint64"(#13661)
修復了"檢測到的"異常(異常)"(#13654)
修復了"gc:arc 內存洩漏"(#13659)
修復了"錯誤:無法將 -1 轉換為 uint(內聯)"(#13671)
修復了 "使用 _gc:arc 的格式"(#13622)
修復了"astToStr 在泛型內不起作用"(#13524)
修復了"oswalkdir.walkDirRec 不會返回文件夾"(#11458)
修復"echo 'echo 1' | nim c -r -默默地給出錯誤的結果(nimBetterRun 未更新為 stdin)"(#13412)
修復了"gc:arc 意外破壞全局變量"。(#13691)
修復了"[小] sigmatch 錯誤應排序,用於可重現錯誤"(#13538)
修復了"將小體積轉換為長龍時的異常"(#13698)
修復了"ARC:變量在導致崩潰的線程生成上未複製"(#13708)
修復了"非法獨特的 seq 導致編譯器崩潰"(#13720)
修復了"循環 seq 定義崩潰編譯器"(#13715)
修復了"使用 openArray 參數的迭代器使參數多次計算"(#13417)
修復了"網絡/異步網:無法訪問對等體的證書鏈"(#13299)
修復了弧優化後"SIGSEGV:非法存儲訪問"錯誤(#13325#13709)
修復了"基本回歸"(#13722)
修復了"迴歸 (?)帶 _gc:弧和 repr"(#13731)
修復了"使用新變量雜注時的內部編譯器錯誤"(#13737)
修復了"在 cpp 編譯階段生成 vcc 2019 警告"(#13744)
修復了"編譯器"不檢測"錯誤代碼中的類型遞歸錯誤,保持凍結"(#13763)
修復了[輕微] 迴歸Foo[0.0] is Foo[-0.0]現在為 false"(#13730)
修復了nim doc- 第一行上僅空白導致 segfault"(#13631)
修復了"哈希集迴歸"(#13794)
修復了os.getApplFreebsd可能在長路徑的情況下返回不正確的路徑"(#13806)
修復了"未繼承析構器"(#13810)
修復了"io.readlines 斷言錯誤"(#13829)
修復了"異常:在異常處理期間意外重置變量"(#13782)
"/<s.len>閱讀更多 鋒哥愛學習 的文章