ihaskell 0.9.0.3 → 0.9.1.0
raw patch · 10 files changed
+154/−12 lines, 10 filesdep ~ipython-kernel
Dependency ranges changed: ipython-kernel
Files
- html/logo-64x64.png binary
- html/logo-64x64.svg +89/−0
- ihaskell.cabal +3/−3
- main/Main.hs +9/−1
- src/IHaskell/Display.hs +39/−0
- src/IHaskell/Eval/Parser.hs +4/−1
- src/IHaskell/Eval/Widgets.hs +4/−4
- src/IHaskell/IPython.hs +1/−1
- src/IHaskell/Publish.hs +1/−1
- src/tests/IHaskell/Test/Parser.hs +4/−1
− html/logo-64x64.png
binary file changed (2924 → absent bytes)
+ html/logo-64x64.svg view
@@ -0,0 +1,89 @@+<?xml version="1.0" encoding="UTF-8" standalone="no"?>+<svg+ xmlns:dc="http://purl.org/dc/elements/1.1/"+ xmlns:cc="http://creativecommons.org/ns#"+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"+ xmlns:svg="http://www.w3.org/2000/svg"+ xmlns="http://www.w3.org/2000/svg"+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"+ width="64"+ height="64"+ viewBox="0 0 48.000001 47.999999"+ version="1.1"+ id="svg18"+ sodipodi:docname="haskell_logo.svg"+ inkscape:version="0.92.3 (unknown)">+ <metadata+ id="metadata22">+ <rdf:RDF>+ <cc:Work+ rdf:about="">+ <dc:format>image/svg+xml</dc:format>+ <dc:type+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />+ <dc:title></dc:title>+ </cc:Work>+ </rdf:RDF>+ </metadata>+ <sodipodi:namedview+ pagecolor="#ffffff"+ bordercolor="#666666"+ borderopacity="1"+ objecttolerance="10"+ gridtolerance="10"+ guidetolerance="10"+ inkscape:pageopacity="0"+ inkscape:pageshadow="2"+ inkscape:window-width="2495"+ inkscape:window-height="1416"+ id="namedview20"+ showgrid="false"+ units="px"+ inkscape:zoom="4.9870803"+ inkscape:cx="87.017073"+ inkscape:cy="4.4960944"+ inkscape:window-x="65"+ inkscape:window-y="24"+ inkscape:window-maximized="1"+ inkscape:current-layer="svg18" />+ <defs+ id="defs5">+ <clipPath+ id="clip1">+ <path+ d="M 0,340.15625 H 481.89062 V 0 H 0 Z m 0,0"+ id="path2"+ inkscape:connector-curvature="0" />+ </clipPath>+ </defs>+ <g+ id="surface0"+ transform="matrix(0.09960767,0,0,0.09960767,-0.1503886,5.8491832)">+ <g+ clip-path="url(#clip1)"+ id="g15"+ style="clip-rule:nonzero">+ <path+ style="fill:#453b61;fill-opacity:1;fill-rule:nonzero;stroke:none"+ d="M 0,340.15625 113.38672,170.07812 0,0 H 85.039062 L 198.42578,170.07812 85.039062,340.15625 Z m 0,0"+ id="path7"+ inkscape:connector-curvature="0" />+ <path+ style="fill:#5f5286;fill-opacity:1;fill-rule:nonzero;stroke:none"+ d="M 113.38672,340.15625 226.77344,170.07812 113.38672,0 h 85.03906 L 425.19531,340.15625 H 340.15625 L 269.29297,233.85937 198.42578,340.15625 Z m 0,0"+ id="path9"+ inkscape:connector-curvature="0" />+ <path+ style="fill:#8e508a;fill-opacity:1;fill-rule:nonzero;stroke:none"+ d="m 387.40234,240.94531 -37.79297,-56.6914 132.28125,-0.004 v 56.69531 z m 0,0"+ id="path11"+ inkscape:connector-curvature="0" />+ <path+ style="fill:#8e508a;fill-opacity:1;fill-rule:nonzero;stroke:none"+ d="m 330.71094,155.90625 -37.79688,-56.691406 188.97656,-0.0039 v 56.695316 z m 0,0"+ id="path13"+ inkscape:connector-curvature="0" />+ </g>+ </g>+</svg>
ihaskell.cabal view
@@ -7,7 +7,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.9.0.3+version: 0.9.1.0 -- A short (one-line) description of the package. synopsis: A Haskell backend kernel for the IPython project.@@ -44,7 +44,7 @@ data-files: html/kernel.js- html/logo-64x64.png+ html/logo-64x64.svg flag binPkgDb default: False@@ -87,7 +87,7 @@ utf8-string -any, uuid >=1.3, vector -any,- ipython-kernel >=0.8.4+ ipython-kernel >=0.9.1 if flag(binPkgDb) build-depends: bin-package-db
main/Main.hs view
@@ -255,7 +255,13 @@ -- Reply to kernel info requests with a kernel info reply. No computation needs to be done, as a -- kernel info reply is a static object (all info is hard coded into the representation of that -- message type).-replyTo _ KernelInfoRequest{} replyHeader state =+replyTo interface KernelInfoRequest{} replyHeader state = do+ let send msg = liftIO $ writeChan (iopubChannel interface) msg++ -- Notify the frontend that the Kernel is idle + idleHeader <- liftIO $ dupHeader replyHeader StatusMessage+ send $ PublishStatus idleHeader Idle+ return (state, KernelInfoReply { header = replyHeader@@ -268,7 +274,9 @@ , languageVersion = VERSION_ghc , languageFileExtension = ".hs" , languageCodeMirrorMode = "ihaskell"+ , languagePygmentsLexer = "Haskell" }+ , status = Ok }) replyTo _ CommInfoRequest{} replyHeader state =
src/IHaskell/Display.hs view
@@ -25,11 +25,18 @@ -- * Constructors for displays plain, html,+ bmp, png, jpg,+ gif, svg, latex,+ markdown, javascript,+ json,+ vega,+ vegalite,+ vdom, many, -- ** Image and data encoding functions@@ -118,6 +125,38 @@ -- | Generate a Javascript display. javascript :: String -> DisplayData javascript = DisplayData MimeJavascript . T.pack++-- | Generate a Json display.+json :: String -> DisplayData+json = DisplayData MimeJson . T.pack++-- | Generate a Vega display.+vega :: String -> DisplayData+vega = DisplayData MimeVega . T.pack++-- | Generate a Vegalite display.+vegalite :: String -> DisplayData+vegalite = DisplayData MimeVegalite . T.pack++-- | Generate a Vdom display.+vdom :: String -> DisplayData+vdom = DisplayData MimeVdom . T.pack++-- | Generate a Markdown display.+markdown :: String -> DisplayData+markdown = DisplayData MimeMarkdown . T.pack++-- | Generate a GIF display of the given width and height. Data must be provided in a Base64 encoded+-- manner, suitable for embedding into HTML. The @base64@ function may be used to encode data into+-- this format.+gif :: Width -> Height -> Base64 -> DisplayData+gif width height = DisplayData (MimeGif width height)++-- | Generate a BMP display of the given width and height. Data must be provided in a Base64 encoded+-- manner, suitable for embedding into HTML. The @base64@ function may be used to encode data into+-- this format.+bmp :: Width -> Height -> Base64 -> DisplayData+bmp width height = DisplayData (MimeBmp width height) -- | Generate a PNG display of the given width and height. Data must be provided in a Base64 encoded -- manner, suitable for embedding into HTML. The @base64@ function may be used to encode data into
src/IHaskell/Eval/Parser.hs view
@@ -22,6 +22,7 @@ import qualified Data.ByteString.Lazy as LBS import qualified Data.ByteString.Char8 as CBS +import Data.Char (toLower) import Data.List (maximumBy, inits) import Prelude (head, tail) import Control.Monad (msum)@@ -246,7 +247,9 @@ in case pragmas of --empty string pragmas are unsupported [] -> Pragma (PragmaUnsupported "") []- "LANGUAGE":xs -> Pragma PragmaLanguage xs+ x:xs+ | map toLower x == "language"+ -> Pragma PragmaLanguage xs x:xs -> Pragma (PragmaUnsupported x) xs -- | Parse a directive of the form :directiveName.
src/IHaskell/Eval/Widgets.hs view
@@ -145,7 +145,7 @@ DispMsg widget disp -> do dispHeader <- dupHeader replyHeader DisplayDataMessage- let dmsg = WidgetDisplay dispHeader "haskell" $ unwrap disp+ let dmsg = WidgetDisplay dispHeader $ unwrap disp sendMessage widget (toJSON $ CustomContent $ toJSON dmsg) ClrOutput widget wait -> do@@ -170,11 +170,11 @@ unwrap (Display ddatas) = ddatas -- Override toJSON for PublishDisplayData for sending Display messages through [method .= custom]-data WidgetDisplay = WidgetDisplay MessageHeader String [DisplayData]+data WidgetDisplay = WidgetDisplay MessageHeader [DisplayData] instance ToJSON WidgetDisplay where- toJSON (WidgetDisplay replyHeader source ddata) =- let pbval = toJSON $ PublishDisplayData replyHeader source ddata+ toJSON (WidgetDisplay replyHeader ddata) =+ let pbval = toJSON $ PublishDisplayData replyHeader ddata in toJSON $ IPythonMessage replyHeader pbval DisplayDataMessage -- Override toJSON for ClearOutput
src/IHaskell/IPython.hs view
@@ -213,7 +213,7 @@ SH.mkdir_p kernelDir SH.writefile filename $ LT.toStrict $ toLazyText $ encodeToTextBuilder $ toJSON kernelSpec- let files = ["kernel.js", "logo-64x64.png"]+ let files = ["kernel.js", "logo-64x64.svg"] forM_ files $ \file -> do src <- liftIO $ Paths.getDataFileName $ "html/" ++ file SH.cp (SH.fromText $ T.pack src) (tmp SH.</> kernelName SH.</> file)
src/IHaskell/Publish.hs view
@@ -63,7 +63,7 @@ sendOutput (ManyDisplay manyOuts) = mapM_ sendOutput manyOuts sendOutput (Display outs) = do header <- dupHeader replyHeader DisplayDataMessage- send $ PublishDisplayData header "haskell" $ map (convertSvgToHtml . prependCss) outs+ send $ PublishDisplayData header $ map (convertSvgToHtml . prependCss) outs convertSvgToHtml (DisplayData MimeSvg svg) = html $ makeSvgImg $ base64 $ E.encodeUtf8 svg convertSvgToHtml x = x
src/tests/IHaskell/Test/Parser.hs view
@@ -12,7 +12,7 @@ import IHaskell.Test.Util (ghc, strip) import IHaskell.Eval.Parser (parseString, getModuleName, unloc, layoutChunks, Located(..),- CodeBlock(..), DirectiveType(..), StringLoc(..))+ CodeBlock(..), DirectiveType(..), StringLoc(..), PragmaType(..)) import IHaskell.Eval.ParseShell (parseShell) #if !MIN_VERSION_base(4,8,0)@@ -196,6 +196,9 @@ parses "let x = 3 in" `like` [ ParseError (Loc 1 13) "parse error (possibly incorrect indentation or mismatched brackets)" ]++ it "parses LANGUAGE pragmas case-insensitively" $+ parses "{-# LaNgUaGe OverloadedStrings #-}" `like` [Pragma PragmaLanguage ["OverloadedStrings"]] it "breaks without data kinds" $ parses "data X = 3" `like` [dataKindsError]