packages feed

husk-scheme 3.5.3 → 3.5.3.1

raw patch · 6 files changed

+28/−13 lines, 6 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

hs-src/Compiler/huskc.hs view
@@ -77,6 +77,7 @@ options = [   Option ['V'] ["version"] (NoArg showVersion) "show version number",   Option ['h', '?'] ["help"] (NoArg showHelp) "show usage information",+  Option [] ["debug"] (NoArg showDebug) "show debug information",   Option ['o'] ["output"] (ReqArg writeExec "FILE") "output file to write",   Option ['d'] ["dynamic"] (NoArg getDynamic) "use dynamic linking for the compiled executable",   Option ['x'] ["extra"] (ReqArg getExtraArgs "Args") "extra arguments to ghc"@@ -108,6 +109,14 @@   putStrLn "  --dynamic             Use dynamic Haskell libraries, if available"   putStrLn "                        (Requires libraries built via --enable-shared)"   putStrLn "  --extra args          Pass extra arguments directly to ghc"+  putStrLn ""+  exitWith ExitSuccess++-- |Print debug information+showDebug :: Options -> IO Options+showDebug _ = do+  stdlib <- getDataFileName "stdlib.scm"+  putStrLn $ "stdlib: " ++ stdlib   putStrLn ""   exitWith ExitSuccess 
hs-src/Interpreter/shell.hs view
@@ -33,26 +33,26 @@  runOne :: [String] -> IO () runOne args = do-  {- Use this to suppress unwanted output.-     Makes this unix-specific, but as of now-     everything else is anyway, so... -}-  nullIO <- openFile "/dev/null" WriteMode-   stdlib <- getDataFileName "stdlib.scm"   env <- primitiveBindings >>= flip extendEnv                                    [((varNamespace, "args"),                                     List $ map String $ drop 1 args)]   _ <- evalString env $ "(load \"" ++ stdlib ++ "\")" -- Load standard library-  (runIOThrows $ liftM show $ evalLisp env (List [Atom "load", String (args !! 0)]))-     >>= hPutStr nullIO+  result <- (runIOThrows $ liftM show $ evalLisp env (List [Atom "load", String (args !! 0)]))+  case result of+    "" -> putStr result+    _  -> putStrLn result     -- Call into (main) if it exists...   alreadyDefined <- liftIO $ isBound env "main"   let argv = List $ map String $ args   if alreadyDefined-     then (runIOThrows $ liftM show $ evalLisp env-            (List [Atom "main", List [Atom "quote", argv]])) >>= hPutStr stderr-     else (runIOThrows $ liftM show $ evalLisp env (Nil "")) >>= hPutStr stderr+     then do +            mainResult <- (runIOThrows $ liftM show $ evalLisp env (List [Atom "main", List [Atom "quote", argv]]))+            case mainResult of+              "" -> putStr mainResult+              _  -> putStrLn mainResult+     else putStr ""   runRepl :: IO () runRepl = do
hs-src/Language/Scheme/Core.hs view
@@ -37,7 +37,7 @@ import System.IO  version :: String-version = "3.5.3"+version = "3.5.3.1"  showBanner :: IO () showBanner = do
hs-src/Language/Scheme/Numerical.hs view
@@ -69,6 +69,8 @@         doMul (List [(Complex a), (Complex b)]) = return $ Complex $ a * b         doMul _ = throwError $ Default "Unexpected error in *" numDiv [] = throwError $ NumArgs 1 []+numDiv [Number 0] = throwError $ DivideByZero +numDiv [Rational 0] = throwError $ DivideByZero   numDiv [Number n] = return $ Rational $ 1 / (fromInteger n) numDiv [Float n] = return $ Float $ 1.0 / n numDiv [Rational n] = return $ Rational $ 1 / n
hs-src/Language/Scheme/Parser.hs view
@@ -179,7 +179,11 @@       num <- many1 (digit)       if (length sign) > 1          then pzero-         else return $ Rational $ n % (read $ sign ++ num)+         else do+             let pdenominator = read $ sign ++ num+             if pdenominator == 0+                then return $ Number 0 -- TODO: Prevents a div-by-zero error, but not really correct either+                else return $ Rational $ n % pdenominator     _ -> pzero  parseComplexNumber :: Parser LispVal
husk-scheme.cabal view
@@ -1,5 +1,5 @@ Name:                husk-scheme-Version:             3.5.3+Version:             3.5.3.1 Synopsis:            R5RS Scheme interpreter, compiler, and library. Description:         A dialect of R5RS Scheme written in Haskell. Provides advanced                       features including continuations, hygienic macros, a Haskell FFI,