Nim lang版本 1.2.0 發佈

官方開發團隊宣佈:我們非常自豪地宣佈Nim版本1.2,經過六個月的持續開發!

此版本包含大約 600 個新提交,這些提交尚未移植到我們的 1.0.x 版本。與 1.0 相比,有幾個新功能和標準庫添加。我們試圖將更改降至最低,但如果不進行這些必要的更改,某些錯誤修復是不可能的,我們認為我們的用戶將從中受益。

我們建議所有用戶升級和使用版本 1.2。


Nim lang版本 1.2.0 發佈

使用多個 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>


分享到:


相關文章: