on master help sign in
Rename --debug flag to --optimize
f609efaEvan Czaplicki
compiler/src/Generate/JavaScript.hs+9−9
@@ -37,7 +37,7 @@ import qualified Reporting.Helpers as H
37-- GENERATE MAINS
37-- GENERATE MAINS
38
38
39
39
40−data Mode = Debug | Prod
40+data Mode = Dev | Prod
41
41
42
42
43data Output
43data Output
@@ -72,8 +72,8 @@ addMain mode graph home _ state =
72toRealMode :: Mode -> Name.Target -> Map.Map N.Name Int -> Name.Mode
72toRealMode :: Mode -> Name.Target -> Map.Map N.Name Int -> Name.Mode
73toRealMode mode target fields =
73toRealMode mode target fields =
74 case mode of
74 case mode of
75− Debug ->
75+ Dev ->
76− Name.Debug target
76+ Name.Dev target
77
77
78 Prod ->
78 Prod ->
79 Name.Prod target (Name.shortenFieldNames fields)
79 Name.Prod target (Name.shortenFieldNames fields)
@@ -86,7 +86,7 @@ toRealMode mode target fields =
86generateForRepl :: Opt.Graph -> I.Interface -> ModuleName.Canonical -> N.Name -> B.Builder
86generateForRepl :: Opt.Graph -> I.Interface -> ModuleName.Canonical -> N.Name -> B.Builder
87generateForRepl (Opt.Graph _ graph _) iface home name =
87generateForRepl (Opt.Graph _ graph _) iface home name =
88 let
88 let
89− mode = Name.Debug Name.Server
89+ mode = Name.Dev Name.Server
90 debugState = addGlobal mode graph emptyState (Opt.Global ModuleName.debug "toString")
90 debugState = addGlobal mode graph emptyState (Opt.Global ModuleName.debug "toString")
91 evalState = addGlobal mode graph debugState (Opt.Global home name)
91 evalState = addGlobal mode graph debugState (Opt.Global home name)
92 in
92 in
@@ -239,7 +239,7 @@ generateCycle mode (Opt.Global home _) cycle =
239 Name.Prod _ _ ->
239 Name.Prod _ _ ->
240 block
240 block
241
241
242− Name.Debug _ ->
242+ Name.Dev _ ->
243 JS.Try block Name.dollar $ JS.Throw $ JS.String $
243 JS.Try block Name.dollar $ JS.Throw $ JS.String $
244 "The following top-level definitions are causing infinite recursion:\\n"
244 "The following top-level definitions are causing infinite recursion:\\n"
245 <> drawCycle (map fst cycle)
245 <> drawCycle (map fst cycle)
@@ -311,7 +311,7 @@ addChunk mode builder chunk =
311
311
312 Opt.Debug ->
312 Opt.Debug ->
313 case mode of
313 case mode of
314− Name.Debug _ ->
314+ Name.Dev _ ->
315 builder
315 builder
316
316
317 Name.Prod _ _ ->
317 Name.Prod _ _ ->
@@ -319,7 +319,7 @@ addChunk mode builder chunk =
319
319
320 Opt.Prod ->
320 Opt.Prod ->
321 case mode of
321 case mode of
322− Name.Debug _ ->
322+ Name.Dev _ ->
323 "_UNUSED" <> builder
323 "_UNUSED" <> builder
324
324
325 Name.Prod _ _ ->
325 Name.Prod _ _ ->
@@ -335,7 +335,7 @@ generateEnum mode (Opt.Global home name) ctorName index =
335 let
335 let
336 definition =
336 definition =
337 case mode of
337 case mode of
338− Name.Debug _ ->
338+ Name.Dev _ ->
339 Expr.codeToExpr (Expr.generateCtor mode ctorName index 0)
339 Expr.codeToExpr (Expr.generateCtor mode ctorName index 0)
340
340
341 Name.Prod _ _ ->
341 Name.Prod _ _ ->
@@ -353,7 +353,7 @@ generateBox mode (Opt.Global home name) ctorName =
353 let
353 let
354 definition =
354 definition =
355 case mode of
355 case mode of
356− Name.Debug _ ->
356+ Name.Dev _ ->
357 Expr.codeToExpr (Expr.generateCtor mode ctorName Index.first 1)
357 Expr.codeToExpr (Expr.generateCtor mode ctorName Index.first 1)
358
358
359 Name.Prod _ _ ->
359 Name.Prod _ _ ->
compiler/src/Generate/JavaScript/Expression.hs+14−14
@@ -58,7 +58,7 @@ generate mode expression =
58 Opt.Chr char ->
58 Opt.Chr char ->
59 JsExpr $
59 JsExpr $
60 case mode of
60 case mode of
61− Name.Debug _ ->
61+ Name.Dev _ ->
62 JS.Call toChar [ JS.String (Text.encodeUtf8Builder char) ]
62 JS.Call toChar [ JS.String (Text.encodeUtf8Builder char) ]
63
63
64 Name.Prod _ _ ->
64 Name.Prod _ _ ->
@@ -81,7 +81,7 @@ generate mode expression =
81
81
82 Opt.VarEnum (Opt.Global home name) index ->
82 Opt.VarEnum (Opt.Global home name) index ->
83 case mode of
83 case mode of
84− Name.Debug _ ->
84+ Name.Dev _ ->
85 JsExpr $ JS.Ref (Name.fromGlobal home name)
85 JsExpr $ JS.Ref (Name.fromGlobal home name)
86
86
87 Name.Prod _ _ ->
87 Name.Prod _ _ ->
@@ -90,7 +90,7 @@ generate mode expression =
90 Opt.VarBox (Opt.Global home name) ->
90 Opt.VarBox (Opt.Global home name) ->
91 JsExpr $ JS.Ref $
91 JsExpr $ JS.Ref $
92 case mode of
92 case mode of
93− Name.Debug _ -> Name.fromGlobal home name
93+ Name.Dev _ -> Name.fromGlobal home name
94 Name.Prod _ _ -> Name.fromGlobal ModuleName.basics N.identity
94 Name.Prod _ _ -> Name.fromGlobal ModuleName.basics N.identity
95
95
96 Opt.VarCycle home name ->
96 Opt.VarCycle home name ->
@@ -161,7 +161,7 @@ generate mode expression =
161
161
162 Opt.Unit ->
162 Opt.Unit ->
163 case mode of
163 case mode of
164− Name.Debug _ ->
164+ Name.Dev _ ->
165 JsExpr $ JS.Ref (Name.fromKernel N.utils "Tuple0")
165 JsExpr $ JS.Ref (Name.fromKernel N.utils "Tuple0")
166
166
167 Name.Prod _ _ ->
167 Name.Prod _ _ ->
@@ -261,7 +261,7 @@ generateCtor mode name index arity =
261
261
262 ctorTag =
262 ctorTag =
263 case mode of
263 case mode of
264− Name.Debug _ -> JS.String (N.toBuilder name)
264+ Name.Dev _ -> JS.String (N.toBuilder name)
265 Name.Prod _ _ -> JS.Int (Index.toMachine index)
265 Name.Prod _ _ -> JS.Int (Index.toMachine index)
266 in
266 in
267 generateFunction argNames $ JsExpr $ JS.Object $
267 generateFunction argNames $ JsExpr $ JS.Object $
@@ -363,7 +363,7 @@ generateCall mode func args =
363
363
364 Opt.VarBox _ ->
364 Opt.VarBox _ ->
365 case mode of
365 case mode of
366− Name.Debug _ ->
366+ Name.Dev _ ->
367 generateCallHelp mode func args
367 generateCallHelp mode func args
368
368
369 Name.Prod _ _ ->
369 Name.Prod _ _ ->
@@ -744,7 +744,7 @@ generatePath mode path =
744
744
745 Opt.Unbox subPath ->
745 Opt.Unbox subPath ->
746 case mode of
746 case mode of
747− Name.Debug _ ->
747+ Name.Dev _ ->
748 JS.Access (generatePath mode subPath) (Name.fromIndex Index.first)
748 JS.Access (generatePath mode subPath) (Name.fromIndex Index.first)
749
749
750 Name.Prod _ _ ->
750 Name.Prod _ _ ->
@@ -872,7 +872,7 @@ generateIfTest mode root (path, test) =
872 DT.IsCtor name index _ _ ->
872 DT.IsCtor name index _ _ ->
873 strictEq (JS.Access value Name.dollar) $
873 strictEq (JS.Access value Name.dollar) $
874 case mode of
874 case mode of
875− Name.Debug _ -> JS.String (N.toBuilder name)
875+ Name.Dev _ -> JS.String (N.toBuilder name)
876 Name.Prod _ _ -> JS.Int (Index.toMachine index)
876 Name.Prod _ _ -> JS.Int (Index.toMachine index)
877
877
878 DT.IsInt int ->
878 DT.IsInt int ->
@@ -881,7 +881,7 @@ generateIfTest mode root (path, test) =
881 DT.IsChr char ->
881 DT.IsChr char ->
882 strictEq (JS.String (Text.encodeUtf8Builder char)) $
882 strictEq (JS.String (Text.encodeUtf8Builder char)) $
883 case mode of
883 case mode of
884− Name.Debug _ -> JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
884+ Name.Dev _ -> JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
885 Name.Prod _ _ -> value
885 Name.Prod _ _ -> value
886
886
887 DT.IsStr string ->
887 DT.IsStr string ->
@@ -911,7 +911,7 @@ generateCaseValue mode test =
911 case test of
911 case test of
912 DT.IsCtor name index _ _ ->
912 DT.IsCtor name index _ _ ->
913 case mode of
913 case mode of
914− Name.Debug _ -> JS.String (N.toBuilder name)
914+ Name.Dev _ -> JS.String (N.toBuilder name)
915 Name.Prod _ _ -> JS.Int (Index.toMachine index)
915 Name.Prod _ _ -> JS.Int (Index.toMachine index)
916
916
917 DT.IsInt int ->
917 DT.IsInt int ->
@@ -941,7 +941,7 @@ generateCaseTest mode root path exampleTest =
941 case exampleTest of
941 case exampleTest of
942 DT.IsCtor _ _ _ opts ->
942 DT.IsCtor _ _ _ opts ->
943 case mode of
943 case mode of
944− Name.Debug _ ->
944+ Name.Dev _ ->
945 JS.Access value Name.dollar
945 JS.Access value Name.dollar
946
946
947 Name.Prod _ _ ->
947 Name.Prod _ _ ->
@@ -963,7 +963,7 @@ generateCaseTest mode root path exampleTest =
963
963
964 DT.IsChr _ ->
964 DT.IsChr _ ->
965 case mode of
965 case mode of
966− Name.Debug _ ->
966+ Name.Dev _ ->
967 JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
967 JS.Call (JS.Access value (Name.fromLocal "valueOf")) []
968
968
969 Name.Prod _ _ ->
969 Name.Prod _ _ ->
@@ -991,7 +991,7 @@ pathToJsExpr mode root path =
991
991
992 DT.Unbox subPath ->
992 DT.Unbox subPath ->
993 case mode of
993 case mode of
994− Name.Debug _ ->
994+ Name.Dev _ ->
995 JS.Access (pathToJsExpr mode root subPath) (Name.fromIndex Index.first)
995 JS.Access (pathToJsExpr mode root subPath) (Name.fromIndex Index.first)
996
996
997 Name.Prod _ _ ->
997 Name.Prod _ _ ->
@@ -1031,7 +1031,7 @@ toDebugMetadata mode interfaces msgType =
1031 Name.Prod _ _ ->
1031 Name.Prod _ _ ->
1032 JS.Int 0
1032 JS.Int 0
1033
1033
1034− Name.Debug _ ->
1034+ Name.Dev _ ->
1035 JS.Json $ Encode.object $
1035 JS.Json $ Encode.object $
1036 [ ("versions", Encode.object [ ("elm", Pkg.encodeVersion Version.version) ])
1036 [ ("versions", Encode.object [ ("elm", Pkg.encodeVersion Version.version) ])
1037 , ("types", Type.encodeMetadata (Extract.fromMsg interfaces msgType))
1037 , ("types", Type.encodeMetadata (Extract.fromMsg interfaces msgType))
compiler/src/Generate/JavaScript/Name.hs+3−3
@@ -53,7 +53,7 @@ newtype Name =
53
53
54
54
55data Mode
55data Mode
56− = Debug Target
56+ = Dev Target
57 | Prod Target ShortFieldNames
57 | Prod Target ShortFieldNames
58
58
59
59
@@ -67,7 +67,7 @@ type ShortFieldNames =
67isServer :: Mode -> Bool
67isServer :: Mode -> Bool
68isServer mode =
68isServer mode =
69 case mode of
69 case mode of
70− Debug target -> isServerHelp target
70+ Dev target -> isServerHelp target
71 Prod target _ -> isServerHelp target
71 Prod target _ -> isServerHelp target
72
72
73
73
@@ -124,7 +124,7 @@ fromKernel home name =
124fromField :: Mode -> N.Name -> Name
124fromField :: Mode -> N.Name -> Name
125fromField mode name =
125fromField mode name =
126 case mode of
126 case mode of
127− Debug _ ->
127+ Dev _ ->
128 Name (N.toBuilder name)
128 Name (N.toBuilder name)
129
129
130 Prod _ fields ->
130 Prod _ fields ->
ui/terminal/src/Main.hs+1−1
@@ -173,7 +173,7 @@ make =
173
173
174 makeFlags =
174 makeFlags =
175 flags Make.Flags
175 flags Make.Flags
176− |-- onOff "debug" "Turn on debug mode. This allows you to (1) use functions like Debug.log and Debug.crash and (2) use the interactive debugger to rewind your programs."
176+ |-- onOff "optimize" "Turn on optimizations to make code smaller and faster. For example, the compiler renames record fields to be as short as possible and unboxes values to reduce allocation."
177 |-- flag "output" Output.output "Specify the name of the resulting JS file. For example --output=assets/elm.js to generate the JS at assets/elm.js or --output=/dev/null to generate no output at all!"
177 |-- flag "output" Output.output "Specify the name of the resulting JS file. For example --output=assets/elm.js to generate the JS at assets/elm.js or --output=/dev/null to generate no output at all!"
178 |-- flag "report" Make.reportType "You can say --report=json to get error messages as JSON. This is only really useful if you are an editor plugin. Humans should avoid it!"
178 |-- flag "report" Make.reportType "You can say --report=json to get error messages as JSON. This is only really useful if you are an editor plugin. Humans should avoid it!"
179 |-- flag "docs" Make.docsFile "Generate a JSON file of documentation for your project. Eventually it will be possible to preview docs with `reactor` because it is quite hard to deal with these JSON files directly."
179 |-- flag "docs" Make.docsFile "Generate a JSON file of documentation for your project. Eventually it will be possible to preview docs with `reactor` because it is quite hard to deal with these JSON files directly."
ui/terminal/src/Make.hs+3−3
@@ -26,7 +26,7 @@ import Terminal.Args (Parser(..), suggestFiles)
26
26
27data Flags =
27data Flags =
28 Flags
28 Flags
29− { _debug :: Bool
29+ { _optimize :: Bool
30 , _output :: Maybe Output.Output
30 , _output :: Maybe Output.Output
31 , _report :: Maybe ReportType
31 , _report :: Maybe ReportType
32 , _docs :: Maybe FilePath
32 , _docs :: Maybe FilePath
@@ -34,10 +34,10 @@ data Flags =
34
34
35
35
36run :: [FilePath] -> Flags -> IO ()
36run :: [FilePath] -> Flags -> IO ()
37−run paths (Flags debug output report docs) =
37+run paths (Flags optimize output report docs) =
38 let
38 let
39 mode =
39 mode =
40− if debug then Obj.Debug else Obj.Prod
40+ if optimize then Obj.Prod else Obj.Dev
41
41
42 outputOptions =
42 outputOptions =
43 Output.Options mode Obj.Client output
43 Output.Options mode Obj.Client output