Skip to content
Commits on Aug 15, 2012
  1. Merge pull request #8 from danbst/master

    committed Aug 15, 2012
    Fix documentation typo
  2. @danbst

    Fix documentation typo

    danbst committed Aug 15, 2012
Commits on Jul 8, 2012
  1. Fix Await+Await case of composition.

    committed Jul 8, 2012
    The downstream finalizer wasn't being passed upstream.
  2. Make protect safer against exceptions in a Pipe value.

    committed Jun 12, 2012
    Restore commit 7bb846e, it went lost
    during refactoring.
  3. Remove Throw continuation.

    committed Jul 8, 2012
Commits on Jun 24, 2012
  1. Remove BrokenPipe exception.

    committed Jun 24, 2012
  2. Fix PipeL implementation.

    committed Jun 24, 2012
    liftPipe for PipeL now lifts each constructor individually, and threads
    the unawait state. Now a lifted pipe containing awaits will correctly
    start to use queued unawaits.
  3. Add Control.Pipe.Exception.try.

    committed Jun 24, 2012
    Add a `try` combinator analogous to Control.Exception.try.
  4. Fix broken finally implementation.

    committed Jun 24, 2012
    There were two bugs in `finally`.
    First, `finallyP` was not recursing over the continuation of `Yield` and
    `Throw` constructors, so finalizers didn't survive after a `yield`.
    Second, `finally` was calling the finalizer after the end of the
    `finallyP` block. But `finallyP` attaches the finalizer to the last
    `Pure` constructor, so that was obviously incorrect.
    Also add a regression test.
Commits on Jun 23, 2012
  1. Generalize MonadIO instance.

    committed Jun 23, 2012
  2. Bump version to 0.2.0.

    committed Jun 23, 2012
  3. Reimplement feed using PipeL.

    committed Jun 23, 2012
  4. Implement finally separately.

    committed Jun 6, 2012
    Separate the definition of `finally` from that of `catch`. This makes
    the semantics of `catch` a lot cleaner, since the exception handler is
    not considered a finalizer anymore.
  5. Fix tests.

    committed Jun 23, 2012
  6. Update Travis CI link.

    committed Jun 23, 2012
  7. Introduce PipeD and PipeL.

    committed Jun 23, 2012
  8. Add MonadStream type class.

    committed Jun 23, 2012
  9. Reorder type variables.

    committed Jun 23, 2012
    This prevents us from defining a MonadTrans instance, so, instead of
    `lift`, we define an `exec` function, with the same signature.
    This is actually more honest, since the existing MonadTrans instance
    didn't satisfy the laws (`lift` was not a monad morphism).
  10. Add upstream return type.

    committed Jun 23, 2012
  11. Factor internal definitions out of Common.

    committed Jun 9, 2012
    Add Internal module, containing the definition of `Pipe`, as well as
    low-level primitives and accessory types.
  12. Merge branch 'throw-cont'

    committed Jun 23, 2012
Commits on Jun 12, 2012
  1. Make protect safer against exceptions in a Pipe value.

    committed Jun 12, 2012
    Fix an issue reported by Michael Snoyman, where an exception contained
    in a `Pipe` value would cause finalizers to be leaked.
    This commit introduces an extra monadic step at each `protect` call,
    which ensures that any exceptions contained in the continuation thunk
    can be captured and rethrown within the `Pipe` monad.
Commits on Jun 6, 2012
  1. Re-await on failed await.

    committed Jun 6, 2012
    The problem with having a continuation for the `Throw` constructor is
    how to expose the functionality to the user.
    With this commit, every await becomes an await-throw loop when it fails.
    This makes the natural definition of `pipe`, `idP` and `forP` do the
    right thing, i.e. act as proper "filters" when composed on the left.
Commits on Jun 3, 2012
  1. Add CI status to README.

    committed Jun 3, 2012
  2. Add .travis.yml file.

    committed Jun 3, 2012
Commits on Jun 2, 2012
  1. Update CHANGELOG.

    committed Jun 2, 2012
  2. Use TH to run quickcheck properties.

    committed Jun 2, 2012
    Adding the automatic test runner revealed a (failing!) test that was
    left behind.
    The test was failing because it was expecting a non-negative number, but
    was getting an arbitrary Int. This is fixed now.
Something went wrong with that request. Please try again.