Merge branch 'master' of git@github.com:Araq/Nimrod

This commit is contained in:
Araq
2011-09-24 00:46:54 +02:00
9 changed files with 117 additions and 44 deletions

View File

@@ -228,7 +228,7 @@ proc cmp(x, y: string): int = return cmpStrings(x, y)
proc eqStrings(a, b: string): bool {.noStackFrame, compilerProc.} =
asm """
if (`a == `b`) return true;
if (`a` == `b`) return true;
if ((!`a`) || (!`b`)) return false;
var alen = `a`.length;
if (alen != `b`.length) return false;

23
lib/system/reprjs.nim Normal file
View File

@@ -0,0 +1,23 @@
#
#
# Nimrod's Runtime Library
# (c) Copyright 2011 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
proc reprInt(x: int64): string {.compilerproc.} = return $x
proc reprEnum(e: int, typ: PNimType): string {.compilerRtl.} =
if ntfEnumHole notin typ.flags:
if e <% typ.node.len:
return $typ.node.sons[e].name
else:
# ugh we need a slow linear search:
var n = typ.node
var s = n.sons
for i in 0 .. n.len-1:
if s[i].offset == e: return $s[i].name
result = $e & " (invalid data!)"