defaults to ORC (#19972)

* defaults to Orc

* bootstrap using refc

* use gc

* init orc defines

* unregister orc

* fix gc

* fix commands

* add prepareMutation for orc

* enable deepcopy for orc

* prepareMutation

* more fixes

* some cases

* bug #20081

* partial fixes

* partial fixes

* fixes command line

* more fixes

* build Nim with refc

* use gc

* more fixes

* rstore

* orc doesn't support threadpool

* more shallowCopy

* more fixes

* fixes unsafeNew

* workarounds

* small

* more fixes

* fixes some megatest

* tcodegenbugs1 refc

* fxies megatest

* build nimble with refc

* workaround tensordsl tests

* replace shallowCopy with move

* fixes action

* workaround

* add todo

* fixes important packages

* unpublic unregisterArcOrc

* fixes cpp

* enable windows

Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com>
This commit is contained in:
ringabout 2022-09-23 19:05:05 +08:00 • committed by GitHub
commit 7739e23420
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
81 changed files with 255 additions and 150 deletions

View file

@ -31,6 +31,8 @@ macro bindme6UseExpose*(): untyped =
genAst:
var tst = "sometext"
var ss = newStringStream("anothertext")
when defined(gcArc) or defined(gcOrc):
prepareMutation(tst)
writeData(ss, tst[0].addr, 2)
discard readData(ss, tst[0].addr, 2)
@ -40,6 +42,8 @@ macro bindme6UseExposeFalse*(): untyped =
genAstOpt({kDirtyTemplate}, newStringStream, writeData, readData):
var tst = "sometext"
var ss = newStringStream("anothertext")
when defined(gcArc) or defined(gcOrc):
prepareMutation(tst)
writeData(ss, tst[0].addr, 2)
discard readData(ss, tst[0].addr, 2)

View file

@ -1,3 +1,7 @@
discard """
matrix: "--mm:orc; --mm:refc"
"""
# xxx also test on js
import std/genasts

View file

@ -1,5 +1,5 @@
discard """
cmd: "nim $target --threads:on -d:ssl $options $file"
cmd: "nim $target --mm:refc -d:ssl $options $file"
disabled: "openbsd"
"""

View file

@ -1,4 +1,5 @@
discard """
matrix: "--mm:refc"
targets: "c cpp js"
"""
@ -49,7 +50,7 @@ for i in 0 .. 10000:
except:
discard
# memory diff should less than 4M
doAssert(abs(getOccupiedMem() - startMemory) < 4 * 1024 * 1024)
doAssert(abs(getOccupiedMem() - startMemory) < 4 * 1024 * 1024) # todo fixme doesn;t work for ORC
# test `$`

View file

@ -62,6 +62,7 @@ block:
block:
var x = "foobar"
prepareMutation(x)
var y = cast[cstring](addr x[0])
for c in y.mitems:
inc c
@ -75,6 +76,7 @@ block:
block:
var x = "foobar"
prepareMutation(x)
var y = cast[cstring](addr x[0])
for i, c in y.mpairs:
inc c, i

View file

@ -1,4 +1,5 @@
discard """
matrix: "--mm:refc"
output: '''
abc
def

View file

@ -1,4 +1,5 @@
discard """
matrix: "--mm:refc"
targets: "c cpp js"
"""

View file

@ -66,8 +66,7 @@ else:
#RFC-2781 "UTF-16, an encoding of ISO 10646"
var wc: WideCString
unsafeNew(wc, 1024 * 4 + 2)
var wc: WideCString = newWideCString(1024 * 2)
#U+0000 to U+D7FF
#skip the U+0000