summaryrefslogtreecommitdiff
path: root/dev-haskell/io-streams/metadata.xml
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-haskell/io-streams/metadata.xml
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-haskell/io-streams/metadata.xml')
-rw-r--r--dev-haskell/io-streams/metadata.xml138
1 files changed, 138 insertions, 0 deletions
diff --git a/dev-haskell/io-streams/metadata.xml b/dev-haskell/io-streams/metadata.xml
new file mode 100644
index 000000000000..7852149c9343
--- /dev/null
+++ b/dev-haskell/io-streams/metadata.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>haskell@gentoo.org</email>
+ <name>Gentoo Haskell</name>
+ </maintainer>
+ <longdescription>
+ /Overview/
+
+ The io-streams library contains simple and easy-to-use primitives for I/O
+ using streams. Most users will want to import the top-level convenience
+ module "System.IO.Streams", which re-exports most of the library:
+
+ @
+ import "System.IO.Streams" (InputStream, OutputStream)
+ import qualified "System.IO.Streams" as Streams
+ @
+
+ For first-time users, @io-streams@ comes with an included tutorial, which can
+ be found in the "System.IO.Streams.Tutorial" module.
+
+ /Features/
+
+ The @io-streams@ user API has two basic types: @InputStream a@ and
+ @OutputStream a@, and three fundamental I/O primitives:
+
+ @
+ \-\- read an item from an input stream
+ Streams.'System.IO.Streams.read' :: 'System.IO.Streams.InputStream' a -&gt; IO (Maybe a)
+
+ \-\- push an item back to an input stream
+ Streams.'System.IO.Streams.unRead' :: a -&gt; 'System.IO.Streams.InputStream' a -&gt; IO ()
+
+ \-\- write to an output stream
+ Streams.'System.IO.Streams.write' :: Maybe a -&gt; 'System.IO.Streams.OutputStream' a -&gt; IO ()
+ @
+
+ Streams can be transformed by composition and hooked together with provided combinators:
+
+ @
+ ghci&gt; Streams.fromList [1,2,3::Int] &gt;&gt;= Streams.map (*10) &gt;&gt;= Streams.toList
+ [10,20,30]
+ @
+
+ Stream composition leaves the original stream accessible:
+
+ @
+ ghci&gt; input \&lt;- Streams.fromByteString \"long string\"
+ ghci&gt; wrapped \&lt;- Streams.takeBytes 4 input
+ ghci&gt; Streams.read wrapped
+ Just \"long\"
+ ghci&gt; Streams.read wrapped
+ Nothing
+ ghci&gt; Streams.read input
+ Just \" string\"
+ @
+
+ Simple types and operations in the IO monad mean straightforward and simple
+ exception handling and resource cleanup using Haskell standard library
+ facilities like 'Control.Exception.bracket'.
+
+ @io-streams@ comes with:
+
+ * functions to use files, handles, concurrent channels, sockets, lists,
+ vectors, and more as streams.
+
+ * a variety of combinators for wrapping and transforming streams, including
+ compression and decompression using zlib, controlling precisely how many
+ bytes are read from or written to a stream, buffering output using
+ bytestring builders, folds, maps, filters, zips, etc.
+
+ * support for parsing from streams using @attoparsec@.
+
+ * support for spawning processes and communicating with them using streams.
+
+ /ChangeLog/
+
+ [@1.1.4.2@] Fixed a build error with network versions older than 2.4.
+
+ [@1.1.4.1@] @System.IO.Streams.Network@: scalability improvement: buffers
+ for socket reads are now allocated by system malloc rather than
+ by pinned pointers in GHC (currently pinned pointer allocation
+ takes a global lock).
+
+ [@1.1.4.0@] Widened @attoparsec@ and @text@ library dependencies to allow
+ the latest versions.
+
+ [@1.1.3.0@] Added @System.IO.Streams.ByteString.takeExactly@. Widened
+ @network@ dependency to include 2.3. Added a
+ @NoInteractiveTests@ flag to selectively disable some tests for
+ environments where spawning interactive processes is
+ impossible.
+
+ [@1.1.2.2@] Allowed newest versions of the @process@, @test-framework@,
+ and @text@ libraries.
+
+ [@1.1.2.1@] Fixed build error when compiled against attoparsec-0.10.0.x.
+
+ [@1.1.2.0@] Added @System.IO.Streams.Concurrent.makeChanPipe@, to create a
+ simple concurrent pipe between an @InputStream@/@OutputStream@
+ pair.
+
+ [@1.1.1.0@] Added @System.IO.Streams.Network.socketToStreamsWithBufferSize@,
+ allowing control over the size of the receive buffers used when
+ reading from sockets.
+
+ [@1.1.0.3@] Fixed an inconsistent version upper bound in the test suite.
+
+ [@1.1.0.2@] Fixed a typo in the tutorial.
+
+ [@1.1.0.1@] A couple of Haddock markup fixes.
+
+ [@1.1.0.0@] Reworked, simplified, and streamlined the internals of the
+ library. Exports from "System.IO.Streams.Internal" relying on
+ Sources and Sinks were deleted because they are no longer
+ necessary: Source(..), Sink(..), defaultPushback,
+ withDefaultPushback, nullSource, nullSink, singletonSource,
+ simpleSource, sourceToStream, sinkToStream, generatorToSource,
+ and consumerToSink.
+
+ [@1.0.2.2@] Fixed a bug in which \"takeBytes 0\" was erroneously requesting
+ input from the wrapped stream.
+
+ [@1.0.2.1@] Fixed a compile error on GHC 7.0.x.
+
+ [@1.0.2.0@] Added "System.IO.Streams.Process" (support for communicating
+ with system processes using streams), added new functions to
+ "System.IO.Streams.Handle" for converting @io-streams@ types to
+ 'System.IO.Handle's. (Now you can pass streams from this
+ library to places that expect Handles and everything will
+ work.)
+
+ [@1.0.1.0@] Added 'System.IO.Streams.Combinators.ignoreEof'.
+
+ [@1.0.0.1@] Fixed some haddock markup.
+ </longdescription>
+</pkgmetadata>