diff --git a/benchmarks/fib.nds b/benchmarks/fib.nds index 00696d7..13c21b0 100644 --- a/benchmarks/fib.nds +++ b/benchmarks/fib.nds @@ -3,4 +3,4 @@ var fib = proc(n) else fib(n-1) + fib(n-2) ; -print (fib(37)); \ No newline at end of file +print (fib(37)); diff --git a/src/ndspkg/types/stack.nim b/src/ndspkg/types/stack.nim index 903098d..2d78e12 100644 --- a/src/ndspkg/types/stack.nim +++ b/src/ndspkg/types/stack.nim @@ -42,7 +42,7 @@ template high*[T](stack: Stack[T]): int = template len*[T](stack: Stack[T]): int = stack.high() + 1 -proc push*[T](stack: var Stack[T], item: T) = +proc push*[T](stack: var Stack[T], item: T) {.inline.} = let len = stack.len() if len == stack.cap: stack.grow(len) @@ -53,20 +53,20 @@ proc push*[T](stack: var Stack[T], item: T) = template add*[T](stack: var Stack[T], item: T) = stack.push(item) -proc pop*[T](stack: var Stack[T]): T = +proc pop*[T](stack: var Stack[T]): T {.inline.} = when boundsChecks: if stack.top == nil or stack.top.pless(stack.start): raise newException(Defect, "Stacktop is nil or smaller than start.") result = stack.top[] stack.top = stack.top.psub(sizeof(T)) -proc peek*[T](stack: Stack[T]): var T = +proc peek*[T](stack: Stack[T]): var T {.inline.} = when boundsChecks: if stack.top == nil or stack.top.pless(stack.start): raise newException(Defect, "Stacktop is nil or smaller than start.") stack.top[] -proc settip*[T](stack: var Stack[T], newtip: T) = +proc settip*[T](stack: var Stack[T], newtip: T) {.inline.} = when boundsChecks: if stack.top == nil or stack.top.pless(stack.start): raise newException(Defect, "Stacktop is nil or smaller than start") @@ -87,7 +87,7 @@ proc deleteTopN*[T](stack: var Stack[T], n: Natural) = if stack.top.pless(stack.start): raise newException(Defect, "Stacktop sunk below the start after a deleteTopN.") -proc getIndex*[T](stack: Stack[T], index: int): var T = +proc getIndex*[T](stack: Stack[T], index: int): var T {.inline.} = when boundsChecks: if index < 0 or index >= stack.len(): raise newException(Defect, &"Attempt to getIndex with an index {index} which is out of bounds (len: {stack.len()}).") @@ -102,7 +102,7 @@ proc getIndexNeg*[T](stack: Stack[T], index: int): var T = template `[]`*[T](stack: Stack[T], index: int): var T = stack.getIndex(index) -proc setIndex*[T](stack: var Stack[T], index: int, item: T) = +proc setIndex*[T](stack: var Stack[T], index: int, item: T) {.inline.} = when boundsChecks: if index < 0 or index >= stack.len(): raise newException(Defect, "Attempt to getIndex with an index out of bounds.")