logo
首页技术栈工具库讨论
wumpus-basic
wumpus-basic
Kernel code for higher-level drawing built on Wumpus-Core. This package provides font loader code (currently limited to AFM font files) and a various drawing objects intended to be a higher-level basis to make vector drawings than the primitives (paths, text labels) provided by Wumpus-Core. ** WARNING ** - this package is alpha grade and it is strongly coupled to the package Wumpus-Drawing which is sub-alpha grade. The packages are split as it is expected they will have different development speeds - Wumpus-Basic needs polishing and refinement; Wumpus-Drawing simply needs a lot of work to move its components from proof-of-concept ideas to being readily usable. NOTE - the demos that were previously included are now in the package Wumpus-Drawing. Changelog: v0.23.0 to v0.24.0: Changes to type funs to work with GHC 7.4. Removed FormatCombinators module. v0.22.0 to v0.23.0: Re-worked the Chain module and API. Replaced ZDeco enumeration with ZOrder. Removed the Basic.Geometry modules, they are superseded in Wumpus-Drawing. Some of the equivalent functionality is now internal to the respective modules in Wumpus-Drawing - Wumpus has scaled back the amount of geometric types and operations it wants to expose. Renamed the PlacedTrail object to AnaTrail - the prefix vector is considered an anacrusis. Tidied up the API of the Trail module. Moved bezierArcPoints and BezierMinorArc from Basic.Geometry and marked the Basic.Geometry code as obsolute. v0.21.0 to v0.22.0: Reverted argument order of run functions they back to the monadLib style (args * monadic_operation) rather than MTL style (monadic_operation * args). Typographically this seems better. Removed module Geometry.Paths it is superseded in Wumpus-Drawing. Added user state to PosObject and moved it into Kernel.Drawing. Changed the enumeration DrawStyle to DrawMode. Added another enumeration PathMode. Changed Chain so that first item in the chain is the start point (previously the start point was iterated by the chain). Removed ConnectorProps from the DrawingContext , they are now used "locally" in Wumpus-Drawing. Added more vector constructors to Kernel.Objects.Displacement. Added extra methods to the Decorate class for annotating SVG elements. v0.20.0 to v0.21.0: The code from the Kernel.Base.UserState module has been moved to the module Kernel.Drawing.Basis. Moved Image and Query from Objects.Basis to new module Objects.Image. Moved Chain, CtxPicture and TraceDrawing into the new Drawing folder. Added Wumpus.Basic.Kernel.Drawing.LocDrawing module. Rationalized the combinators exported by the drawing objects Image, LocImage, LocThetaImage and Connector.
hsbencher
hsbencher
Benchmark frameworks are usually very specific to the host language/environment. Hence they are usually about as reusable as compiler passes (that is, not). Nevertheless, hsbencher is an attempt at a reusable benchmark framework. It knows fairly little about what the benchmarks do, and is mostly concerned with defining and iterating through configuration spaces (e.g. varying the number of threads), and managing the data that results. Benchmark data is stored in simple text files, and optionally uploaded via pluggable backend packages such as hsbencher-fusion, which uploads to Google Fusion Tables. hsbencher attempts to stradle the divide between language-specific and language-agnostic by having an extensible set of BuildMethods. As shipped, hsbencher knows a little about cabal, ghc, and less about Make, but it can be taught more. The general philosophy is to have benchmarks follow a simple protocol, for example printing out a line SELFTIMED: 3.3 if they wish to report their own timing, in seconds. The focus is on benchmarks that run long enough to run in their own process. This is typical of parallelism benchmarks and different than the fine-grained benchmarks that are well supported by Criterion. hsbencher is used by creating a script or executable that imports HSBencher and provides a list of benchmarks, each of which is decorated with its parameter space. Below is a minimal example that creates a two-configuration parameter space: The output would appear as in this gist: https://gist.github.com/rrnewton/5667800 More examples can be found here: https://github.com/rrnewton/HSBencher/tree/master/hsbencher/example ChangeLog: (1.3.8) Added --skipto and --runid arguments (1.3.4) Added ability to prune benchmarks with patterns on command line. (1.4.2) Breaking changes, don't use Benchmark constructor directly. Use mkBenchmark. (1.5) New columns in schema. (1.8) Backend plugins, hsbencher-fusion package factored out. (1.15) Add systemCleaner field to Config (1.17) Add cpu affinity control; lspci off by default (1.18) Fix COMPILE_FLAGS upload; upload unwords of COMPILE_FLAGS to avoid quotes in output. (1.19.1) Change the semantics of naked runtime args to conjunction, not disjunction. Also allow filtering of benchmarks by BenchSpace as well. (1.20) Add --bindir command line argument.