apecs 0.9.3 → 0.9.4
raw patch · 4 files changed
+20/−4 lines, 4 filesdep ~template-haskelldep ~vectorPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: template-haskell, vector
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- README.md +3/−1
- apecs.cabal +2/−2
- src/Apecs/THTuples.hs +11/−1
CHANGELOG.md view
@@ -1,3 +1,7 @@+## [0.9.4]+### Changed+- (#86) Add support for GHC 9.2 and Template Haskell 2.18+ ## [0.9.3] ### Added - `newEntity_ = void . newEntity`
README.md view
@@ -13,12 +13,14 @@ ### Links - [documentation on hackage](https://hackage.haskell.org/package/apecs/docs/Apecs.html)-- [tutorial](https://github.com/jonascarpay/apecs/blob/master/examples/Shmup.md) and other [examples](../examples/)+- [tutorial](https://github.com/jonascarpay/apecs/blob/master/examples/Shmup.md) and other [examples](https://github.com/jonascarpay/apecs/tree/master/examples) ##### Games/articles - [An Introduction to Developing Games in Haskell with Apecs](https://aas.sh/blog/making-a-game-with-haskell-and-apecs/) - [mallRL](https://github.com/nmaehlmann/mallRL) - a _grocery shopping roguelike_ - [An implementation of the Unity tutorial project using apecs](https://github.com/mewhhaha/apecs-unity-tutorial-haskell)+- [SpaceMar](https://gitlab.com/dpwiz/spacemar)+- [Achtung die haskell](https://github.com/mewhhaha/achtung-die-haskell) - [(Your game here)](https://github.com/jonascarpay/apecs/pulls) ##### Packages
apecs.cabal view
@@ -1,5 +1,5 @@ name: apecs-version: 0.9.3+version: 0.9.4 homepage: https://github.com/jonascarpay/apecs#readme license: BSD3 license-file: LICENSE@@ -13,8 +13,8 @@ apecs is a fast, type-driven Entity-Component-System library for game programming. extra-source-files:- README.md CHANGELOG.md+ README.md source-repository head type: git
src/Apecs/THTuples.hs view
@@ -91,13 +91,18 @@ -- s, ety, w arguments sNs = [ mkName $ "s_" ++ show i | i <- [0..n-1]]- sPat = ConP tupleName (VarP <$> sNs) sEs = VarE <$> sNs etyN = mkName "ety" etyE = VarE etyN etyPat = VarP etyN wNs = [ mkName $ "w_" ++ show i | i <- [0..n-1]]+#if MIN_VERSION_template_haskell(2,18,0)+ sPat = ConP tupleName [] (VarP <$> sNs)+ wPat = ConP tupleName [] (VarP <$> wNs)+#else+ sPat = ConP tupleName (VarP <$> sNs) wPat = ConP tupleName (VarP <$> wNs)+#endif wEs = VarE <$> wNs getN = mkName "ExplGet"@@ -130,8 +135,13 @@ explExistsAnd va vb = AppE (AppE (VarE '(>>=)) va)+#if MIN_VERSION_template_haskell(2,18,0)+ (LamCaseE [ Match (ConP 'False [] []) (NormalB$ AppE (VarE 'return) (ConE 'False)) []+ , Match (ConP 'True [] []) (NormalB vb) []+#else (LamCaseE [ Match (ConP 'False []) (NormalB$ AppE (VarE 'return) (ConE 'False)) [] , Match (ConP 'True []) (NormalB vb) []+#endif ]) explMembersFold va vb = AppE (VarE '(>>=)) va `AppE` AppE (VarE 'U.filterM) vb