All Versions
Latest Version
Avg Release Cycle
91 days
Latest Release
1661 days ago

Changelog History
Page 5

  • v1.1.0.3 Changes

    March 19, 2014
    • ๐Ÿ‘ Allow lens-4.1
  • v1.1.0.2 Changes

    March 19, 2014

    Full Changelog

    ๐Ÿ”€ Merged pull requests:

  • v1.1.0.1 Changes

    March 09, 2014

    Full Changelog

    • ๐Ÿ“ฆ Depend on hashable package, and add Hashable instance for SizeSpec2D.

    Technically, the PVP specifies that adding a new instance requires a major version bump. However, I highly doubt anyone was making their own orphan Hashable instances before. Feel free to yell at Brent if this breaks your build.

  • v1.0.1 Changes

    January 26, 2014

    Full Changelog

    Implemented enhancements:

    • Module for generating nice colors/color schemes #77

    Closed issues:

    • "Maybe.fromJust: Nothing" error when connecting translated small diagram #147

    ๐Ÿ”€ Merged pull requests:

  • v1.0 Changes

    November 25, 2013

    Full Changelog

    ๐Ÿ†• New features

    • ๐Ÿ†• New modules Diagrams.TwoD.Arrow and Diagrams.TwoD.Arrowheads for creating arrows.

    • ๐Ÿ†• New module Diagrams.Backend.CmdLine, providing a flexible framework for creating command-line-driven diagram rendering executables.

    • ๐Ÿ†• New functions in Diagrams.Offset: offsetTrail and offsetPath for one-sided offsets of trails and paths; expandTrail and expandPath for "stroking" trails and paths, computing a path whose fill corresponds to the stroke of the given trail or path.

    • ๐Ÿ†• New module Diagrams.Tangent for computing tangent and normal vectors of segments, trails, and paths.

    • ๐Ÿ†• New functions in Diagrams.Align to allow diagrams to be aligned by Trace called snug, snugBy and snugCenter and the ability to define other boundary functions for alignment. Functions snugL, snugR, etc. are included in TwoD.Align.

    • Lenses from Control.Lens are now used consistently for record fields throughout the library.

    • ๐Ÿ†• New function angleRatio for calculating the ratio between two angles.

    • Restricted identity functions asTurn, asRad, and asDeg for resolving type ambiguity

    • ๐Ÿ†• New miter limit attribute.

    • ๐Ÿ†• New function annularWedge in TwoD.Arc

    • ๐Ÿ†• New avgScale utility in TwoD.Transform, for backends which cannot fully implement freezing of line width

    • ๐Ÿ†• New function heptagon, a vast improvement over the linguistic frankenstein septagon.

    • ๐Ÿ†• New function lookupName (re-exported from diagrams-core) for simple lookups of named subdiagrams

    • ๐Ÿ†• New function angleBetween to calculate the angle between two vectors.

    • ๐Ÿ†• New function arcBetween to draw an arc between two given points.

    • A bunch of new modules containing types, primitives and utilities for constructing 3D diagrams: Diagrams.ThreeD.Align, .Camera, .Light, .Shapes, .Transform, .Types, and .Vector. This is still a "feature preview" (in particular, appropriate 3D backends are still under construction).

    ๐Ÿ†• New instances

    • AdditiveGroup and VectorSpace instances for Turn, Rad, Deg

    • Alignable instance for (->) e

    • 0๏ธโƒฃ Default instances for FillRule, FillRuleA, LineJoin, LineCap, FillColor

    • Show instances for FillRule, FillRuleA

    API changes

    • e no longer exported from Diagrams.Prelude.

    • Diagrams.BoundingBox is no longer exported from Diagrams.Prelude.

    • Re-export Diagrams.Core.pointDiagram from Diagrams.Prelude.

    • โž• Added fromAlphaColour method to Color class.

    • & renamed to ^&

    • Stop re-exporting tan, over, and both from Data.Colour.

    • New coordinate lenses _x, _y, and _z for R2, P2, R3, P3

    • Export fullTurn from Diagrams.Prelude.

    • Codomain (Located a) is now Point (Codomain a) instead of Located (Codomain a).

    • Export domainBounds from Diagrams.Parametric.

    • ๐Ÿšš Adjusting functionality moved from Diagrams.Parametric to its own module, Diagrams.Parametric.Adjust.

    • ๐Ÿ“‡ Rename strokeT (and primed variant) to strokeTrail; rename strokeLocT to strokeLocTrail.

    • ScaleInv is now in its own module, Diagrams.TwoD.Transform.ScaleInv.

    • Re-export Image type (but not constructor) from Diagrams.TwoD

    • โœ‚ Removed Floating and RealFloat instances for Turn and Deg

    • offsetSegment now returns a Located instead of a tuple.

    • โœ‚ Removed Num and Fractional instances for R2.

    Dependency/version changes

    • โœ‚ Remove newtype dependency

    • ๐Ÿ†• New dependencies on lens, tagged, optparse-applicative, filepath, safe, vector-space-points, MemoTrie

    • Depend on intervals >= 0.3 && < 0.5.

    ๐Ÿ› Bug fixes

    • ๐Ÿ— Depend on intervals 0.3, which allows diagrams to build on Windows, by evading a GHCi linker bug which affects the FFI use in previous versions of intervals (diagrams-contrib#14)

    • ๐Ÿ‘‰ Use point envelope at the origin for text objects instead of an empty envelope (#115, #116).

    • Adjusting the end of a trail now works correctly (#95).

    • Only look for miter join on corners in Diagrams.TwoD.Offset (#118).

    • wedge from Diagrams.TwoD.Arc is now a Loop (#99)

    • Arrows do not behave correctly under scaling #112

    ๐ŸŽ Performance improvements

    • R2 is now strict and UNPACKed

    • โž• Add strictness to Offset, Segment, OffsetEnvelope, and SizeSpec2D.

    • ๐Ÿ‘‰ Make getEnvelope calculation for Segment more efficient by floating divisions out of the inner calculation.

    • ๐Ÿ‘‰ Use a specialized HasTrie instance for R2.

    Closed issues:

    • ๐Ÿ— diagrams-lib- fails to build with ghc-7.7 (-HEAD) #128

    • Arrow misses target #126

    ๐Ÿ”€ Merged pull requests:

  • v1.0.0.1 Changes

    November 28, 2013
  • v0.7.1 Changes

    September 11, 2013

    ๐Ÿ†• New features

    • ๐Ÿ†• New standard miter limit attribute

    • ๐Ÿ†• New functions lineColorA, lineWidthA, lineMiterLimitA, fontSizeA for directly applying attribute values

    • 0๏ธโƒฃ setDefault2DAttributes now sets default line cap (butt), line join (miter), and miter limit (10) attributes

    ๐Ÿ†• New instances

    • 0๏ธโƒฃ Data.Default instances for

    • LineCap

    • LineJoin

    • LineMiterLimit

    • LineWidth

    • LineColor

    • FontSize

    Full Changelog

    Implemented enhancements:

    • Path expansion. #55

    • ๐Ÿšš way to move diagrams closer together #18

    ๐Ÿ›  Fixed bugs:

    • wedge should be closed #99

    • Adjusting trail from the end has no effect #95

    ๐Ÿ”€ Merged pull requests:

    • โž• Add offsetTrail and expandTrail. #103 (fryguybob)

    • ๐Ÿ”„ change Codomain of Located to Point (Codomain a) #102 (byorgey)

    • 0๏ธโƒฃ Default and Show instances for FillRule and FillRuleA #100 (jbracker)

    • ๐Ÿ”„ Changes required due to the introduction of Roles in GHC #98 (co-dan)

    • โœ‚ removed default implementation of reverseDomain #97 (jeffreyrosenbluth)

    • ๐Ÿ›  fixed issue #95 #96 (jeffreyrosenbluth)

  • v0.7.1.1 Changes

    September 27, 2013

    Full Changelog

    Implemented enhancements:

    • ๐Ÿ‘‰ Use a point envelope for built-in text objects #116

    • implement rotations in 3D #86

    • Control over boundary conditions on cubic splines. #32

    ๐Ÿ›  Fixed bugs:

    • diagrams with empty envelopes are not properly separated by struts #115

    Closed issues:

    • calculate ratio between two angles #109

    • โž• Add primitives for arrows #73

    ๐Ÿ”€ Merged pull requests:

    • Three d render #114 (bergey)

    • ๐Ÿš… API for computing tangent and normal vectors to segments and trails #113 (byorgey)

    • ๐Ÿ’… change default styles for arrows #111 (byorgey)

    • 3D utility functions #107 (bergey)

  • v0.7 Changes

    August 09, 2013

    Full Changelog

    ๐Ÿ†• New features

    • ๐Ÿ†• New module Diagrams.TwoD.Curvature, for computing the curvature of 2D segments at any given point.

    • ๐Ÿ†• New module Diagrams.Offset, containing an offsetSegment function that builds a trail a fixed distance from the original segment. This is a precursor to planned functions offsetTrail and offsetPath.

    • ๐Ÿ†• New function Diagrams.TwoD.Transform.onBasis, for extracting a matrix representation of a 2D transformation

    • ๐Ÿ†• New functions extrudeEnvelope and intrudeEnvelope, for extending or shrinking an envelope only in a certain direction.

    • Generalize the Color class to absolute colors. This addresses concerns raised in issue #66 by letting the backend choose which color space to render Color instances to. Functions are provided for backwards compatibility with the old semantics.

    • ๐Ÿ†• New function scaleInvPrim for creating a diagram from a single scale-invariant primitive.

    • ๐Ÿ†• New module Diagrams.Parametric, containing a collection of classes abstracting over "parametric" things: Parametric, DomainBounds, EndValues, Sectionable, and HasArcLength, with instances for segments, trails, and related things.

    • ๐Ÿ”จ A big refactoring of segments and trails:

      • Segments can now be either "closed" or "open".
      • There are now two types of trails: "lines" (which travel from point A to point B) or "loops" (closed curves which end where they started). Trail is now a wrapper type which can contain both loops and lines.
      • There is a new Located wrapper type for adding locations to translation-invariant things. Paths now consist of a collection of Located Trails.
      • The PathLike class is now renamed to TrailLike; the trailLike function takes a Located Trail as input.
    • ๐Ÿ†• New convenience functions boundaryFrom and boundaryFromMay, for computing boundaries of subdiagrams.

    • Re-export from diagrams-lib a lot of things defined in diagrams-core, to make them easier for users to find. Several new modules have been created as a result: Diagrams.Query, Diagrams.Envelope, Diagrams.Trace, and Diagrams.Names.

    • Export the centroid function from Diagrams.Prelude.

    • triangle is now a synonym for eqTriangle.

    ๐Ÿ†• New instances

    • IsPrim instances for Path, Ellipsoid, Image, Text, and ScaleInv

    • Eq, Ord, and Show instances for SizeSpec2D

    API changes

    • CircleFrac has been renamed Turn (though CircleFrac is retained as a deprecated synonym).

    • Diagrams.Coordinates is no longer exported from Diagrams.Prelude. This is for compatibility with lens, as (&) is a rather important lens operator and clashes with Diagrams.Coordinates. Users who want the Coordinates stuff can import Diagrams.Coordinates explicitly.

    Dependency/version changes

    • ๐Ÿ‘ allow base-4.7

    • โฌ†๏ธ upgrade to monoid-extras-0.3

    • 0๏ธโƒฃ depend on data-default-class instead of data-default

    • โœ… Tested with GHC 7.7.

    ๐Ÿ› Bug fixes

    • โž• Added a special case that was a not handled properly by the quadratic solver, resulting in bogus envelopes in certain cases (#88).

    • Import only Data.NumInstances.Tuple instead of Data.NumInstances. Previously, Diagrams.Prelude exported Eq, Show, and Num instances for functions and tuples; now it only exports tuple instances. Users wishing to use Diagrams.CubicSpline with a vector space built over functions (!?) can import Data.NumInstances.Function themselves. (#48)

    • Do scaling on a Path before constructing a TrailLike in rect (#43)

    Implemented enhancements:

    • Split PathLike, Trail, and Path into separate modules #25

    • โž• Add support for path-oriented diagrams. #13

    ๐Ÿ›  Fixed bugs:

    • Wrong envelope for cubic segment #88

    • ๐Ÿ›  Fix documentation of beside, (===), and (|||) re: monoidal semantics #83

    • ๐Ÿš… reverseTrail should not generate extra segments for closed trails #24

    Closed issues:

    • โœ… Test issue #91

    ๐Ÿ”€ Merged pull requests:

    • โž• Add parametric generalizations for segments, trails, Located, etc. #92 (byorgey)

    • โž• Adding type signature so it compiles with GHC7.7 #90 (co-dan)

    • ๐Ÿ› bug fix: add special case for b==0 to quadform solver #89 (byorgey)

    • ๐Ÿ”จ Big refactoring of segments and trails. #87 (byorgey)

    • Stop exporting Diagrams.Coordinates from Diagrams.Prelude #82 (byorgey)

    • Generalization of R2 to D2 a #65 (jbracker)

  • v0.6 Changes

    December 12, 2012

    Full Changelog

    ๐Ÿ†• New features

    • boundingRect function for constructing a bounding rectangle

    • bg function for "setting the background color" (i.e. placing atop a colored bounding rectangle)

    • ๐Ÿ†• New functions setDefault2DAttributes and adjustDiaSize2D. adjustDia2D does both --- so the behavior of adjustDia2D has not changed, but it is now possible to apply just one of the two adjustments using the new functions.

    • Diagrams.TwoD.Transform now exports a ScaleInv type for creating scale-invariant objects, which are only affected by rotational and translational components of transformations.

    • The new Diagrams.Coordinates module provides nicer syntax for constructing and pattern-matching point and vector literals.

    • ๐Ÿ†• New fromFixedSeg function in Diagrams.Segment, which decomposes a FixedSegment into a starting point and a Segment.

    • ๐Ÿ†• New withTrace function for setting the Trace of a diagram.

    • Three new size-related functions:

      • New sized function for scaling an object to a particular size. One particularly nice use of this is to obviate the need to keep fiddling with the line width to get diagrams to "look right"; just set the line width relative to some arbitrary scale (e.g. assuming the final diagram will fit into a 1x1 box) and then apply sized to the final diagram to make it that given arbitrary size. It can also be used for easily making something (a diagram, path, trail, ...) the same size as something else, with the help of the new sizeSpec2D function.
      • New sizedAs function, for setting the size of some object to be "the same as" some other object.
      • New sizeSpec2D function for conveniently calculating the size of an object as a SizeSpec2D value (for use with the new sized funtion).
    • ๐Ÿ†• New extrudeEnvelope and intrudeEnvelope functions for modifying envelopes in a single direction only, as well as new functions extrude{Left,Right,Bottom,Top} specializing extrudeEnvelope to 2D.

    • arcCW draws clockwise arcs; arc' draws arcs counterclockwise or clockwise as the radius is positive or negative, respectively.

    • ๐Ÿ‘ fill color attribute is generalized to support "recommended" and "committed" colors; text objects use a recommended fill color of black.

    ๐Ÿ†• New instances

    • The Show instance for R2 now produces something like 2 & 6 instead of R2 { unR2 = (2,6) }. The Read instance has also been changed to match, so read . show = id.

    • ๐Ÿ›  Enveloped instance for FixedSegment

    • ๐Ÿ›  Traced instances for Segment, FixedSegment, Trail, and Path

    • ๐Ÿ†• New derived Eq instances for LineCapA, LineJoinA, Dashing, DashingA, FillRule, Font, FontSize, FontSlant, FontSlantA, FontWeight, and FontWeightA

    • Renderable Ellipsoid NullBackend instance

    API changes

    • Data.Colour (minus atop and AffineSpace) is now re-exported from Diagrams.Prelude for convenience.

    • The beneath function is now infixl 6.

    • The BoundingBox module has had a complete overhaul. There is now a special empty bounding box, and bounding boxes are an instance of Monoid.

    • The type of withEnvelope has been slightly generalized.

    • ๐Ÿ—„ Diagrams.TwoD.Adjust.adjustSize is now deprecated; it has been renamed and moved to Diagrams.TwoD.Size.requiredScaleT.

    • expandPath has been renamed to scalePath.

    Dependency/version changes

    • ๐Ÿ‘ Allow data-default 0.4 and 0.5

    • ๐Ÿ‘ Allow base-4.6

    • ๐Ÿ‘ Allow containers-0.5

    ๐Ÿ› Bug fixes

    • arc and arcT functions now always produce counterclockwise arcs, as claimed.

    Implemented enhancements:

    • โœจ Enhancements for arcs. #54

    • align and friends should be in terms of a new 'Alignable' class instead of 'Boundable' #31

    • Tools for more accurate boundary calculations in common cases #30

    • Reimplement Diagrams.TwoD.Ellipse in terms of Diagrams.TwoD.Arc #27

    • Function to convert angles into 2D unit vectors #23

    • 2D specialization of 'beside' which takes an angle instead of a vector #22

    • Generalize showOrigin function #21

    • โž• Add generic 'extent' and 'breadth' ? functions #20

    • โž• Add shearing transformations to standard library #19

    • โž• Add support for text #15

    • ๐Ÿ‘ Allow the user to choose the fill rule used for paths when stroking #14

    • Image primitives #10

    • ๐Ÿ”€ Merge polygon code from Dmitry Olshansky #4

    ๐Ÿ›  Fixed bugs:

    • โœจ Enhancements for arcs. #54

    • boundingBox computes incorrect bounding box for transformed diagrams #39

    • hcat is really *terrible* performance-wise #28

    • 0๏ธโƒฃ stroke sets the fill rule attribute to a default value, so it can't be changed later #26

    • Text alignment should be with respect to descent and ascent lines rather than text bounding box #17

    • incorrect bounds for Bezier segments #11

    • More combinators in D.Combinators #5

    ๐Ÿ”€ Merged pull requests:

    • clean up and fix bugs with ScaleInv wrapper #69 (byorgey)

    • Patch proposal for generalized Color #67 (haasn)

    • ๐Ÿ“‡ Renamed expandPath to scalePath to make room #61 (fryguybob)

    • Envelope deformation #60 (mgsloan)

    • โž• Added Eq instances for some data structures. #59 (fryguybob)

    • ๐Ÿ‘ More involved diameter benchmark + better implementation #58 (mgsloan)

    • โž• Add NullBackend for Ellipsoid #57 (mgsloan)

    • ๐Ÿ›  Fixed arc and arcT so they are always CCW. #56 (fryguybob)

    • ๐Ÿ†• new sized, sizedAs, and sizeSpec2D functions #52 (byorgey)

    • โšก๏ธ Update to track with diagrams-core renaming, and a better Show instance for R2 #47 (byorgey)

    • Minor tweaks due to monoid-extra and dual-tree changes #45 (byorgey)

    • 0๏ธโƒฃ split out default attribute setting and size adjustment into separate functions #42 (byorgey)

    • ๐Ÿ‘‰ make beneath infixl 6 #41 (byorgey)

    • scale invariant #3 (ludflu)

    • BoundingBox is now Monoidal #2 (mgsloan)

    • ๐Ÿ†• New module enabling nice syntax for constructing and pattern-matching literal points and vectors #1 (byorgey)