optimization: conditionally remove some debugging code
authorKeith Rollin <keith.rollin@gmail.com>
Sun, 29 Mar 2015 07:55:16 +0000 (00:55 -0700)
committerKeith Rollin <keith.rollin@gmail.com>
Wed, 8 Apr 2015 21:38:22 +0000 (14:38 -0700)
swift/step5_tco.swift
swift/step6_file.swift
swift/step7_quote.swift
swift/step8_macros.swift
swift/step9_try.swift
swift/stepA_mal.swift
swift/templates/step.swift

index 40c44e0..fc09885 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolDef              = MalSymbol(symbol: "def!")
 let kSymbolDo               = MalSymbol(symbol: "do")
@@ -121,13 +122,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 1319e56..54fb1ed 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")
 let kSymbolDef              = MalSymbol(symbol: "def!")
@@ -123,13 +124,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 4a9727f..1b9dc8c 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")
 let kSymbolConcat           = MalSymbol(symbol: "concat")
@@ -229,13 +230,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 416c7f1..80210f9 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")
 let kSymbolConcat           = MalSymbol(symbol: "concat")
@@ -255,13 +256,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 7d66788..89d9449 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")
 let kSymbolCatch            = MalSymbol(symbol: "catch*")
@@ -257,13 +258,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 183d607..9f22e42 100644 (file)
@@ -41,6 +41,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|"
+var indent = String()
 
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")
 let kSymbolCatch            = MalSymbol(symbol: "catch*")
@@ -257,13 +258,14 @@ func eval_ast(ast: MalVal, env: Environment) -> MalVal {
 // forms and function calls.
 //
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {
-    var x = EVAL_Counter()
+    let x = EVAL_Counter()
     if EVAL_level > EVAL_leval_max {
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")
     }
 
-    let indent = INDENT_TEMPLATE.substringToIndex(
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))
+    if DEBUG_EVAL {
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)
+    }
 
     while true {
         if is_error(ast) { return ast }
index 85f0190..06206f5 100644 (file)
@@ -102,6 +102,7 @@ let INDENT_TEMPLATE = "|----|----|----|----|----|----|----|----|" +
     "----|----|----|----|----|----|----|----|----|----|----|" +                                                                 // malstep(5,6,7,8,9,A)
     "----|----|----|----|----|----|----|----|----|----|----|" +                                                                 // malstep(5,6,7,8,9,A)
     "----|----|----|----|----|----|----|----|----|----|----|"                                                                   // malstep(5,6,7,8,9,A)
+var indent = String()                                                                                                           // malstep(5,6,7,8,9,A)
                                                                                                                                 // malstep(5,6,7,8,9,A)
 let kSymbolArgv             = MalSymbol(symbol: "*ARGV*")                                                                       // malstep(6,7,8,9,A)
 let kSymbolCatch            = MalSymbol(symbol: "catch*")                                                                       // malstep(9,A)
@@ -340,13 +341,14 @@ func EVAL(ast: MalVal) -> MalVal {
     return ast                                                                                                                  // malstep(1)
 }                                                                                                                               // malstep(1)
 func EVAL(var ast: MalVal, var env: Environment) -> MalVal {                                                                    // malstep(2,3,4,5,6,7,8,9,A)
-    var x = EVAL_Counter()                                                                                                      // malstep(5,6,7,8,9,A)
+    let x = EVAL_Counter()                                                                                                      // malstep(5,6,7,8,9,A)
     if EVAL_level > EVAL_leval_max {                                                                                            // malstep(5,6,7,8,9,A)
         return MalError(message: "Recursing too many levels (> \(EVAL_leval_max))")                                             // malstep(5,6,7,8,9,A)
     }                                                                                                                           // malstep(5,6,7,8,9,A)
                                                                                                                                 // malstep(5,6,7,8,9,A)
-    let indent = INDENT_TEMPLATE.substringToIndex(                                                                              // malstep(5,6,7,8,9,A)
-        advance(INDENT_TEMPLATE.startIndex, EVAL_level, INDENT_TEMPLATE.endIndex))                                              // malstep(5,6,7,8,9,A)
+    if DEBUG_EVAL {                                                                                                             // malstep(5,6,7,8,9,A)
+        indent = prefix(INDENT_TEMPLATE, EVAL_level)                                                                            // malstep(5,6,7,8,9,A)
+    }                                                                                                                           // malstep(5,6,7,8,9,A)
                                                                                                                                 // malstep(5,6,7,8,9,A)
     while true {                                                                                                                // malstep(5,6,7,8,9,A)
         if is_error(ast) { return ast }                                                                                         // malstep(2,3,4,5,6,7,8,9,A)