fudgets 0.18.3.1 → 0.18.3.2
raw patch · 7 files changed
+64/−29 lines, 7 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- AllFudgets: version_0_18_3_1 :: [Char]
- Fudgets: version_0_18_3_1 :: [Char]
+ AllFudgets: version_0_18_3_2 :: [Char]
+ Fudgets: version_0_18_3_2 :: [Char]
Files
- .ghci +7/−0
- ChangeLog.md +6/−0
- README.md +10/−13
- fudgets.cabal +10/−12
- hsrc/fudcpp +27/−0
- hsrc/ghc-dialogue/AsyncInput.hs +2/−2
- hsrc/utils/FudVersion.hs +2/−2
+ .ghci view
@@ -0,0 +1,7 @@+:set -Ihsrc:hsrc/defaults+:set -pgmP hsrc/fudcpp+:set -XRank2Types -XExistentialQuantification -XMultiParamTypeClasses+:set -XFunctionalDependencies+:set -XFlexibleInstances -XFlexibleContexts -XTypeSynonymInstances+:set -iContrib:hsrc:hsrc/utils:hsrc/sp:hsrc/types:hsrc/xtypes:hsrc/combinators:hsrc/containers:hsrc/drawing:hsrc/filters:hsrc/fudgets:hsrc/defaults:hsrc/internals:hsrc/kernelutils:hsrc/layout:hsrc/infix:hsrc/lowlevel:hsrc/io:hsrc/debug:hsrc/ghc-dialogue:hsrc/ghc:hsrc/hbc_library+:set -fno-warn-tabs
ChangeLog.md view
@@ -1,5 +1,11 @@ # Release history for fudgets +## 0.18.3.2 -- 2022-08-04++* Simplified the installation on macOS by adding a helper script+ `hsrc/fudcpp` to workaround problems with the `-optP` option in+ `ghc>=8.10.3` and automatically detect which version of `gcc` is installed.+ ## 0.18.3.1 -- 2022-03-14 * Renamed `doRequest.hs` to `doRequestCmd.hs` to avoid a name clash
README.md view
@@ -49,23 +49,20 @@ ### On Linux systems -- `sudo apt install libxext-dev` (installs Xlib etc on Debian-based- distributions, the command will be different on other Linux distributions.)+- `sudo apt install libxext-dev` - `cabal install fudgets` +(The first command installs Xlib etc on Debian-based distributions,+the command and package name may be different on other Linux distributions.)+ ### On macOS - Install [XQuartz](https://www.xquartz.org/).-- `brew install gcc` (need the version of `cpp` included with gcc, since there- are some issues with cpp from clang.- Note: `fudgets.cabal` refers to `cpp-11`, you might need to change this- if you install a different version of gcc.)--- If you are using ghc>=8.10.3: unfortunately it seems that the- `-pgmP` option no longer works, so you need to- change a line in `$PREFIX/lib/ghc-*/lib/settings` instead:-- ``` ,("Haskell CPP command", "gcc-11")```-+- Install [Homebrew](https://brew.sh/).+- `brew install gcc` - `cabal install fudgets` +(The preprocessor in `clang` does not preserve layout, so we use `gcc`+instead. Also, with ghc>=8.10.3 there seems to be problem with the `-optP`+option, so we use a helper script `hsrc/fudcpp` to call `cpp` with the+correct options.)
fudgets.cabal view
@@ -1,6 +1,6 @@ Name: fudgets -- The version number also appears in hsrc/utils/FudVersion.hs-Version: 0.18.3.1+Version: 0.18.3.2 Cabal-Version: >=1.10 Synopsis: The Fudgets Library Homepage: https://www.altocumulus.org/Fudgets/@@ -16,16 +16,20 @@ . This package includes the Fudgets library and a few small examples and demo applications.+ .+ For installation instructions, see the last section of the Readme. Author: Thomas Hallgren and Magnus Carlsson and others Maintainer: Thomas Hallgren Build-Type: Simple License: OtherLicense License-File: COPYRIGHT-Tested-With: GHC==7.4.1, GHC==7.6.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.3, GHC==8.8.2, GHC==8.10.2, GHC==8.10.7, GHC==9.0.2, GHC==9.2.2+Tested-With: GHC==7.4.1, GHC==7.6.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.3, GHC==8.8.2, GHC==8.10.2, GHC==8.10.7, GHC==9.0.2, GHC==9.2.4 Extra-Source-Files: README.md ChangeLog.md+ .ghci+ hsrc/fudcpp hsrc/exists.h hsrc/defaults/defaults.h hsrc/ghc-dialogue/asyncinput.h@@ -87,16 +91,10 @@ if os(darwin) Extra-lib-dirs: /opt/X11/lib Include-dirs: /opt/X11/include- -- Run 'brew install gcc', then you should have gcc-11 and cpp-11, or- -- possibly another version, in which case you need to adapt the line below:- if impl(ghc<8.10.3)- -- Use the -pgmP in ghc<8.10.3- ghc-options: -pgmP cpp-11 -optP -traditional- --else- -- Unfortunately -pgmP doesn't work in ghc>=8.10.3, so you need to- -- change a line in $PREFIX/lib/ghc-*/lib/settings insead:- -- ,("Haskell CPP command", "gcc-11")-+-- ghc-options: -pgmP cpp-11 -optP -traditional -- this no longer works+ ghc-options: -pgmP hsrc/fudcpp+ -- The hsrc/fudcpp is used to work around problems with clang and ghc.+ -- You need to install gcc, e.g. by running 'brew install gcc', Extra-Libraries: X11 Xext ghc-options: -fno-warn-tabs
+ hsrc/fudcpp view
@@ -0,0 +1,27 @@+#! /bin/bash++# This script is used on macOS to workaround two problems:+#+# 1. The preprocessor in clang does not preserve layout, so we use the+# preprocessor in gcc instead.+# 2. There seems to be a problem with the -optP option with ghc>=8.10.3,+# so we can no longer use e.g. 'ghc -pgmP cpp-11 -optP -traditional'++# To install gcc, install Homebrew (see https://brew.sh),+# then run 'brew install gcc'++cpp=cpp+case `uname` in+ Darwin)+ # Since gcc is an alias for clang on macOS, gcc proper is only+ # available in the path with a version suffix, so we need to+ # detect which version of gcc is installed.+ for v in $(seq 6 13) ; do+ if which cpp-$v >/dev/null ; then+ cpp=cpp-$v+ fi+ done+ ;;+esac++$cpp -traditional "$@"
hsrc/ghc-dialogue/AsyncInput.hs view
@@ -53,8 +53,8 @@ type MsTime = Int data XCallState = XCallState- Cfd_set -- ^ read fd_set- (IOVar Fd) -- ^ highest fd in read fd_set+ Cfd_set -- read fd_set+ (IOVar Fd) -- highest fd in read fd_set (IOVar AiTable) (IOVar (PQueue MsTime (MsTime,Timer))) (IOVar Time)
hsrc/utils/FudVersion.hs view
@@ -1,7 +1,7 @@ module FudVersion where -version = version_0_18_3_1+version = version_0_18_3_2 -version_0_18_3_1 = "version 0.18.3.1" -- only for documentation, use "version" instead+version_0_18_3_2 = "version 0.18.3.2" -- only for documentation, use "version" instead -- The version number should be increased immediately after a public release.