on master help sign in
Remove JMacro functions
d9d267bHamish Mackenzie
jsaddle.cabal−11
@@ -33,10 +33,6 @@ flag webkit
33 description: Use WebKitGtk and JavaScriptCore for GHCJS output
33 description: Use WebKitGtk and JavaScriptCore for GHCJS output
34 default: False
34 default: False
35
35
36−flag jmacro
37− description: Include some JMacro support
38− default: True
39−
40library
36library
41 -- Make sure ghcjs gets turned off if ghcjs-base is not avaialbe
37 -- Make sure ghcjs gets turned off if ghcjs-base is not avaialbe
42 if flag(ghcjs)
38 if flag(ghcjs)
@@ -57,10 +53,6 @@ library
57 build-depends: webkit >=0.13.0.0 && <0.14,
53 build-depends: webkit >=0.13.0.0 && <0.14,
58 webkit-javascriptcore >=0.13.0.0 && <0.14
54 webkit-javascriptcore >=0.13.0.0 && <0.14
59
55
60− if flag(jmacro)
61− exposed-modules: Language.Javascript.JSaddle.JMacro
62− build-depends: jmacro >=0.6.3 && <0.8
63−
64 build-depends: template-haskell -any, base <5, lens >=3.8.5 && <4.6,
56 build-depends: template-haskell -any, base <5, lens >=3.8.5 && <4.6,
65 text >=0.11.2.3 && <1.3, transformers >=0.3.0.0 && <0.5
57 text >=0.11.2.3 && <1.3, transformers >=0.3.0.0 && <0.5
66
58
@@ -95,9 +87,6 @@ test-suite test-tool
95 else
87 else
96 build-depends: gtk, webkit, webkit-javascriptcore
88 build-depends: gtk, webkit, webkit-javascriptcore
97
89
98− if flag(jmacro)
99− build-depends: jmacro
100−
101 build-depends: template-haskell, base, lens, text,
90 build-depends: template-haskell, base, lens, text,
102 transformers, hslogger, jsaddle
91 transformers, hslogger, jsaddle
103 type: exitcode-stdio-1.0
92 type: exitcode-stdio-1.0
src/Language/Javascript/JSaddle.hs+4−13
@@ -42,17 +42,11 @@ module Language.Javascript.JSaddle (
42 -- convert a Haskell function in the JSM monad into a javascript
42 -- convert a Haskell function in the JSM monad into a javascript
43 -- value.
43 -- value.
44
44
45− -- * JMacro Support
46− -- | If you want a more JavaScript like syntax we also have a
47− -- JMacro based QuasiQuoter 'evalJM'. This converts your JMacro
48− -- code into a string literal and a call to @eval@ to evaluate it
49− -- using JavaScriptCore.
50−
51 -- * GHCJS Support
45 -- * GHCJS Support
52− -- | Because it uses webkit-javascriptcore you can compile your JSaddle code to
46+ -- | When built with ghcjs the code works using JavaScript FFI by default.
53− -- JavaScript using GHCJS <https://github.com/ghcjs/ghcjs> and run it
47+ -- It can also be built to use webkitgtk3-javascriptcore C FFI as there
54− -- in a web browser. Calls to the WebKitGTK+ JavaScriptCore C functions
48+ -- are shims for these (but this introduces a dependancy on WebKitGTK+
55− -- will be replaced with JavaScript function calls.
49+ -- and is probably not as fast).
56
50
57 -- * Modules
51 -- * Modules
58 module JSaddle
52 module JSaddle
@@ -65,7 +59,4 @@ import Language.Javascript.JSaddle.Arguments as JSaddle
65import Language.Javascript.JSaddle.Properties as JSaddle
59import Language.Javascript.JSaddle.Properties as JSaddle
66import Language.Javascript.JSaddle.Object as JSaddle
60import Language.Javascript.JSaddle.Object as JSaddle
67import Language.Javascript.JSaddle.Evaluate as JSaddle
61import Language.Javascript.JSaddle.Evaluate as JSaddle
68−#ifdef MIN_VERSION_jmacro
69−import Language.Javascript.JSaddle.JMacro as JSaddle
70−#endif
71import Language.Javascript.JSaddle.String as JSaddle
62import Language.Javascript.JSaddle.String as JSaddle
src/Language/Javascript/JSaddle/JMacro.hsdeleted−43
@@ -1,43 +0,0 @@
1−{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}
2−-----------------------------------------------------------------------------
3−--
4−-- Module : Language.Javascript.JSaddle.JMacro
5−-- Copyright : (c) Hamish Mackenzie
6−-- License : MIT
7−--
8−-- Maintainer : Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>
9−--
10−-- | Helper function to make it easy to embed JMacro in your code and
11−-- use it from JSaddle
12−--
13−-----------------------------------------------------------------------------
14−
15−module Language.Javascript.JSaddle.JMacro (
16− evalJM
17− , evalJME
18−) where
19−
20−import Language.Haskell.TH.Quote (QuasiQuoter(..))
21−import Language.Haskell.TH
22− (varE, appE, Lit(..), Exp(..), mkName, ExpQ)
23−import Language.Javascript.JMacro (jmacro, jmacroE, renderJs)
24−
25−-- | Quasi quoter that creates a JavaScript string from JMacro expression
26−-- and stores it in a string litteral
27−evalJME :: QuasiQuoter
28−evalJME = jmacroE {quoteExp = quoteEvalJME}
29−
30−quoteEvalJME :: String -> ExpQ
31−quoteEvalJME s =
32− appE (varE 'return) [|AppE (VarE $ mkName "Language.Javascript.JSaddle.eval")
33− (LitE . StringL . show $ renderJs $(quoteExp jmacroE s))|]
34−
35−-- | Quasi quoter that creates a JavaScript string from JMacro statement
36−-- and stores it in a string litteral
37−evalJM :: QuasiQuoter
38−evalJM = jmacro {quoteExp = quoteEvalJM}
39−
40−quoteEvalJM :: String -> ExpQ
41−quoteEvalJM s =
42− appE (varE 'return) [|AppE (VarE $ mkName "Language.Javascript.JSaddle.eval")
43− (LitE . StringL . show $ renderJs $(quoteExp jmacro s))|]