Skip to content

Commit 3368a14

Browse files
authored
Merge pull request #1026 from haskell/no-ffi
Resolve #992. Remove cffi flag, it has become obsolete
2 parents 0f92968 + b758dd4 commit 3368a14

File tree

7 files changed

+10
-243
lines changed

7 files changed

+10
-243
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ jobs:
280280
cabal-docspec $ARG_COMPILER
281281
- name: hlint
282282
run: |
283-
if [ $((HCNUMVER >= 90200 && HCNUMVER < 90400)) -ne 0 ] ; then (cd ${PKGDIR_aeson} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 src attoparsec-iso8601/src src-pure src-ffi) ; fi
283+
if [ $((HCNUMVER >= 90200 && HCNUMVER < 90400)) -ne 0 ] ; then (cd ${PKGDIR_aeson} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 src attoparsec-iso8601/src src-pure) ; fi
284284
if [ $((HCNUMVER >= 90200 && HCNUMVER < 90400)) -ne 0 ] ; then (cd ${PKGDIR_attoparsec_iso8601} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 src) ; fi
285285
if [ $((HCNUMVER >= 90200 && HCNUMVER < 90400)) -ne 0 ] ; then (cd ${PKGDIR_aeson_examples} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 src/) ; fi
286286
if [ $((HCNUMVER >= 90200 && HCNUMVER < 90400)) -ne 0 ] ; then (cd ${PKGDIR_aeson_benchmarks} && hlint -h ${GITHUB_WORKSPACE}/source/.hlint.yaml -XHaskell2010 .) ; fi
@@ -314,10 +314,6 @@ jobs:
314314
run: |
315315
$CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +ordered-keymap' all
316316
$CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +ordered-keymap' all
317-
- name: constraint set cffi
318-
run: |
319-
if [ $((HCNUMVER < 90400)) -ne 0 ] ; then $CABAL v2-build $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +cffi' all ; fi
320-
if [ $((HCNUMVER < 90400)) -ne 0 ] ; then $CABAL v2-test $ARG_COMPILER --enable-tests --disable-benchmarks --constraint='aeson +cffi' all ; fi
321317
- name: save cache
322318
uses: actions/cache/save@v3
323319
if: always()

aeson.cabal

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
name: aeson
2-
version: 2.1.2.1
3-
x-revision: 3
2+
version: 2.2
43
license: BSD3
54
license-file: LICENSE
65
category: Text, Web, JSON
@@ -39,24 +38,15 @@ description:
3938
extra-source-files:
4039
*.yaml
4140
benchmarks/json-data/*.json
42-
cbits/*.c
4341
changelog.md
4442
README.markdown
45-
src-ffi/Data/Aeson/Parser/*.hs
4643
src-pure/Data/Aeson/Parser/*.hs
4744
tests/golden/*.expected
4845
tests/JSONTestSuite/results/*.tok
4946
tests/JSONTestSuite/results/*.txt
5047
tests/JSONTestSuite/test_parsing/*.json
5148
tests/JSONTestSuite/test_transform/*.json
5249

53-
flag cffi
54-
description:
55-
Controls whether to include c-ffi bits or pure haskell. Default to False for security.
56-
57-
default: False
58-
manual: True
59-
6050
flag ordered-keymap
6151
description: Use ordered @Data.Map.Strict@ for KeyMap implementation.
6252
default: True
@@ -148,16 +138,9 @@ library
148138

149139
ghc-options: -Wall
150140

151-
if (impl(ghcjs) || !flag(cffi))
152-
hs-source-dirs: src-pure
153-
other-modules: Data.Aeson.Parser.UnescapePure
154-
155-
else
156-
c-sources: cbits/unescape_string.c
157-
cpp-options: -DCFFI
158-
hs-source-dirs: src-ffi
159-
other-modules: Data.Aeson.Parser.UnescapeFFI
160-
build-depends: text <2.0
141+
-- String unescaping
142+
hs-source-dirs: src-pure
143+
other-modules: Data.Aeson.Parser.UnescapePure
161144

162145
if flag(ordered-keymap)
163146
cpp-options: -DUSE_ORDEREDMAP=1

cabal.haskell-ci

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,6 @@ hlint: True
1212
hlint-job: 9.2.8
1313
hlint-yaml: .hlint.yaml
1414

15-
constraint-set cffi
16-
ghc: <9.4
17-
constraints: aeson +cffi
18-
tests: True
19-
run-tests: True
20-
2115
constraint-set ordered-keymap-on
2216
constraints: aeson +ordered-keymap
2317
tests: True

cbits/unescape_string.c

Lines changed: 0 additions & 149 deletions
This file was deleted.

changelog.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
For the latest version of this document, please see [https://github.com/haskell/aeson/blob/master/changelog.md](https://github.com/haskell/aeson/blob/master/changelog.md).
22

3+
### 2.2
4+
5+
* Remove `cffi` flag. Then the C implementation for string unescaping was used for `text <2` versions.
6+
The new native Haskell implementation introduced in version 2.0.3.0 is at least as fast.
7+
38
### 2.1.2.1
49

510
* Support `th-abstraction-0.5`

src-ffi/Data/Aeson/Parser/UnescapeFFI.hs

Lines changed: 0 additions & 58 deletions
This file was deleted.

src/Data/Aeson/Parser/Unescape.hs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,4 @@ module Data.Aeson.Parser.Unescape
44
unescapeText
55
) where
66

7-
#ifdef CFFI
8-
import Data.Aeson.Parser.UnescapeFFI (unescapeText)
9-
#else
107
import Data.Aeson.Parser.UnescapePure (unescapeText)
11-
#endif

0 commit comments

Comments
 (0)