on master help sign in
Prepare for second release.
8215dacevancz
Elm.cabal+18−10
@@ -1,6 +1,6 @@
1
1
2Name: Elm
2Name: Elm
3−Version: 0.1.0
3+Version: 0.1.1.2
4Synopsis: The Elm compiler and server.
4Synopsis: The Elm compiler and server.
5Description: Elm aims to make client-side web-development more pleasant.
5Description: Elm aims to make client-side web-development more pleasant.
6 It is a statically/strongly typed, functional reactive
6 It is a statically/strongly typed, functional reactive
@@ -16,7 +16,7 @@ Author: Evan Czaplicki
16Maintainer: info@elm-lang.org
16Maintainer: info@elm-lang.org
17Copyright: Copyright: (c) 2011-2012 Evan Czaplicki
17Copyright: Copyright: (c) 2011-2012 Evan Czaplicki
18
18
19−Category: Compiler
19+Category: Compiler, Language
20
20
21Build-type: Simple
21Build-type: Simple
22
22
@@ -29,12 +29,12 @@ source-repository head
29
29
30Executable elm
30Executable elm
31 -- .hs or .lhs file containing the Main module.
31 -- .hs or .lhs file containing the Main module.
32− Main-is: Elm.hs
32+ Main-is: Compiler.hs
33− Hs-Source-Dirs: src, src/Parse, src/Types
33+ Hs-Source-Dirs: src, src/Parse, src/Types, src/Language
34− other-modules: Ast, CompileToJS, FreeVar, GenerateHtml, Initialize,
34+ other-modules: Ast, CompileToJS, GenerateHtml, Guid, Initialize,
35− Rename, Replace, ToHtml, Binop, Combinators, Lexer,
35+ Rename, Language.Elm, Binop, Combinators, Lexer,
36 ParsePatterns, Parser, ParserLib, ParseTypes, Tokens,
36 ParsePatterns, Parser, ParserLib, ParseTypes, Tokens,
37− Types
37+ Types, Constrain, Hints, Types, Unify
38
38
39 -- Packages needed in order to build this package.
39 -- Packages needed in order to build this package.
40 ghc-options: -O3 -rtsopts -auto-all -caf-all
40 ghc-options: -O3 -rtsopts -auto-all -caf-all
@@ -52,11 +52,19 @@ Executable elm
52Executable elm-server
52Executable elm-server
53 Main-is: Server.hs
53 Main-is: Server.hs
54 Hs-Source-Dirs: src, src/Parse, src/Types
54 Hs-Source-Dirs: src, src/Parse, src/Types
55− other-modules: Ast, CompileToJS, FreeVar, GenerateHtml, Initialize,
55+ other-modules: Ast, CompileToJS, GenerateHtml, Guid, Initialize,
56− Rename, Replace, ToHtml, Binop, Combinators, Lexer,
56+ Rename, Language.Elm, Binop, Combinators, Lexer,
57 ParsePatterns, Parser, ParserLib, ParseTypes, Tokens,
57 ParsePatterns, Parser, ParserLib, ParseTypes, Tokens,
58− Types
58+ Types, Constrain, Hints, Types, Unify
59 ghc-options: -O3 -rtsopts -auto-all -caf-all
59 ghc-options: -O3 -rtsopts -auto-all -caf-all
60 Build-depends: base >=4.2 && <5, containers >= 0.3, transformers >= 0.2,
60 Build-depends: base >=4.2 && <5, containers >= 0.3, transformers >= 0.2,
61 mtl >= 2, parsec >= 3.1.1, blaze-html == 0.5.0.*,
61 mtl >= 2, parsec >= 3.1.1, blaze-html == 0.5.0.*,
62 HTTP >= 4000, happstack-server == 7.0.2
62 HTTP >= 4000, happstack-server == 7.0.2
63+
64+Library
65+ exposed-modules: Language.Elm
66+ Hs-Source-Dirs: src, src/Parse, src/Types
67+ other-modules: Ast, CompileToJS, GenerateHtml, Guid, Initialize,
68+ Rename, Binop, Combinators, Lexer,
69+ ParsePatterns, Parser, ParserLib, ParseTypes, Tokens,
70+ Types, Constrain, Hints, Types, Unify
src/Elm.hs → src/Compiler.hsrenamed+1−1
@@ -10,7 +10,7 @@ import Text.Blaze.Html.Renderer.String (renderHtml)
10main = getArgs >>= parse
10main = getArgs >>= parse
11
11
12parse ("--help":_) = putStrLn usage
12parse ("--help":_) = putStrLn usage
13−parse ("--version":_) = putStrLn "The Elm Compiler 0.1.0"
13+parse ("--version":_) = putStrLn "The Elm Compiler 0.1.1.1"
14parse [loc,file]
14parse [loc,file]
15 | "--runtime-location=" `isPrefixOf` loc =
15 | "--runtime-location=" `isPrefixOf` loc =
16 produceHtml (tail $ dropWhile (/='=') loc) file
16 produceHtml (tail $ dropWhile (/='=') loc) file
src/Initialize.hs−2
@@ -6,11 +6,9 @@ import Control.Monad
6import Data.Char (isAlpha)
6import Data.Char (isAlpha)
7import Data.Maybe (mapMaybe)
7import Data.Maybe (mapMaybe)
8import Data.Either (rights)
8import Data.Either (rights)
9−import FreeVar
10import Lexer
9import Lexer
11import Parser (toExpr,toDefs)
10import Parser (toExpr,toDefs)
12import Rename (rename)
11import Rename (rename)
13−import Replace
14
12
15import Unify
13import Unify
16import Hints
14import Hints
src/Language/Elm.hsnew file+10
@@ -0,0 +1,10 @@
1+
2+module Language.Elm where
3+
4+import CompileToJS
5+import GenerateHtml
6+import Text.Blaze.Html (Html)
7+
8+compileToHtml :: String -> String -> String -> Html
9+compileToHtml libLoc fileName source =
10+ generateHtml libLoc fileName (compileToJS source)
src/Server.hs+7−4
@@ -7,28 +7,31 @@ import Data.List (isPrefixOf, isSuffixOf)
7import Happstack.Server
7import Happstack.Server
8import Happstack.Server.Compression
8import Happstack.Server.Compression
9import System.Environment
9import System.Environment
10−import ToHtml
10+import Language.Elm
11
11
12serve :: String -> IO ()
12serve :: String -> IO ()
13serve libLoc = do
13serve libLoc = do
14− putStrLn "Elm Server 0.1.0: running at <http://localhost:8000>"
14+ putStrLn "Elm Server 0.1.1.1: running at <http://localhost:8000>"
15 simpleHTTP nullConf $ do
15 simpleHTTP nullConf $ do
16 compressedResponseFilter
16 compressedResponseFilter
17 msum [ uriRest (serveElm libLoc)
17 msum [ uriRest (serveElm libLoc)
18 , serveDirectory EnableBrowsing [] "."
18 , serveDirectory EnableBrowsing [] "."
19 ]
19 ]
20
20
21+pageTitle fp =
22+ reverse . takeWhile (/='/') . drop 1 . dropWhile (/='.') $ reverse fp
23+
21serveElm libLoc fp = do
24serveElm libLoc fp = do
22 let ('/':path) = fp
25 let ('/':path) = fp
23 guard (".elm" `isSuffixOf` path)
26 guard (".elm" `isSuffixOf` path)
24 content <- liftIO (readFile path)
27 content <- liftIO (readFile path)
25− ok . toResponse $ compileToHtml libLoc path content
28+ ok . toResponse $ compileToHtml libLoc (pageTitle path) content
26
29
27
30
28main = getArgs >>= parse
31main = getArgs >>= parse
29
32
30parse ("--help":_) = putStrLn usage
33parse ("--help":_) = putStrLn usage
31−parse ("--version":_) = putStrLn "The Elm Server 0.1.0"
34+parse ("--version":_) = putStrLn "The Elm Server 0.1.1.1"
32parse [] = serve "/elm-mini.js"
35parse [] = serve "/elm-mini.js"
33parse [arg]
36parse [arg]
34 | "--runtime-location=" `isPrefixOf` arg =
37 | "--runtime-location=" `isPrefixOf` arg =
src/ToHtml.hsdeleted−14
@@ -1,14 +0,0 @@
1−{-# LANGUAGE OverloadedStrings #-}
2−module ToHtml (compileToHtml) where
3−
4−import CompileToJS
5−import GenerateHtml
6−import qualified Text.Blaze.Html5 as H
7−import qualified Text.Blaze.Html5.Attributes as A
8−
9−pageTitle fp =
10− reverse . takeWhile (/='/') . drop 1 . dropWhile (/='.') $ reverse fp
11−
12−compileToHtml :: String -> String -> String -> H.Html
13−compileToHtml libLoc fileName source =
14− generateHtml libLoc (pageTitle fileName) (compileToJS source)