Skip to content

Commit 686cc5d

Browse files
authored
Update to PureScript v0.13.6 (#162)
* Update to PureScript v0.13.6 * Build the names env once, before starting the server
1 parent b9f4dc7 commit 686cc5d

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

server/Main.hs

+9-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
module Main (main) where
99

10-
import Control.Monad (unless, (>=>))
10+
import Control.Monad (unless, (>=>), foldM)
1111
import Control.Monad.Error.Class (throwError)
1212
import Control.Monad.IO.Class (liftIO)
1313
import Control.Monad.Logger (runLogger')
@@ -16,6 +16,7 @@ import qualified Control.Monad.State as State
1616
import Control.Monad.Trans (lift)
1717
import Control.Monad.Trans.Except (ExceptT(..), runExceptT)
1818
import Control.Monad.Trans.Reader (runReaderT)
19+
import Control.Monad.Writer.Strict (runWriterT)
1920
import qualified Data.Aeson as A
2021
import Data.Aeson ((.=))
2122
import Data.Bifunctor (first, second)
@@ -59,8 +60,8 @@ data Error
5960

6061
instance A.ToJSON Error
6162

62-
server :: [P.ExternsFile] -> P.Environment -> Int -> IO ()
63-
server externs initEnv port = do
63+
server :: [P.ExternsFile] -> P.Env -> P.Environment -> Int -> IO ()
64+
server externs initNamesEnv initEnv port = do
6465
let compile :: Text -> IO (Either Error ([P.JSONError], JS))
6566
compile input
6667
| T.length input > 20000 = return (Left (OtherError "Please limit your input to 20000 characters"))
@@ -72,7 +73,7 @@ server externs initEnv port = do
7273
Right m | P.getModuleName m == P.ModuleName [P.ProperName "Main"] -> do
7374
(resultMay, ws) <- runLogger' . runExceptT . flip runReaderT P.defaultOptions $ do
7475
((P.Module ss coms moduleName elaborated exps, env), nextVar) <- P.runSupplyT 0 $ do
75-
desugared <- P.desugar externs [P.importPrim m] >>= \case
76+
desugared <- P.desugar initNamesEnv externs [P.importPrim m] >>= \case
7677
[d] -> pure d
7778
_ -> error "desugaring did not produce one module"
7879
P.runCheck' (P.emptyCheckState initEnv) $ P.typeCheckModule desugared
@@ -167,7 +168,9 @@ main = do
167168
let onError f = either (Left . f) Right
168169
e <- runExceptT $ do
169170
modules <- ExceptT $ I.loadAllModules inputFiles
170-
ExceptT . I.runMake . I.make $ map (second CST.pureResult) modules
171+
(exts, env) <- ExceptT . I.runMake . I.make $ map (second CST.pureResult) modules
172+
namesEnv <- fmap fst . runWriterT $ foldM P.externsEnv P.primEnv exts
173+
pure (exts, namesEnv, env)
171174
case e of
172175
Left err -> print err >> exitFailure
173-
Right (exts, env) -> server exts env port
176+
Right (exts, namesEnv, env) -> server exts namesEnv env port

stack.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ flags:
88
packages:
99
- '.'
1010
extra-deps:
11-
- purescript-0.13.5
11+
- purescript-0.13.6
1212
- happy-1.19.9
1313
- language-javascript-0.7.0.0
1414
- network-3.0.1.1

stack.yaml.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55

66
packages:
77
- completed:
8-
hackage: purescript-0.13.5@sha256:1e54e144cf2271fae7149734bdae2c79e215c204782d867f68f557a2c3c2472c,62027
8+
hackage: purescript-0.13.6@sha256:4c17cdc0e8d51bb79f6fd3dd2beeda30dcf7297a76bbe3a37a49924e95d2b4fc,62060
99
pantry-tree:
10-
size: 95425
11-
sha256: af427d485cd2a6d99008aa8f877ce19bc06e97bbe78ff4122b3e0843caf19e49
10+
size: 95494
11+
sha256: afbab4292ca1243d0d52fd32ec48f8261ffb7f91c40922dd637688a700df88e9
1212
original:
13-
hackage: purescript-0.13.5
13+
hackage: purescript-0.13.6
1414
- completed:
1515
hackage: happy-1.19.9@sha256:f8c774230735a390c287b2980cfcd2703d24d8dde85a01ea721b7b4b4c82944f,4667
1616
pantry-tree:

trypurescript.cabal

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: trypurescript
2-
version: 0.13.5
2+
version: 0.13.6
33
cabal-version: >=1.8
44
build-type: Simple
55
license: BSD3
@@ -20,7 +20,7 @@ executable trypurescript
2020
filepath -any,
2121
Glob -any,
2222
scotty -any,
23-
purescript ==0.13.5,
23+
purescript ==0.13.6,
2424
containers -any,
2525
http-types >= 0.8.5,
2626
transformers ==0.5.*,

0 commit comments

Comments
 (0)