husk-scheme 3.2 → 3.2.1
raw patch · 4 files changed
+19/−6 lines, 4 files
Files
- hs-src/Language/Scheme/Core.hs +10/−2
- hs-src/Language/Scheme/Macro.hs +5/−0
- hs-src/shell.hs +1/−1
- husk-scheme.cabal +3/−3
hs-src/Language/Scheme/Core.hs view
@@ -735,7 +735,11 @@ GHC.Failed -> error "Compilation failed" GHC.Succeeded -> do m <- GHC.findModule (GHC.mkModuleName moduleName) Nothing- GHC.setContext [] [m] -- setContext [] [(m, Nothing)] -- Use setContext [] [m] for GHC<7.+#if __GLASGOW_HASKELL__ < 700+ GHC.setContext [] [m]+#else+ GHC.setContext [] [(m, Nothing)]+#endif fetched <- GHC.compileExpr (moduleName ++ "." ++ externalFuncName) return (Unsafe.Coerce.unsafeCoerce fetched :: [LispVal] -> IOThrowsError LispVal) defineVar env internalFuncName (IOFunc result) >>= continueEval env cont@@ -746,7 +750,11 @@ dynflags <- GHC.getSessionDynFlags _ <- GHC.setSessionDynFlags dynflags m <- GHC.findModule (GHC.mkModuleName moduleName) Nothing- GHC.setContext [] [m] -- setContext [] [(m, Nothing)] -- Use setContext [] [m] for GHC<7.+#if __GLASGOW_HASKELL__ < 700+ GHC.setContext [] [m]+#else+ GHC.setContext [] [(m, Nothing)]+#endif fetched <- GHC.compileExpr (moduleName ++ "." ++ externalFuncName) return (Unsafe.Coerce.unsafeCoerce fetched :: [LispVal] -> IOThrowsError LispVal) defineVar env internalFuncName (IOFunc result) >>= continueEval env cont
hs-src/Language/Scheme/Macro.hs view
@@ -336,6 +336,10 @@ checkLocal outerEnv localEnv identifiers hasEllipsis pattern@(Vector _) input@(Vector _) = loadLocal outerEnv localEnv identifiers pattern input False hasEllipsis +--+-- TODO: both of the below patterns are handled incorrectly; see Issue #34.+-- basically a pattern in the dotted tail position can match multiple times, similar (same?) as if an ellipsis was at the end of a list+-- checkLocal outerEnv localEnv identifiers hasEllipsis pattern@(DottedList _ _) input@(DottedList _ _) = loadLocal outerEnv localEnv identifiers pattern input False hasEllipsis -- throwError $ BadSpecialForm "Test" input@@ -347,6 +351,7 @@ {- Idea here is that if we have a dotted list, the last component does not have to be provided in the input. So in that case just fill in an empty list for the missing component. -} else loadLocal outerEnv localEnv identifiers pattern (DottedList (i : is) (List [])) False hasEllipsis+-- Issue #34 TODO: possible prototype code for this section - else loadLocal outerEnv localEnv identifiers (List $ ps ++ [p] ++ Atom "...") input False hasEllipsis checkLocal outerEnv localEnv identifiers hasEllipsis pattern@(List _) input@(List _) = loadLocal outerEnv localEnv identifiers pattern input False hasEllipsis
hs-src/shell.hs view
@@ -67,7 +67,7 @@ putStrLn " | | | | |_| \\__ \\ < /// \\\\\\ \\__ \\ (__| | | | __/ | | | | | __/ " putStrLn " |_| |_|\\__,_|___/_|\\_\\ /// \\\\\\ |___/\\___|_| |_|\\___|_| |_| |_|\\___| " putStrLn " "- putStrLn " husk Scheme Interpreter Version 3.2 "+ putStrLn " husk Scheme Interpreter Version 3.2.1 " putStrLn " (c) 2010-2011 Justin Ethier github.com/justinethier/husk-scheme " putStrLn " "
husk-scheme.cabal view
@@ -1,5 +1,5 @@ Name: husk-scheme-Version: 3.2+Version: 3.2.1 Synopsis: R5RS Scheme interpreter program and library. Description: A dialect of R5RS Scheme written in Haskell. Provides advanced features including continuations, non-hygienic macros, a Haskell FFI,@@ -20,7 +20,7 @@ Library Build-Depends: base >= 2.0 && < 5, array, containers, haskeline, haskell98, mtl, parsec, directory, ghc, ghc-paths- Extensions: ExistentialQuantification+ Extensions: ExistentialQuantification CPP CPP Hs-Source-Dirs: hs-src Exposed-Modules: Language.Scheme.Core Language.Scheme.Types@@ -33,7 +33,7 @@ Executable huski Build-Depends: base >= 2.0 && < 5, array, containers, haskeline, haskell98, mtl, parsec, directory, ghc, ghc-paths- Extensions: ExistentialQuantification+ Extensions: ExistentialQuantification CPP CPP Main-is: shell.hs Hs-Source-Dirs: hs-src Other-Modules: Language.Scheme.Core