Merge pull request #66 from abailly/no-prelude

check noprelude option when starting up without loading a file
This commit is contained in:
Edwin Brady 2019-07-30 16:47:08 +01:00 committed by GitHub
commit f39b736110
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 84 additions and 16 deletions

View File

@ -126,22 +126,24 @@ stMain opts
u <- newRef UST initUState
updateREPLOpts
session <- getSession
case fname of
Nothing => logTime "Loading prelude" $
readPrelude
Just f => logTime "Loading main file" $
when (not $ noprelude session) $
readPrelude
Just f => logTime "Loading main file" $
loadMainFile f
doRepl <- postOptions opts
if doRepl
then
if doRepl
then
if ide || ideSocket
then
if not ideSocket
then
if not ideSocket
then do
setOutput (IDEMode 0 stdin stdout)
replIDE {c} {u} {m}
else do
else do
f <- coreLift $ initIDESocketFile 38398
case f of
Left err => do
@ -149,8 +151,8 @@ stMain opts
coreLift $ exit 1
Right file => do
setOutput (IDEMode 0 file file)
replIDE {c} {u} {m}
else do
replIDE {c} {u} {m}
else do
iputStrLn $ "Welcome to Idris 2 version " ++ version
++ ". Enjoy yourself!"
repl {c} {u} {m}

View File

@ -5,7 +5,7 @@ import System
%default covering
ttimpTests : List String
ttimpTests
ttimpTests
= ["basic001", "basic002", "basic003", "basic004", "basic005",
"basic006",
"coverage001", "coverage002",
@ -28,7 +28,7 @@ idrisTests
"basic011", "basic012", "basic013", "basic014", "basic015",
"basic016", "basic017", "basic018", "basic019", "basic020",
"basic021", "basic022", "basic023", "basic024", "basic025",
"basic026", "basic027",
"basic026", "basic027", "basic028",
"coverage001", "coverage002", "coverage003", "coverage004",
"error001", "error002", "error003", "error004", "error005",
"error006", "error007", "error008", "error009", "error010",
@ -59,16 +59,16 @@ typeddTests
chezTests : List String
chezTests
= ["chez001", "chez002", "chez003", "chez004",
= ["chez001", "chez002", "chez003", "chez004",
"chez005", "chez006", "chez007"]
chdir : String -> IO Bool
chdir dir
chdir dir
= do ok <- foreign FFI_C "chdir" (String -> IO Int) dir
pure (ok == 0)
fail : String -> IO ()
fail err
fail err
= do putStrLn err
exitWith (ExitFailure 1)
@ -135,7 +135,7 @@ main
then runChezTests idris2 filteredChezTests
else pure []
let res = nonCGTestRes ++ chezTestRes
putStrLn (show (length (filter id res)) ++ "/" ++ show (length res)
putStrLn (show (length (filter id res)) ++ "/" ++ show (length res)
++ " tests successful")
if (any not res)
then exitWith (ExitFailure 1)
@ -143,4 +143,3 @@ main
where
testPaths : String -> List String -> List String
testPaths dir tests = map (\test => dir ++ "/" ++ test) tests

View File

@ -0,0 +1,49 @@
data Maybe a = Nothing
| Just a
infixl 1 >>=
(>>=) : Maybe a -> (a -> Maybe b) -> Maybe b
(>>=) Nothing k = Nothing
(>>=) (Just x) k = k x
data Nat : Type where
Z : Nat
S : Nat -> Nat
plus : Nat -> Nat -> Nat
plus Z y = y
plus (S k) y = S (plus k y)
maybeAdd' : Maybe Nat -> Maybe Nat -> Maybe Nat
maybeAdd' x y
= x >>= \x' =>
y >>= \y' =>
Just (plus x' y')
maybeAdd : Maybe Nat -> Maybe Nat -> Maybe Nat
maybeAdd x y
= do x' <- x
y' <- y
Just (plus x' y')
data Either : Type -> Type -> Type where
Left : a -> Either a b
Right : b -> Either a b
mEmbed : Maybe a -> Maybe (Either String a)
mEmbed Nothing = Just (Left "FAIL")
mEmbed (Just x) = Just (Right x)
mPatBind : Maybe Nat -> Maybe Nat -> Maybe Nat
mPatBind x y
= do Right res <- mEmbed (maybeAdd x y)
| Left err => Just Z
Just res
mLetBind : Maybe Nat -> Maybe Nat -> Maybe Nat
mLetBind x y
= do let Just res = maybeAdd x y
| Nothing => Just Z
Just res

View File

@ -0,0 +1,7 @@
Welcome to Idris 2 version 0.0. Enjoy yourself!
Main> 1/1: Building Do (Do.idr)
Main> Just (S (S (S Z)))
Main> Just Z
Main> Just (S (S (S Z)))
Main> Just Z
Main> Bye for now!

View File

@ -0,0 +1,6 @@
:l Do.idr
mPatBind (Just (S Z)) (Just (S (S Z)))
mPatBind (Just (S Z)) Nothing
mLetBind (Just (S Z)) (Just (S (S Z)))
mLetBind (Just (S Z)) Nothing
:q

5
tests/idris2/basic028/run Executable file
View File

@ -0,0 +1,5 @@
unset IDRIS2_PATH
$1 --no-prelude < input
rm -rf build