Releases · purescript-node/purescript-node-buffer

v9.0.0

Breaking changes:

  • Expose Buffer API using typeclass-less API without removing typeclass API (#53 by @JordanMartinez)

    Previously, compiler would fail to infer the type of Buffer.create 1 as Effect Buffer
    because the Buffer API was exposed only via the multiparameter typeclass MonadBuffer.
    Due to the functional dependency between the two parameters, the monadic type cannot be inferred
    until the buffer type is known (either Buffer or STBuffer).:

    import Node.Buffer as Buffer
    
    -- Example 1
    main :: Effect Unit
    main = do
      x <- Buffer.create 1 -- compiler: is this `Int -> Effect Buffer` or `Int -> ST h (STBuffer h)?
      pure unit

    The workaround was to add a type annotation, indicating the x is a Buffer:

    import Node.Buffer as Buffer
    
    -- Example 2
    main :: Effect Unit
    main = do
      x :: Buffer <- Buffer.create 1 -- compiler: Oh! It's `Int -> Effect Buffer`
      pure unit

    This change does not break anyone's code if one was using a create (or another such typeclass member)
    to get Int -> Effect Buffer. Rather, such users can now drop the :: Buffer annotation
    (i.e. Example 1 above now compiles).

    If one was using create to get forall m buf. MonadBuffer buf m => Int -> m buf,
    then one will need to update their imports:

    -import Node.Buffer (class MonadBuffer)
    +import Node.Buffer.Class (class MonadBuffer)

New features:

Bugfixes:

Other improvements:

v8.0.0

v7.0.1

v7.0.0

Breaking changes:

  • Updated code for PureScript 0.14 and dropped the proxy dependency as the proxy library has been migrated into prelude (#39).

Other improvements:

  • Removed primes from the concat' function in FFI in preparation for ES modules support (#36)
  • Migrated CI to use GitHub Actions and updated installation instructions to use Spago (#38)
  • Stopped returning empty objects in foreign implementations for functions which return Unit for a small performance benefit (#40)
  • Added a CHANGELOG.md file and pull request template to the repository (#41)

v6.0.0

  • Add a MutableBuffer type class with instances for both Effect and ST, to allow mutating buffers in either monad, and potentially other monads too (#24, @Dretch)
  • Remove the Show Buffer instance, as reading from a mutable buffer is effectful (@Dretch)
  • Use Number for reading and writing with Buffers (#25, @hdgarrood)

v5.0.0

Updated for PureScript 0.12

v4.1.0

v4.0.0

v3.0.1

v3.0.0