on master help sign in
Get __DEBUG and __PROD kernel flags working
commit298b6defafad8422404fd66cc789e02edcf9fd07 authorEvan Czaplicki <evancz@users.noreply.github.com> dateWed 13 Sep 2017, 14:33 (9 years ago) parent375ed59
4 files changed+20−16
src/AST/Kernel.hs+6−5 src/Generate/JavaScript.hs+5−6 src/Parse/Kernel.hs+5−2 src/Parse/Primitives.hs+4−3
src/AST/Kernel.hs+6−5
@@ -29,7 +29,8 @@ data Chunk
2929 = JS BS.ByteString
3030 | Var ModuleName.Raw Text.Text
3131 | Field Text.Text
32− | Debug Bool
32+ | Debug
33+ | Prod
3334
3435
3536
@@ -56,10 +57,10 @@ instance Binary Chunk where
5657 Field field ->
5758 putWord8 2 >> put field
5859
59− Debug True ->
60+ Debug ->
6061 putWord8 3
6162
62− Debug False ->
63+ Prod ->
6364 putWord8 4
6465
6566 get =
@@ -68,6 +69,6 @@ instance Binary Chunk where
6869 0 -> liftM JS get
6970 1 -> liftM2 Var get get
7071 2 -> liftM Field get
71− 3 -> return (Debug True)
72− 4 -> return (Debug False)
72+ 3 -> return Debug
73+ 4 -> return Prod
7374 _ -> error "problem deserializing Parse.Kernel.Chunk"
src/Generate/JavaScript.hs+5−6
@@ -164,12 +164,11 @@ chunkToBuilder debug builder chunk =
164164 -- TODO generate a smaller field
165165 return $ Text.encodeUtf8Builder name <> builder
166166
167− Kernel.Debug isDebug ->
168− -- TODO pick based on what compile mode we are in
169− if isDebug && debug then
170− return builder
171− else
172− return $ "_UNUSED" <> builder
167+ Kernel.Debug ->
168+ return $ if debug then builder else "_UNUSED" <> builder
169+
170+ Kernel.Prod ->
171+ return $ if debug then "_UNUSED" <> builder else builder
173172
174173
175174
src/Parse/Kernel.hs+5−2
@@ -47,8 +47,11 @@ parserHelp imports enums fields chunks =
4747
4848 Just tag ->
4949 case tag of
50− Parse.KernelDebug isDebug ->
51− parserHelp imports enums fields (Kernel.Debug isDebug : Kernel.JS javascript : chunks)
50+ Parse.KernelProd ->
51+ parserHelp imports enums fields (Kernel.Prod : Kernel.JS javascript : chunks)
52+
53+ Parse.KernelDebug ->
54+ parserHelp imports enums fields (Kernel.Debug : Kernel.JS javascript : chunks)
5255
5356 Parse.KernelImport var ->
5457 case Map.lookup var imports of
src/Parse/Primitives.hs+4−3
@@ -1417,7 +1417,8 @@ eatShader array offset length row col =
14171417
14181418data ChunkTag
14191419 = KernelEnum Word8 Text
1420− | KernelDebug Bool
1420+ | KernelProd
1421+ | KernelDebug
14211422 | KernelImport Text
14221423 | KernelJsField Text
14231424 | KernelElmField Text
@@ -1483,10 +1484,10 @@ chompChunkTag array jsOffset offset length row col =
14831484 KernelJsField chunk
14841485
14851486 else if chunk == "DEBUG" then
1486− KernelDebug False
1487+ KernelDebug
14871488
14881489 else if chunk == "PROD" then
1489− KernelDebug True
1490+ KernelProd
14901491
14911492 else
14921493 KernelImport chunk