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:
parent
47b59e4d33
commit
7739e23420
81 changed files with 255 additions and 150 deletions
|
|
@ -32,6 +32,10 @@ doAssert objDeref.x == 42
|
|||
|
||||
# String tests
|
||||
obj.s = "lorem ipsum dolor sit amet"
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
prepareMutation(obj.s)
|
||||
|
||||
|
||||
var indexAddr = addr(obj.s[2])
|
||||
|
||||
doAssert indexAddr[] == 'r'
|
||||
|
|
@ -232,8 +236,17 @@ block: # bug #15939
|
|||
const bar = proc2(foo)
|
||||
doAssert bar == "foo"
|
||||
|
||||
template prepareMutationForOrc(x: string) =
|
||||
when defined(gcArc) or defined(gcOrc):
|
||||
when nimvm:
|
||||
discard
|
||||
else:
|
||||
prepareMutation(x)
|
||||
|
||||
proc test15939() = # bug #15939 (v2)
|
||||
template fn(a) =
|
||||
when typeof(a) is string:
|
||||
prepareMutationForOrc(a)
|
||||
let pa = a[0].addr
|
||||
doAssert pa != nil
|
||||
doAssert pa[] == 'a'
|
||||
|
|
@ -253,6 +266,7 @@ proc test15939() = # bug #15939 (v2)
|
|||
# mycstring[ind].addr
|
||||
template cstringTest =
|
||||
var a2 = "abc"
|
||||
prepareMutationForOrc(a2)
|
||||
var b2 = a2.cstring
|
||||
fn(b2)
|
||||
when nimvm: cstringTest()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue