aboutsummaryrefslogtreecommitdiff
path: root/luxc/src
diff options
context:
space:
mode:
authorEduardo Julian2018-04-05 06:02:04 -0400
committerEduardo Julian2018-04-05 06:02:04 -0400
commite2c5e22768c4840842b86b3c0b26a3ad34cacb43 (patch)
treecd4bc1ad7e1268b22fd8aba2937d5f312c8be02d /luxc/src
parent787fc34a8f7c66746046a8ce0c16403cf6c2bf6c (diff)
- Implemented some math functions in pure Lux, to reduce the needs of the compiler, and make it easier to port Lux to new backends.
Diffstat (limited to 'luxc/src')
-rw-r--r--luxc/src/lux/analyser/proc/common.clj10
-rw-r--r--luxc/src/lux/compiler/js/proc/common.clj10
-rw-r--r--luxc/src/lux/compiler/jvm/proc/common.clj20
3 files changed, 0 insertions, 40 deletions
diff --git a/luxc/src/lux/analyser/proc/common.clj b/luxc/src/lux/analyser/proc/common.clj
index f43781276..e3cb5a4c8 100644
--- a/luxc/src/lux/analyser/proc/common.clj
+++ b/luxc/src/lux/analyser/proc/common.clj
@@ -378,14 +378,10 @@
^:private analyse-math-acos "acos"
^:private analyse-math-asin "asin"
^:private analyse-math-atan "atan"
- ^:private analyse-math-cosh "cosh"
- ^:private analyse-math-sinh "sinh"
- ^:private analyse-math-tanh "tanh"
^:private analyse-math-exp "exp"
^:private analyse-math-log "log"
^:private analyse-math-ceil "ceil"
^:private analyse-math-floor "floor"
- ^:private analyse-math-round "round"
)
(do-template [<name> <proc>]
@@ -398,7 +394,6 @@
(return (&/|list (&&/|meta exo-type _cursor
(&&/$proc (&/T ["math" <proc>]) (&/|list =input =param) (&/|list)))))))
- ^:private analyse-math-atan2 "atan2"
^:private analyse-math-pow "pow"
)
@@ -595,15 +590,10 @@
"lux math acos" (analyse-math-acos analyse exo-type ?values)
"lux math asin" (analyse-math-asin analyse exo-type ?values)
"lux math atan" (analyse-math-atan analyse exo-type ?values)
- "lux math cosh" (analyse-math-cosh analyse exo-type ?values)
- "lux math sinh" (analyse-math-sinh analyse exo-type ?values)
- "lux math tanh" (analyse-math-tanh analyse exo-type ?values)
"lux math exp" (analyse-math-exp analyse exo-type ?values)
"lux math log" (analyse-math-log analyse exo-type ?values)
"lux math ceil" (analyse-math-ceil analyse exo-type ?values)
"lux math floor" (analyse-math-floor analyse exo-type ?values)
- "lux math round" (analyse-math-round analyse exo-type ?values)
- "lux math atan2" (analyse-math-atan2 analyse exo-type ?values)
"lux math pow" (analyse-math-pow analyse exo-type ?values)
"lux atom new" (analyse-atom-new analyse exo-type ?values)
diff --git a/luxc/src/lux/compiler/js/proc/common.clj b/luxc/src/lux/compiler/js/proc/common.clj
index cb16813d9..96261e8d4 100644
--- a/luxc/src/lux/compiler/js/proc/common.clj
+++ b/luxc/src/lux/compiler/js/proc/common.clj
@@ -405,14 +405,10 @@
^:private compile-math-acos "acos"
^:private compile-math-asin "asin"
^:private compile-math-atan "atan"
- ^:private compile-math-cosh "cosh"
- ^:private compile-math-sinh "sinh"
- ^:private compile-math-tanh "tanh"
^:private compile-math-exp "exp"
^:private compile-math-log "log"
^:private compile-math-ceil "ceil"
^:private compile-math-floor "floor"
- ^:private compile-math-round "round"
)
(do-template [<name> <method>]
@@ -422,7 +418,6 @@
=param (compile ?param)]
(return (str "Math." <method> "(" =input "," =param ")"))))
- ^:private compile-math-atan2 "atan2"
^:private compile-math-pow "pow"
)
@@ -561,15 +556,10 @@
"acos" (compile-math-acos compile ?values special-args)
"asin" (compile-math-asin compile ?values special-args)
"atan" (compile-math-atan compile ?values special-args)
- "cosh" (compile-math-cosh compile ?values special-args)
- "sinh" (compile-math-sinh compile ?values special-args)
- "tanh" (compile-math-tanh compile ?values special-args)
"exp" (compile-math-exp compile ?values special-args)
"log" (compile-math-log compile ?values special-args)
"ceil" (compile-math-ceil compile ?values special-args)
"floor" (compile-math-floor compile ?values special-args)
- "round" (compile-math-round compile ?values special-args)
- "atan2" (compile-math-atan2 compile ?values special-args)
"pow" (compile-math-pow compile ?values special-args)
)
diff --git a/luxc/src/lux/compiler/jvm/proc/common.clj b/luxc/src/lux/compiler/jvm/proc/common.clj
index 67536f3fe..e9e565f6d 100644
--- a/luxc/src/lux/compiler/jvm/proc/common.clj
+++ b/luxc/src/lux/compiler/jvm/proc/common.clj
@@ -684,9 +684,6 @@
^:private compile-math-acos "acos"
^:private compile-math-asin "asin"
^:private compile-math-atan "atan"
- ^:private compile-math-cosh "cosh"
- ^:private compile-math-sinh "sinh"
- ^:private compile-math-tanh "tanh"
^:private compile-math-exp "exp"
^:private compile-math-log "log"
^:private compile-math-ceil "ceil"
@@ -708,21 +705,9 @@
&&/wrap-double)]]
(return nil)))
- ^:private compile-math-atan2 "atan2"
^:private compile-math-pow "pow"
)
-(defn ^:private compile-math-round [compile ?values special-args]
- (|do [:let [(&/$Cons ?input (&/$Nil)) ?values]
- ^MethodVisitor *writer* &/get-writer
- _ (compile ?input)
- :let [_ (doto *writer*
- &&/unwrap-double
- (.visitMethodInsn Opcodes/INVOKESTATIC "java/lang/Math" "round" "(D)J")
- (.visitInsn Opcodes/L2D)
- &&/wrap-double)]]
- (return nil)))
-
(defn ^:private compile-atom-new [compile ?values special-args]
(|do [:let [(&/$Cons ?init (&/$Nil)) ?values]
^MethodVisitor *writer* &/get-writer
@@ -954,15 +939,10 @@
"acos" (compile-math-acos compile ?values special-args)
"asin" (compile-math-asin compile ?values special-args)
"atan" (compile-math-atan compile ?values special-args)
- "cosh" (compile-math-cosh compile ?values special-args)
- "sinh" (compile-math-sinh compile ?values special-args)
- "tanh" (compile-math-tanh compile ?values special-args)
"exp" (compile-math-exp compile ?values special-args)
"log" (compile-math-log compile ?values special-args)
"ceil" (compile-math-ceil compile ?values special-args)
"floor" (compile-math-floor compile ?values special-args)
- "round" (compile-math-round compile ?values special-args)
- "atan2" (compile-math-atan2 compile ?values special-args)
"pow" (compile-math-pow compile ?values special-args)
)