on master help sign in
Get __DEBUG and __PROD kernel flags working
298b6deEvan Czaplicki
src/AST/Kernel.hs+6−5
@@ -29,7 +29,8 @@ data Chunk
29 = JS BS.ByteString
29 = JS BS.ByteString
30 | Var ModuleName.Raw Text.Text
30 | Var ModuleName.Raw Text.Text
31 | Field Text.Text
31 | Field Text.Text
32− | Debug Bool
32+ | Debug
33+ | Prod
33
34
34
35
35
36
@@ -56,10 +57,10 @@ instance Binary Chunk where
56 Field field ->
57 Field field ->
57 putWord8 2 >> put field
58 putWord8 2 >> put field
58
59
59− Debug True ->
60+ Debug ->
60 putWord8 3
61 putWord8 3
61
62
62− Debug False ->
63+ Prod ->
63 putWord8 4
64 putWord8 4
64
65
65 get =
66 get =
@@ -68,6 +69,6 @@ instance Binary Chunk where
68 0 -> liftM JS get
69 0 -> liftM JS get
69 1 -> liftM2 Var get get
70 1 -> liftM2 Var get get
70 2 -> liftM Field get
71 2 -> liftM Field get
71− 3 -> return (Debug True)
72+ 3 -> return Debug
72− 4 -> return (Debug False)
73+ 4 -> return Prod
73 _ -> error "problem deserializing Parse.Kernel.Chunk"
74 _ -> error "problem deserializing Parse.Kernel.Chunk"
src/Generate/JavaScript.hs+5−6
@@ -164,12 +164,11 @@ chunkToBuilder debug builder chunk =
164 -- TODO generate a smaller field
164 -- TODO generate a smaller field
165 return $ Text.encodeUtf8Builder name <> builder
165 return $ Text.encodeUtf8Builder name <> builder
166
166
167− Kernel.Debug isDebug ->
167+ Kernel.Debug ->
168− -- TODO pick based on what compile mode we are in
168+ return $ if debug then builder else "_UNUSED" <> builder
169− if isDebug && debug then
169+
170− return builder
170+ Kernel.Prod ->
171− else
172− return $ "_UNUSED" <> builder
171+ return $ if debug then "_UNUSED" <> builder else builder
173
172
174
173
175
174
src/Parse/Kernel.hs+5−2
@@ -47,8 +47,11 @@ parserHelp imports enums fields chunks =
47
47
48 Just tag ->
48 Just tag ->
49 case tag of
49 case tag of
50+ Parse.KernelProd ->
51+ parserHelp imports enums fields (Kernel.Prod : Kernel.JS javascript : chunks)
52+
50− Parse.KernelDebug isDebug ->
53+ Parse.KernelDebug ->
51− parserHelp imports enums fields (Kernel.Debug isDebug : Kernel.JS javascript : chunks)
54+ parserHelp imports enums fields (Kernel.Debug : Kernel.JS javascript : chunks)
52
55
53 Parse.KernelImport var ->
56 Parse.KernelImport var ->
54 case Map.lookup var imports of
57 case Map.lookup var imports of
src/Parse/Primitives.hs+4−3
@@ -1417,7 +1417,8 @@ eatShader array offset length row col =
1417
1417
1418data ChunkTag
1418data ChunkTag
1419 = KernelEnum Word8 Text
1419 = KernelEnum Word8 Text
1420+ | KernelProd
1420− | KernelDebug Bool
1421+ | KernelDebug
1421 | KernelImport Text
1422 | KernelImport Text
1422 | KernelJsField Text
1423 | KernelJsField Text
1423 | KernelElmField Text
1424 | KernelElmField Text
@@ -1483,10 +1484,10 @@ chompChunkTag array jsOffset offset length row col =
1483 KernelJsField chunk
1484 KernelJsField chunk
1484
1485
1485 else if chunk == "DEBUG" then
1486 else if chunk == "DEBUG" then
1486− KernelDebug False
1487+ KernelDebug
1487
1488
1488 else if chunk == "PROD" then
1489 else if chunk == "PROD" then
1489− KernelDebug True
1490+ KernelProd
1490
1491
1491 else
1492 else
1492 KernelImport chunk
1493 KernelImport chunk