on master help sign in
Use ByteStrings in Kernel chunks
3db3bdfEvan Czaplicki
src/Parse/Kernel.hs+2−1
@@ -6,6 +6,7 @@ module Parse.Kernel
6 )
6 )
7 where
7 where
8
8
9+import qualified Data.ByteString as BS
9import qualified Data.Map as Map
10import qualified Data.Map as Map
10import Data.Monoid ((<>))
11import Data.Monoid ((<>))
11import Data.Text (Text)
12import Data.Text (Text)
@@ -25,7 +26,7 @@ import qualified Reporting.Annotation as A
25
26
26
27
27data Chunk
28data Chunk
28− = JS Text
29+ = JS BS.ByteString
29 | Var Module.Raw Text
30 | Var Module.Raw Text
30
31
31
32
src/Parse/Primitives.hs+4−2
@@ -22,12 +22,14 @@ module Parse.Primitives
22import Prelude hiding (length)
22import Prelude hiding (length)
23import qualified Control.Applicative as Applicative ( Applicative(..), Alternative(..) )
23import qualified Control.Applicative as Applicative ( Applicative(..), Alternative(..) )
24import Control.Monad
24import Control.Monad
25+import qualified Data.ByteString as BS
25import qualified Data.Char as Char
26import qualified Data.Char as Char
26import Data.Monoid ((<>))
27import Data.Monoid ((<>))
27import qualified Data.Set as Set
28import qualified Data.Set as Set
28import Data.Text (Text)
29import Data.Text (Text)
29import qualified Data.Text as Text
30import qualified Data.Text as Text
30import qualified Data.Text.Array as Text
31import qualified Data.Text.Array as Text
32+import qualified Data.Text.Encoding as Text
31import qualified Data.Text.Internal as Text
33import qualified Data.Text.Internal as Text
32import qualified Data.Text.Unsafe as Text
34import qualified Data.Text.Unsafe as Text
33import qualified Data.Text.Lazy as LT
35import qualified Data.Text.Lazy as LT
@@ -1305,7 +1307,7 @@ eatShader array offset length row col =
1305-- KERNEL CHOMP
1307-- KERNEL CHOMP
1306
1308
1307
1309
1308−kernelChunk :: Parser (Either Text (Text, Text))
1310+kernelChunk :: Parser (Either BS.ByteString (BS.ByteString, Text))
1309kernelChunk =
1311kernelChunk =
1310 Parser $ \(State array offset length indent row col ctx) cok _ _ _ ->
1312 Parser $ \(State array offset length indent row col ctx) cok _ _ _ ->
1311 let
1313 let
@@ -1313,7 +1315,7 @@ kernelChunk =
1313 kernelChunkHelp array offset length row col
1315 kernelChunkHelp array offset length row col
1314
1316
1315 javascript =
1317 javascript =
1316− Text.Text array offset (newOffset - offset)
1318+ Text.encodeUtf8 (Text.Text array offset (newOffset - offset))
1317 in
1319 in
1318 if not isAtUnderscores then
1320 if not isAtUnderscores then
1319
1321