Skip to content

Commit

Permalink
Prevent code size explosion for Lucius (yesodweb/yesod#298)
Browse files Browse the repository at this point in the history
  • Loading branch information
snoyberg committed Mar 28, 2012
1 parent e80acd2 commit 0f82d58
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
2 changes: 1 addition & 1 deletion shakespeare-css/Text/Cassius.hs
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ import Text.Printf (printf)
import Language.Haskell.TH.Quote (QuasiQuoter (..)) import Language.Haskell.TH.Quote (QuasiQuoter (..))
import Language.Haskell.TH.Syntax import Language.Haskell.TH.Syntax
import Language.Haskell.TH import Language.Haskell.TH
import Data.Text.Lazy.Builder (fromText, fromLazyText) import Data.Text.Lazy.Builder (fromLazyText)
import Data.Maybe (catMaybes) import Data.Maybe (catMaybes)
import Data.Word (Word8) import Data.Word (Word8)
import Data.Bits import Data.Bits
Expand Down
14 changes: 12 additions & 2 deletions shakespeare-css/Text/Css.hs
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@
module Text.Css where module Text.Css where


import Data.List (intersperse, intercalate) import Data.List (intersperse, intercalate)
import Data.Text.Lazy.Builder (Builder, fromText, singleton, toLazyText, fromLazyText, fromString) import Data.Text.Lazy.Builder (Builder, singleton, toLazyText, fromLazyText, fromString)
import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.Builder as TLB
import Data.Monoid (mconcat, mappend, mempty) import Data.Monoid (mconcat, mappend, mempty)
import Data.Text (Text, pack) import Data.Text (Text)
import qualified Data.Text as T
import Language.Haskell.TH.Syntax import Language.Haskell.TH.Syntax
import System.IO.Unsafe (unsafePerformIO) import System.IO.Unsafe (unsafePerformIO)
import Text.ParserCombinators.Parsec (Parser, parse) import Text.ParserCombinators.Parsec (Parser, parse)
Expand All @@ -18,6 +20,14 @@ import Language.Haskell.TH
import Control.Applicative ((<$>), (<*>)) import Control.Applicative ((<$>), (<*>))
import Control.Arrow ((***)) import Control.Arrow ((***))


pack :: String -> Text
pack = T.pack
{-# NOINLINE pack #-}

fromText :: Text -> Builder
fromText = TLB.fromText
{-# NOINLINE fromText #-}

class ToCss a where class ToCss a where
toCss :: a -> Builder toCss :: a -> Builder


Expand Down
3 changes: 1 addition & 2 deletions shakespeare-css/Text/Lucius.hs
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import Text.Cassius hiding (cassius, cassiusFile, cassiusFileDebug, cassiusFileR
import Text.Shakespeare.Base import Text.Shakespeare.Base
import Language.Haskell.TH.Quote (QuasiQuoter (..)) import Language.Haskell.TH.Quote (QuasiQuoter (..))
import Language.Haskell.TH.Syntax import Language.Haskell.TH.Syntax
import Data.Text (Text, pack, unpack) import Data.Text (Text, unpack)
import qualified Data.Text.Lazy as TL import qualified Data.Text.Lazy as TL
import Text.ParserCombinators.Parsec hiding (Line) import Text.ParserCombinators.Parsec hiding (Line)
import Text.Css import Text.Css
Expand All @@ -30,7 +30,6 @@ import Numeric (readHex)
import Control.Applicative ((<$>)) import Control.Applicative ((<$>))
import Control.Monad (when) import Control.Monad (when)
import Data.Either (partitionEithers) import Data.Either (partitionEithers)
import Data.Text.Lazy.Builder (fromText)
import Data.Monoid (mconcat) import Data.Monoid (mconcat)


-- | -- |
Expand Down

0 comments on commit 0f82d58

Please sign in to comment.