mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-26 11:07:48 +03:00
Indicate execution mode to the scheme code generator
- The handling of command line arguments varies somewhat between different ways of evaluating scheme code, so some different wrappers need to be generated to run as a standalone output vs. running immediately like a script. The in-unison code generator needs an indication of which mode it should generate code for.
This commit is contained in:
parent
c2c37a8ae0
commit
4c62d73b8a
@ -2762,15 +2762,15 @@ buildScheme main file = do
|
||||
|
||||
doRunAsScheme :: HQ.HashQualified Name -> [String] -> Cli ()
|
||||
doRunAsScheme main args = do
|
||||
fullpath <- generateSchemeFile (HQ.toString main) main
|
||||
fullpath <- generateSchemeFile True (HQ.toString main) main
|
||||
runScheme fullpath args
|
||||
|
||||
doCompileScheme :: String -> HQ.HashQualified Name -> Cli ()
|
||||
doCompileScheme out main =
|
||||
generateSchemeFile out main >>= buildScheme out
|
||||
generateSchemeFile False out main >>= buildScheme out
|
||||
|
||||
generateSchemeFile :: String -> HQ.HashQualified Name -> Cli String
|
||||
generateSchemeFile out main = do
|
||||
generateSchemeFile :: Bool -> String -> HQ.HashQualified Name -> Cli String
|
||||
generateSchemeFile exec out main = do
|
||||
(comp, ppe) <- resolveMainRef main
|
||||
ensureCompilerExists
|
||||
doGenerateSchemeBoot False $ Just ppe
|
||||
@ -2786,7 +2786,7 @@ generateSchemeFile out main = do
|
||||
fpc = Term.constructor a fprf
|
||||
fp = Term.app a fpc outTm
|
||||
tm :: Term Symbol Ann
|
||||
tm = Term.apps' sscm [toCmp, fp]
|
||||
tm = Term.apps' sscm [Term.boolean a exec, toCmp, fp]
|
||||
typecheckAndEval ppe tm
|
||||
pure fullpath
|
||||
where
|
||||
|
Loading…
Reference in New Issue
Block a user