$(uint|uint64) now works with nimscript (#15644)
* $(uint|uint64) now works with nimscript * fixup
This commit is contained in:
parent
ed0f8a4973
commit
3cbe8d2c53
4 changed files with 23 additions and 22 deletions
|
|
@ -19,6 +19,26 @@ when defined(js):
|
||||||
## 64bit ints.
|
## 64bit ints.
|
||||||
# pending https://github.com/nim-lang/RFCs/issues/187
|
# pending https://github.com/nim-lang/RFCs/issues/187
|
||||||
$(cast[int](x))
|
$(cast[int](x))
|
||||||
|
else:
|
||||||
|
proc `$`*(x: uint64): string {.noSideEffect, raises: [].} =
|
||||||
|
## The stringify operator for an unsigned integer argument. Returns `x`
|
||||||
|
## converted to a decimal string.
|
||||||
|
if x == 0:
|
||||||
|
result = "0"
|
||||||
|
else:
|
||||||
|
result = newString(60)
|
||||||
|
var i = 0
|
||||||
|
var n = x
|
||||||
|
while n != 0:
|
||||||
|
let nn = n div 10'u64
|
||||||
|
result[i] = char(n - 10'u64 * nn + ord('0'))
|
||||||
|
inc i
|
||||||
|
n = nn
|
||||||
|
result.setLen i
|
||||||
|
|
||||||
|
let half = i div 2
|
||||||
|
# Reverse
|
||||||
|
for t in 0 .. half-1: swap(result[t], result[i-t-1])
|
||||||
|
|
||||||
proc `$`*(x: int64): string {.magic: "Int64ToStr", noSideEffect.}
|
proc `$`*(x: int64): string {.magic: "Int64ToStr", noSideEffect.}
|
||||||
## The stringify operator for an integer argument. Returns `x`
|
## The stringify operator for an integer argument. Returns `x`
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,6 @@ proc goMalloc(size: uint): pointer {.importc: "go_malloc", dynlib: goLib.}
|
||||||
proc goSetFinalizer(obj: pointer, f: pointer) {.importc: "set_finalizer", codegenDecl:"$1 $2$3 __asm__ (\"main.Set_finalizer\");\n$1 $2$3", dynlib: goLib.}
|
proc goSetFinalizer(obj: pointer, f: pointer) {.importc: "set_finalizer", codegenDecl:"$1 $2$3 __asm__ (\"main.Set_finalizer\");\n$1 $2$3", dynlib: goLib.}
|
||||||
proc writebarrierptr(dest: PPointer, src: pointer) {.importc: "writebarrierptr", codegenDecl:"$1 $2$3 __asm__ (\"main.Atomic_store_pointer\");\n$1 $2$3", dynlib: goLib.}
|
proc writebarrierptr(dest: PPointer, src: pointer) {.importc: "writebarrierptr", codegenDecl:"$1 $2$3 __asm__ (\"main.Atomic_store_pointer\");\n$1 $2$3", dynlib: goLib.}
|
||||||
|
|
||||||
proc `$`*(x: uint64): string {.noSideEffect, raises: [].}
|
|
||||||
|
|
||||||
proc GC_getStatistics(): string =
|
proc GC_getStatistics(): string =
|
||||||
var mstats = goMemStats()
|
var mstats = goMemStats()
|
||||||
result = "[GC] total allocated memory: " & $(mstats.total_alloc) & "\n" &
|
result = "[GC] total allocated memory: " & $(mstats.total_alloc) & "\n" &
|
||||||
|
|
|
||||||
|
|
@ -283,26 +283,6 @@ proc nimCharToStr(x: char): string {.compilerRtl.} =
|
||||||
result = newString(1)
|
result = newString(1)
|
||||||
result[0] = x
|
result[0] = x
|
||||||
|
|
||||||
proc `$`*(x: uint64): string {.noSideEffect, raises: [].} =
|
|
||||||
## The stringify operator for an unsigned integer argument. Returns `x`
|
|
||||||
## converted to a decimal string.
|
|
||||||
if x == 0:
|
|
||||||
result = "0"
|
|
||||||
else:
|
|
||||||
result = newString(60)
|
|
||||||
var i = 0
|
|
||||||
var n = x
|
|
||||||
while n != 0:
|
|
||||||
let nn = n div 10'u64
|
|
||||||
result[i] = char(n - 10'u64 * nn + ord('0'))
|
|
||||||
inc i
|
|
||||||
n = nn
|
|
||||||
result.setLen i
|
|
||||||
|
|
||||||
let half = i div 2
|
|
||||||
# Reverse
|
|
||||||
for t in 0 .. half-1: swap(result[t], result[i-t-1])
|
|
||||||
|
|
||||||
when defined(gcDestructors):
|
when defined(gcDestructors):
|
||||||
proc GC_getStatistics*(): string =
|
proc GC_getStatistics*(): string =
|
||||||
result = "[GC] total memory: "
|
result = "[GC] total memory: "
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,9 @@ echo "Nimscript imports are successful."
|
||||||
|
|
||||||
block:
|
block:
|
||||||
doAssert "./foo//./bar/".normalizedPath == "foo/bar".unixToNativePath
|
doAssert "./foo//./bar/".normalizedPath == "foo/bar".unixToNativePath
|
||||||
|
block:
|
||||||
|
doAssert $3'u == "3"
|
||||||
|
doAssert $3'u64 == "3"
|
||||||
|
|
||||||
block: # #14142
|
block: # #14142
|
||||||
discard dirExists("/usr")
|
discard dirExists("/usr")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue