O(n) Convert a String into a ByteString
For applications with large numbers of string literals, pack can be a bottleneck.
O(n) Convert a String into a Text.
Subject to fusion. Performs replacement on invalid scalar values.
O(n) Convert a String into a Text. Subject to fusion. Performs replacement on invalid scalar values.
O(n) Convert a '[Word8]' into a ByteString.
For applications with large numbers of string literals, pack can be a bottleneck. In such cases, consider using packAddress (GHC only).
Utility to help managing Makefiles for Haskell projects, a cabal lint which can check the other-modules and build-deps sections in your cabal files, and a quick command that can show the direct package dependencies of a set of Haskell source files. See the README in the repo for more information: https://github.com/JakeWheat/package-o-tron.
This program is meant as a tool for suggesting version change of libraries. It tries to match official Package Versioning Policy.
See http://www.haskell.org/haskellwiki/Package_versioning_policy for details.
This version works by inspecting new/removed exported modules or entities. It doesn't currently check the types of exported elements.
> package-vt module-ver-1.hs module-ver-2.hs
If you unpack modules with cabal unpack you can use the following form:
> # unpack modules
> cabal unpack package-1
> cabal unpack package-2
> package-vt module-1/module.cabal module-2/module.cabal
O(n). Construct a new ByteString from a CString. The resulting ByteString is an immutable copy of the original CString, and is managed on the Haskell heap. The original CString must be null terminated.
O(n). Construct a new ByteString from a CStringLen. The resulting ByteString is an immutable copy of the original CStringLen. The ByteString is a normal Haskell value and will be managed on the Haskell heap.
This provides a library and command line tool for checking if the upper bounds in your package's dependency list excludes the newest package available. The code was originally available only as a web interface at http://packdeps.haskellers.com/, but is now available for standalone use as well.
The command line tool has an incredibly simple interface: simply pass it a list of cabal files, and it will tell you what dependencies- if any- are restricted.
Generation and traversal of highly compressed directed acyclic word graphs.
(Deprecated) Packed Strings.
Fast byte serializer and unserializer
This simple CLI tool allows to find out which of the packages listed as build-depends in a Cabal package description file are redundant.
packunused works by taking advantage of GHC's -ddump-minimal-imports feature which creates .import files for each compiled module containing a minimal set of explicit import declarations. These .import files together with Cabal's generated package configuration meta-data is analyzed by packunused to detect potentially redundant package dependencies.
In order to use packunused you have to configure the package as usual. See the example session below:
> cabal clean
> rm *.imports
> cabal configure -O0 --disable-library-profiling
> cabal build --ghc-option=-ddump-minimal-imports
The -O0 --disable-library-profiling options are just to speed up compilation. In some cases you might want to pass additional options to the configure step, such as --enable-benchmark or --enable-tests.
When run, packunused prints a report to standard output listing its findings for each component built. The following is an example for the packunused package itself, with a redundant dependency added for demonstration on purpose:
> detected package components
> - executable(s): packunused
> (component names suffixed with '*' are not configured to be built)
> The following package depencencies seem redundant:
> - criterion-0.6.2.0-9dd4d764629a47662168743b2dfda9bc
An implementation of the first-fit, modified-first-fit, last-fit, best-fit, sum-of-squares-fit, worst-fit, and almost-last-fit bin packing heuristics. Items can be packed in order of both decreasing and increasing size (and, of course, in unmodified order).
The module supports both the standard (textbook) minimization problem (How many bins do I need?) and the more practical fitting problem (I've got n bins; which items can I take?).
The API is simple and the module is documented with Haddock (complete with examples). The implementation of the above-mentioned heuristics is complete and partially tested with QuickCheck. However, note that speed has not been a primary concern to date.
Patches and feedback are very welcome.
Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.
Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.
Contributions of better algorithms are welcome.
datapacker is a tool to group files by size. It is designed to group files such that they fill fixed-size containers (called "bins") using the minimum number of containers. This is useful, for instance, if you want to archive a number of files to CD or DVD, and want to organize them such that you use the minimum possible number of CDs or DVDs.
In many cases, datapacker executes almost instantaneously. Of particular note, the hardlink action can be used to effectively copy data into bins without having to actually copy the data at all.
datapacker is a tool in the traditional Unix style; it can be used in pipes and call other tools.
The version of this HTTP package as a string, e.g. "4000.1.2". This may be useful to include in a user agent string so that you can determine from server logs what version of this package HTTP clients are using. This can be useful for tracking down HTTP compatibility quirks.
Haskell bindings for low-level packet sockets (AF_PACKET)
Haskell Test Utility Pack for HUnit and QuickCheck testpack provides utilities for both HUnit and QuickCheck. These include tools for running QuickCheck properties as HUnit test cases, allowing you to combine both approaches in a single program. It also includes tools for more helpful displays of running progress in both HUnit and QuickCheck, additional generators for other types for QuickCheck, and shortcuts for quickly defining new test cases.
Show more results