* remove shallowCopy for ARC/ORC * use move * fix * more fixes * typo * Update lib/system.nim * follow * add nodestroy * move * copy string * add a changelog entry Co-authored-by: xflywind <43030857+xflywind@users.noreply.github.com> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
23 lines
431 B
Nim
23 lines
431 B
Nim
|
|
# Program to detect bug #1796 reliably
|
|
|
|
type
|
|
Node = ref object
|
|
a, b: Node
|
|
leaf: string
|
|
|
|
proc createCycle(leaf: string): Node =
|
|
new result
|
|
result.a = result
|
|
when defined(gcArc) or defined(gcOrc):
|
|
result.leaf = leaf
|
|
else:
|
|
shallowCopy result.leaf, leaf
|
|
|
|
proc main =
|
|
for i in 0 .. 100_000:
|
|
var leaf = "this is the leaf. it allocates"
|
|
let x = createCycle(leaf)
|
|
let y = createCycle(leaf)
|
|
|
|
main()
|