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
|
|
@ -288,10 +288,6 @@ proc newSString*(s: string): SexpNode =
|
|||
## Creates a new `SString SexpNode`.
|
||||
result = SexpNode(kind: SString, str: s)
|
||||
|
||||
proc newSStringMove(s: string): SexpNode =
|
||||
result = SexpNode(kind: SString)
|
||||
shallowCopy(result.str, s)
|
||||
|
||||
proc newSInt*(n: BiggestInt): SexpNode =
|
||||
## Creates a new `SInt SexpNode`.
|
||||
result = SexpNode(kind: SInt, num: n)
|
||||
|
|
@ -315,10 +311,6 @@ proc newSList*(): SexpNode =
|
|||
proc newSSymbol*(s: string): SexpNode =
|
||||
result = SexpNode(kind: SSymbol, symbol: s)
|
||||
|
||||
proc newSSymbolMove(s: string): SexpNode =
|
||||
result = SexpNode(kind: SSymbol)
|
||||
shallowCopy(result.symbol, s)
|
||||
|
||||
proc getStr*(n: SexpNode, default: string = ""): string =
|
||||
## Retrieves the string value of a `SString SexpNode`.
|
||||
##
|
||||
|
|
@ -596,8 +588,7 @@ proc parseSexp(p: var SexpParser): SexpNode =
|
|||
case p.tok
|
||||
of tkString:
|
||||
# we capture 'p.a' here, so we need to give it a fresh buffer afterwards:
|
||||
result = newSStringMove(p.a)
|
||||
p.a = ""
|
||||
result = SexpNode(kind: SString, str: move p.a)
|
||||
discard getTok(p)
|
||||
of tkInt:
|
||||
result = newSInt(parseBiggestInt(p.a))
|
||||
|
|
@ -609,8 +600,7 @@ proc parseSexp(p: var SexpParser): SexpNode =
|
|||
result = newSNil()
|
||||
discard getTok(p)
|
||||
of tkSymbol:
|
||||
result = newSSymbolMove(p.a)
|
||||
p.a = ""
|
||||
result = SexpNode(kind: SSymbol, symbol: move p.a)
|
||||
discard getTok(p)
|
||||
of tkParensLe:
|
||||
result = newSList()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue