aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEduardo Julian2016-10-26 02:15:44 -0400
committerEduardo Julian2016-10-26 02:15:44 -0400
commitf740912996202aee61ff89ccaa9238cfb277e031 (patch)
treef6deb2d5b6190e25d2eb37172389dc53ff55323c /src
parent531f6cb72aa17eea2f8add050f21ed88e2bb1b32 (diff)
- Now tagging some constant values with the ^:const meta-data to speed-up usage.
Diffstat (limited to 'src')
-rw-r--r--src/lux/base.clj30
-rw-r--r--src/lux/compiler/base.clj38
2 files changed, 34 insertions, 34 deletions
diff --git a/src/lux/base.clj b/src/lux/base.clj
index f3abc6c1d..da5ef48f8 100644
--- a/src/lux/base.clj
+++ b/src/lux/base.clj
@@ -228,21 +228,21 @@
("DictM" 1))
;; [Exports]
-(def name-field "_name")
-(def hash-field "_hash")
-(def type-field "_type")
-(def anns-field "_anns")
-(def value-field "_value")
-(def compiler-field "_compiler")
-(def imports-field "_imports")
-(def defs-field "_defs")
-(def eval-field "_eval")
-(def tags-field "_tags")
-(def module-class-name "_")
-(def +name-separator+ ";")
-
-(def ^String compiler-name "Lux/JVM")
-(def ^String compiler-version "0.5.0")
+(def ^:const name-field "_name")
+(def ^:const hash-field "_hash")
+(def ^:const type-field "_type")
+(def ^:const anns-field "_anns")
+(def ^:const value-field "_value")
+(def ^:const compiler-field "_compiler")
+(def ^:const imports-field "_imports")
+(def ^:const defs-field "_defs")
+(def ^:const eval-field "_eval")
+(def ^:const tags-field "_tags")
+(def ^:const module-class-name "_")
+(def ^:const +name-separator+ ";")
+
+(def ^:const ^String compiler-name "Lux/JVM")
+(def ^:const ^String compiler-version "0.5.0")
;; Constructors
(def empty-cursor (T ["" -1 -1]))
diff --git a/src/lux/compiler/base.clj b/src/lux/compiler/base.clj
index 14a223eed..9eec050e9 100644
--- a/src/lux/compiler/base.clj
+++ b/src/lux/compiler/base.clj
@@ -26,31 +26,31 @@
(java.lang.reflect Field)))
;; [Constants]
-(def ^String output-dir "target/jvm")
-(def ^String output-package (str output-dir "/" "program.jar"))
-(def ^String function-class "lux/Function")
-(def ^String lux-utils-class "lux/LuxRT")
-(def ^String unit-tag-field "unit_tag")
+(def ^:const ^String output-dir "target/jvm")
+(def ^:const ^String output-package (str output-dir "/" "program.jar"))
+(def ^:const ^String function-class "lux/Function")
+(def ^:const ^String lux-utils-class "lux/LuxRT")
+(def ^:const ^String unit-tag-field "unit_tag")
;; Formats
-(def ^String local-prefix "l")
-(def ^String partial-prefix "p")
-(def ^String closure-prefix "c")
-(def ^String apply-method "apply")
+(def ^:const ^String local-prefix "l")
+(def ^:const ^String partial-prefix "p")
+(def ^:const ^String closure-prefix "c")
+(def ^:const ^String apply-method "apply")
(defn ^String apply-signature [n]
(str "(" (apply str (repeat n "Ljava/lang/Object;")) ")Ljava/lang/Object;"))
-(def num-apply-variants 8)
-(def arity-field "_arity_")
-(def partials-field "_partials_")
+(def ^:const num-apply-variants 8)
+(def ^:const arity-field "_arity_")
+(def ^:const partials-field "_partials_")
-(def exported-separator " ")
-(def def-separator "\t")
-(def tag-separator " ")
-(def type-separator "\t")
-(def tag-group-separator "\n")
+(def ^:const exported-separator " ")
+(def ^:const def-separator "\t")
+(def ^:const tag-separator " ")
+(def ^:const type-separator "\t")
+(def ^:const tag-group-separator "\n")
-(def field-separator "\t")
-(def entry-separator "\n")
+(def ^:const field-separator "\t")
+(def ^:const entry-separator "\n")
;; [Utils]
(defn ^:private write-file [^String file-name ^bytes data]