From 93ca892162442d289169d674f88f5c99b44fd733 Mon Sep 17 00:00:00 2001 From: Jonathan Cubides Date: Wed, 5 Apr 2023 20:17:41 +0200 Subject: [PATCH] Make tests happy --- app/Commands/Compile/Options.hs | 6 +++--- app/Commands/Dev/Asm/Compile/Options.hs | 9 ++++----- app/Commands/Dev/Runtime/Options.hs | 17 ++++++++++++++++- app/Commands/Extra/Compile/Options.hs | 9 ++++++--- app/TopCommand/Options.hs | 2 +- docs/reference/language/modules.md | 4 ++-- 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/Commands/Compile/Options.hs b/app/Commands/Compile/Options.hs index f49f32b80a..05eb9226c1 100644 --- a/app/Commands/Compile/Options.hs +++ b/app/Commands/Compile/Options.hs @@ -11,8 +11,8 @@ import Data.List.NonEmpty qualified as NonEmpty supportedTargets :: NonEmpty CompileTarget supportedTargets = NonEmpty.fromList allTargets -parseUserCompileOptions :: Parser CompileOptions -parseUserCompileOptions = +parseMainCompileOptions :: Parser CompileOptions +parseMainCompileOptions = parseCompileOptions supportedTargets - parseInputJuvixAsmFile + parseInputJuvixFile diff --git a/app/Commands/Dev/Asm/Compile/Options.hs b/app/Commands/Dev/Asm/Compile/Options.hs index 9e38bf7e88..2dc0d03078 100644 --- a/app/Commands/Dev/Asm/Compile/Options.hs +++ b/app/Commands/Dev/Asm/Compile/Options.hs @@ -13,11 +13,10 @@ type AsmCompileOptions = CompileOptions asmSupportedTargets :: NonEmpty CompileTarget asmSupportedTargets = NonEmpty.fromList - ( [ TargetWasm32Wasi, - TargetNative64, - TargetAsm - ] - ) + [ TargetWasm32Wasi, + TargetNative64 + ] + parseAsmCompileOptions :: Parser AsmCompileOptions parseAsmCompileOptions = diff --git a/app/Commands/Dev/Runtime/Options.hs b/app/Commands/Dev/Runtime/Options.hs index cd7746877b..b345a9ba1e 100644 --- a/app/Commands/Dev/Runtime/Options.hs +++ b/app/Commands/Dev/Runtime/Options.hs @@ -2,11 +2,26 @@ module Commands.Dev.Runtime.Options where import Commands.Dev.Runtime.Compile.Options import CommonOptions +import Data.List.NonEmpty qualified as NonEmpty newtype RuntimeCommand = Compile CompileOptions deriving stock (Data) +runtimeSupportedTargets :: NonEmpty CompileTarget +runtimeSupportedTargets = + NonEmpty.fromList + [ TargetWasm32Wasi, + TargetNative64 + ] + +parseRuntimeOptions :: Parser CompileOptions +parseRuntimeOptions = + parseCompileOptions + runtimeSupportedTargets + parseInputJuvixFile + + parseRuntimeCommand :: Parser RuntimeCommand parseRuntimeCommand = hsubparser $ @@ -20,5 +35,5 @@ parseRuntimeCommand = compileInfo :: ParserInfo RuntimeCommand compileInfo = info - (Compile <$> parseCompileOptions parseInputCFile) + (Compile <$> parseRuntimeOptions) (progDesc "Compile a C file with Juvix runtime included") diff --git a/app/Commands/Extra/Compile/Options.hs b/app/Commands/Extra/Compile/Options.hs index 1905036b94..bbf9cca916 100644 --- a/app/Commands/Extra/Compile/Options.hs +++ b/app/Commands/Extra/Compile/Options.hs @@ -87,15 +87,18 @@ optCompileTarget supportedTargets = <> metavar "TARGET" <> value TargetNative64 <> showDefault - <> help ("select a target: " <> show supportedTargets) - <> completeWith (map show (toList supportedTargets)) + <> help ("select a target: " <> show listTargets) + <> completeWith (map show listTargets) ) where + listTargets :: [CompileTarget] + listTargets = toList supportedTargets + parseTarget :: String -> Either String CompileTarget parseTarget txt = maybe err return $ lookup (map toLower txt) - [(Prelude.show t, t) | t <- toList supportedTargets] + [(Prelude.show t, t) | t <- listTargets] where err = Left $ "unrecognised target: " <> txt diff --git a/app/TopCommand/Options.hs b/app/TopCommand/Options.hs index 71e14d3ff8..ee65931266 100644 --- a/app/TopCommand/Options.hs +++ b/app/TopCommand/Options.hs @@ -144,7 +144,7 @@ commandCompile :: Mod CommandFields TopCommand commandCompile = command "compile" $ info - (Compile <$> parseUserCompileOptions) + (Compile <$> parseMainCompileOptions) (progDesc "Compile a Juvix file") commandEval :: Mod CommandFields TopCommand diff --git a/docs/reference/language/modules.md b/docs/reference/language/modules.md index 90daacf855..076dca8fb0 100644 --- a/docs/reference/language/modules.md +++ b/docs/reference/language/modules.md @@ -15,7 +15,7 @@ end; A Juvix project is a collection of Juvix modules inside one main project folder containing a metadata file named `juvix.yaml`. Each Juvix file has to define a module of the same name. The name of the -module must coincide with the path of the its file relative to its +module must coincide with the path of its file relative to its project's root directory. For example, if the file is `root/Data/List.juvix` then the module must be called `Data.List`, assuming `root` is the project's folder. @@ -115,7 +115,7 @@ We simplify it by the expression: open import Prelude; ``` -The `hiding` keyword can be used within an `open-import` statement. +The `hiding` keyword can be used within a `open-import` statement. ```juvix -- B.juvix