From f740912996202aee61ff89ccaa9238cfb277e031 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 26 Oct 2016 02:15:44 -0400 Subject: - Now tagging some constant values with the ^:const meta-data to speed-up usage. --- src/lux/base.clj | 30 +++++++++++++++--------------- src/lux/compiler/base.clj | 38 +++++++++++++++++++------------------- 2 files changed, 34 insertions(+), 34 deletions(-) (limited to 'src') 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] -- cgit v1.2.3