on master help sign in
Remove JMacro functions

They intruduced a lot of dependencies (including haskell-src-exts). A better option is for people to roll there own or to include a QQ that makes string literals in the jmacro package.

commitd9d267bcc274d33c977b0bcbe6d64714a26db4b4 authorHamish Mackenzie <Hamish.K.Mackenzie@googlemail.com> dateSat 1 Nov 2014, 20:58 (12 years ago) parent1807dee
3 files changed+4−67
jsaddle.cabal−11 src/Language/Javascript/JSaddle.hs+4−13 src/Language/Javascript/JSaddle/JMacro.hs−43
jsaddle.cabal−11
@@ -33,10 +33,6 @@ flag webkit
3333 description: Use WebKitGtk and JavaScriptCore for GHCJS output
3434 default: False
3535
36−flag jmacro
37− description: Include some JMacro support
38− default: True
39−
4036library
4137 -- Make sure ghcjs gets turned off if ghcjs-base is not avaialbe
4238 if flag(ghcjs)
@@ -57,10 +53,6 @@ library
5753 build-depends: webkit >=0.13.0.0 && <0.14,
5854 webkit-javascriptcore >=0.13.0.0 && <0.14
5955
60− if flag(jmacro)
61− exposed-modules: Language.Javascript.JSaddle.JMacro
62− build-depends: jmacro >=0.6.3 && <0.8
63−
6456 build-depends: template-haskell -any, base <5, lens >=3.8.5 && <4.6,
6557 text >=0.11.2.3 && <1.3, transformers >=0.3.0.0 && <0.5
6658
@@ -95,9 +87,6 @@ test-suite test-tool
9587 else
9688 build-depends: gtk, webkit, webkit-javascriptcore
9789
98− if flag(jmacro)
99− build-depends: jmacro
100−
10190 build-depends: template-haskell, base, lens, text,
10291 transformers, hslogger, jsaddle
10392 type: exitcode-stdio-1.0
src/Language/Javascript/JSaddle.hs+4−13
@@ -42,17 +42,11 @@ module Language.Javascript.JSaddle (
4242 -- convert a Haskell function in the JSM monad into a javascript
4343 -- value.
4444
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−
5145 -- * GHCJS Support
52− -- | Because it uses webkit-javascriptcore you can compile your JSaddle code to
53− -- JavaScript using GHCJS <https://github.com/ghcjs/ghcjs> and run it
54− -- in a web browser. Calls to the WebKitGTK+ JavaScriptCore C functions
55− -- will be replaced with JavaScript function calls.
46+ -- | When built with ghcjs the code works using JavaScript FFI by default.
47+ -- It can also be built to use webkitgtk3-javascriptcore C FFI as there
48+ -- are shims for these (but this introduces a dependancy on WebKitGTK+
49+ -- and is probably not as fast).
5650
5751 -- * Modules
5852 module JSaddle
@@ -65,7 +59,4 @@ import Language.Javascript.JSaddle.Arguments as JSaddle
6559import Language.Javascript.JSaddle.Properties as JSaddle
6660import Language.Javascript.JSaddle.Object as JSaddle
6761import Language.Javascript.JSaddle.Evaluate as JSaddle
68−#ifdef MIN_VERSION_jmacro
69−import Language.Javascript.JSaddle.JMacro as JSaddle
70−#endif
7162import 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))|]