Summary
This package provides a general purpose Haskell XML library using Expat to do its parsing (<http://expat.sourceforge.net/> - a fast stream-oriented XML parser written in C). It is extensible to any string type, with @String@, @ByteString@ and @Text@ provided out of the box. Basic usage: Parsing a tree (/Tree/), formatting a tree (/Format/). Other features: Helpers for processing XML trees (/Proc/), trees annotated with XML source location (/Annotated/), extended XML trees with comments, processing instructions, etc (/Extended/), XML cursors (/Cursor/), SAX-style parse (/SAX/), and access to the low-level interface in case speed is paramount (/Internal.IO/). The design goals are speed, speed, speed, interface simplicity and modularity. For introduction and examples, see the /Text.XML.Expat.Tree/ module. For benchmarks, <http://haskell.org/haskellwiki/Hexpat/> If you want to do interactive I\/O, an obvious option is to use lazy parsing with one of the lazy I\/O functions such as hGetContents. However, this can be problematic in some applications because it doesn't handle I\/O errors properly and can give no guarantee of timely resource cleanup. In these cases, chunked I\/O is a better approach: Take a look at the /hexpat-enumerator/ package. /IO/ is filed under /Internal/ because it's low-level and most users won't want it. The other /Internal/ modules are re-exported by /Annotated/, /Tree/ and /Extended/, so you won't need to import them directly. Credits to Iavor Diatchki and the @xml@ (XML.Light) package for /Proc/ and /Cursor/. Thanks to the many contributors. BOUND VS. UNBOUND THREADS: GHC (at least versions 6.12.X) will spawn threads if you call a safe FFI callback from an unbound thread. This can get out of control in a busy application. To avoid this, from version 0.19.1 we now delegate processing to a single worker thread if the calling thread is not bound. This essentially means that hexpat currently won't exploit multicores very well. It also means that hexpat may be more efficient on threads spawned with forkOS (to give you a bound thread) rather than forkIO. ChangeLog: 0.15 changes intended to fix a (rare) \"error: a C finalizer called back into Haskell.\" that seemed only to happen only on ghc6.12.X; 0.15.1 Fix broken Annotated parse; 0.16 switch from mtl to transformers; 0.17 fix mapNodeContainer & rename some things.; 0.18 rename defaultEncoding to overrideEncoding. 0.18.3 formatG and indent were demanding list items more than once (inefficient in chunked processing); 0.19 add Extended.hs; 0.19.1 fix a memory leak introduced in 0.19, delegate parsing to bound thread if unbound (see note above); 0.19.2 include expat source code so \'cabal install\' just works on Linux, Mac and Windows (thanks Jacob Stanley); 0.19.3 fix misconfiguration of expat which broke entity parsing; 0.19.4 bump version constraint for text; 0.19.5 bump text to < 0.12 and fix text-0.10.0.1 breakage; 0.19.6 dependency breakage with List; 0.19.7 ghc-7.2.1 compatibility; 0.19.8 fix space leak on lazy parse under ghc-7.2.1
Versions
v0.20.13 :: 0/0.20.13 :: gentoo
- Modified
- License
- BSD
- Keywords
- ~amd64 ~x86
- USE flags
- bundled-expat doc hscolour profile
USE flags
General
- bundled-expat
- Use bundled expat instead of dev-libs/expat
- doc
- Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally
- hscolour
- Include coloured haskell sources to generated documentation (dev-haskell/hscolour)
- profile
- Add support for software performance analysis (will likely vary from ebuild to ebuild)
Dependencies
dev-haskell / cabal : A framework for packaging Haskell software
dev-haskell / hscolour : Colourise Haskell code
dev-haskell / list : List monad transformer and class
dev-haskell / text : An efficient packed Unicode text type
dev-haskell / utf8-string : Support for reading and writing UTF8 Strings
Runtime Dependencies
dev-haskell / list : List monad transformer and class
dev-haskell / text : An efficient packed Unicode text type
dev-haskell / utf8-string : Support for reading and writing UTF8 Strings
Bugs
Change logs
- Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
dev-haskell/hexpat: drop old
Package-Manager: Portage-3.0.6, Repoman-3.0.1 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Sergei Trofimovich · gentoo
*/*: destabilize dev-lang/ghc for all arches
dev-lang/ghc is a fast-moving target without much of stable API across major GHC releases. This makes stabilization process a fragile process. The change moves all haskell revdeps to pure ~arch. There are not many outside dev-haskell/*: - app-emulation/ganeti - app-text/pandoc - dev-util/bustle - dev-util/shellcheck - dev-vcs/darcs - x11-wm/xmonad/xmonad Existing stable haskell users are recommended to keyword used packages and all of dev-haskell/* to ease upgrades. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> - Repository mirror & CI · gentoo
Merge updates from master - Michał Górny · gentoo
*/*: Inline mirror://hackage and update URIs
This change inlines mirror://hackage in all ebuilds, and updates URIs to the modern form (old URIs redirect to that). The change has been made using the following command: find -name '*.ebuild' -exec sed -r -i \ -e 's@mirror://hackage/@https://hackage.haskell.org/@g' \ -e 's@https://hackage.haskell.org/packages/archive/([^/]*)/([^/]*)/@https://hackage.haskell.org/package/\1-\2/@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{PV}@${P}@g' \ -e '/hackage\.haskell\.org/s@\$\{MY_PN}-\$\{PV}@${MY_P}@g' \ -e '/hackage\.haskell\.org/s@\$\{PN}-\$\{MY_PV}@${MY_P}@g' \ {} + Signed-off-by: Michał Górny <mgorny@gentoo.org> - Sergei Trofimovich · gentoo
dev-haskell/hexpat: bump up to 0.20.13
Package-Manager: Portage-2.3.8, Repoman-2.3.3 - Sergei Trofimovich · gentoo
dev-haskell/hexpat: bump up to 0.20.11, bug #622260
Reported-by: Sebastian Pipping Bug: https://bugs.gentoo.org/622260 Package-Manager: Portage-2.3.6, Repoman-2.3.2 - Sergei Trofimovich · gentoo
dev-haskell/hexpat: bump up to 0.20.10, bug #622260
Reporte-by: Sebastian Pipping Bug: https://bugs.gentoo.org/622260 Package-Manager: Portage-2.3.6, Repoman-2.3.2 - Robin H. Johnson · gentoo
Drop $Id$ per council decision in bug #611234.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> - Mikle Kolyada · gentoo
dev-haskell/hexpat: amd64 stable wrt bug #550420
Package-Manager: portage-2.2.20.1 - Robin H. Johnson · gentoo
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed