summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/FastCGIUtils.hs18
-rw-r--r--src/server/gf-server.cabal32
2 files changed, 12 insertions, 38 deletions
diff --git a/src/server/FastCGIUtils.hs b/src/server/FastCGIUtils.hs
index 763eeb292..8d90c9fa7 100644
--- a/src/server/FastCGIUtils.hs
+++ b/src/server/FastCGIUtils.hs
@@ -8,7 +8,7 @@ module FastCGIUtils (initFastCGI, loopFastCGI,
splitBy) where
import Control.Concurrent
-import Control.OldException
+import Control.Exception
import Control.Monad
import Data.Dynamic
import Data.IORef
@@ -143,17 +143,19 @@ stderrToFile s = return ()
-- * General CGI Error exception mechanism
data CGIError = CGIError { cgiErrorCode :: Int, cgiErrorMessage :: String, cgiErrorText :: [String] }
- deriving Typeable
+ deriving (Show,Typeable)
+
+instance Exception CGIError where
+ toException e = SomeException e
+ fromException (SomeException e) = cast e
throwCGIError :: Int -> String -> [String] -> CGI a
-throwCGIError c m t = throwCGI $ DynException $ toDyn $ CGIError c m t
+throwCGIError c m t = throwCGI $ toException $ CGIError c m t
handleCGIErrors :: CGI CGIResult -> CGI CGIResult
-handleCGIErrors x = x `catchCGI` \e -> case e of
- DynException d -> case fromDynamic d of
- Nothing -> throw e
- Just (CGIError c m t) -> outputError c m t
- _ -> throw e
+handleCGIErrors x = x `catchCGI` \e -> case fromException e of
+ Nothing -> throw e
+ Just (CGIError c m t) -> outputError c m t
-- * General CGI and JSON stuff
diff --git a/src/server/gf-server.cabal b/src/server/gf-server.cabal
index 05cbebf76..cdd61d933 100644
--- a/src/server/gf-server.cabal
+++ b/src/server/gf-server.cabal
@@ -7,11 +7,12 @@ license-file: LICENSE
synopsis: FastCGI Server for Grammatical Framework
executable pgf-server
- build-depends: base,
+ build-depends: base >= 4,
old-time,
directory,
filepath,
containers,
+ process,
gf >= 3.1,
cgi >= 3001.1.7.0,
fastcgi >= 3001.0.2.1,
@@ -27,32 +28,3 @@ executable pgf-server
ghc-options: -threaded
if os(windows)
ghc-options: -optl-mwindows
-
-executable morpho-server
- build-depends: base,
- old-time,
- directory,
- filepath,
- containers,
- gf >= 3.1,
- cgi >= 3001.1.7.0,
- fastcgi >= 3001.0.2.1,
- json >= 0.3.3,
- utf8-string >= 0.3.1.1,
- bytestring,
- pretty,
- array,
- process,
- mtl,
- random
- if !os(windows)
- build-depends: unix
- main-is: MorphoService.hs
- other-modules:
- FastCGIUtils
- Cache
- URLEncoding
- GF.Grammar.Parser
- hs-source-dirs: ../compiler ../runtime/haskell . ../../dist/build/autogen
- if os(windows)
- ghc-options: -optl-mwindows