Yet another Grapefruit update

Today, I updated the Grapefruit FRP library once again. The main improvements are as follows:

  • Grapefruit is now compatible with GHC 8.0.1.

  • The GTK+ UI backend of Grapefruit uses GTK+ 3 now.

The new Grapefruit version is 0.1.0.6. To install or update, you can use the following commands:

cabal update
cabal install grapefruit-ui-gtk grapefruit-examples

As I wrote earlier, Grapefruit 0.1 is actually a phase-out model, which I only update to work with newer GHC and library versions. Starting from March, I will work again on the new Grapefruit, which will be based on my research about FRP semantics. I expect that this new theoretical foundation will lead to a more powerful library with a more sensible interface.

6 thoughts on “Yet another Grapefruit update

  1. Tristan Wibberley

    FYI 0.1.0.6 doesn’t install on Ubuntu 16.10:

    [ 5 of 12] Compiling Internal.UICircuit ( src/Internal/UICircuit.hs, dist/build/Internal/UICircuit.o )
    
    src/Internal/UICircuit.hs:80:19:
        No instance for (ArrowAddReader
                           (Placement item uiBackend)
                           (ReaderArrow (Placement item uiBackend) (Circuit era))
                           (Circuit era))
          arising from a use of ‘liftReader’
        In the first argument of ‘(>>>)’, namely ‘liftReader’
        In the expression: liftReader >>> UICircuit
        In an equation for ‘fromCircuit’:
            fromCircuit = liftReader >>> UICircuit
    cabal: Error: some packages failed to install:
    grapefruit-examples-0.1.0.6 depends on grapefruit-ui-0.1.0.6 which failed to install.
    grapefruit-ui-0.1.0.6 failed during the building phase. The exception was:
    ExitFailure 1
    grapefruit-ui-gtk-0.1.0.6 depends on grapefruit-ui-0.1.0.6 which failed to install.

    Like

    Reply
    1. Tristan Wibberley

      Similar error installing from cabal in fedora (freshly downloaded and installed today).

      So I thought I’d get the source and see if I could fix it but I get this problem when running the command from https://hackage.haskell.org/package/grapefruit-ui-gtk:

      darcs get http://hub.darcs.net/jeltsch/grapefruit --tag grapefruit-0.1.0.6
      Copying patches, to get lazy repository hit ctrl-C... 
      Going to specified version...                         
      darcs: Couldn't find a tag matching "tag-name grapefruit-0.1.0.6"

      Like

      Reply
    2. Wolfgang Jeltsch Post author

      I had a report about exactly this problem a few weeks ago. It was and still is a bit of a mystery for me where this problem comes from. The person who reported this issue eventually used GHC 8.0.1. If this is an option for you, you can give this a try.

      I will look into this issue to see whether I can solve it. I am using Ubuntu 16.04, which also contains version 7.10.3 of GHC, but usually I use GHC 8.0.1 installed outside the Ubuntu package system.

      Like

      Reply
      1. Wolfgang Jeltsch Post author

        Apparently, GHC 7.10.3 has a bug that results in an ArrowAddReader instantiation not being found. I have added a workaround, so that Grapefruit can also be built with GHC 7.10.3 now. The updated version is available in the repository and on the HackageDB under version number 0.1.0.7.

        Like

        Reply
  2. Pingback: Grapefruit now compatible with GHC 7.10.3 | Wolfgang Jeltsch

When replying to another comment, please press that comment’s “Reply” button.