c2hs 0.28.3 → 0.28.4
raw patch · 37 files changed
+35/−3382 lines, 37 filesdep ~language-c
Dependency ranges changed: language-c
Files
- .boring +0/−59
- .gitignore +0/−170
- .travis.yml +0/−30
- ChangeLog.CTKlight +0/−465
- README.CTKlight +0/−80
- README.md +0/−35
- REGRESSION-SUITE +0/−50
- TODO +0/−289
- TODO.CTKlight +0/−81
- c2hs.cabal +8/−4
- custom-setup.hs +0/−92
- examples/libghttpHS/Ghttp.chs +0/−326
- examples/libghttpHS/Makefile +0/−46
- examples/libghttpHS/ghttpHS.c +0/−22
- examples/libghttpHS/ghttpHS.h +0/−21
- import-handling.md +0/−104
- regression-suite-vm/Vagrantfile +0/−9
- regression-suite-vm/Vagrantfile-full +0/−84
- regression-suite-vm/run-regression +0/−20
- src/C2HS/Gen/Bind.hs +27/−7
- tests/bugs/issue-192/Issue192.chs +0/−3
- tests/bugs/issue-192/issue-192.h +0/−2
- tests/bugs/issue-37/Issue37.chs +0/−17
- tests/bugs/issue-37/issue37.c +0/−12
- tests/bugs/issue-37/issue37.h +0/−2
- tests/bugs/issue-82/include/Availability.h +0/−145
- tests/bugs/issue-82/include/AvailabilityInternal.h +0/−273
- tests/bugs/issue-82/include/TargetConditionals.h +0/−108
- tests/bugs/issue-82/include/_types.h +0/−68
- tests/bugs/issue-82/include/secure/_common.h +0/−41
- tests/bugs/issue-82/include/secure/_string.h +0/−144
- tests/bugs/issue-82/include/string.h +0/−197
- tests/bugs/issue-82/include/strings.h +0/−96
- tests/bugs/issue-82/include/sys/cdefs.h +0/−126
- tests/bugs/issue-82/include/xlocale/_string.h +0/−35
- tests/regression-suite.yaml +0/−112
- tests/system/clean +0/−7
− .boring
@@ -1,59 +0,0 @@-# Project specific-\.setup-config$-autom4te\.cache-c2hs\.spec$-c2hs/c/CLexer\.hs$-c2hs/c/CParser\.hs$-c2hs/c2hs$-c2hs/c2hs-inplace$-c2hs/tests/.*\.hs$-c2hs/tests/.*\.h$-\.chi$-c2hs/tests/enums$-c2hs/tests/marsh$-c2hs/tests/pointer$-c2hs/tests/structs$-c2hs/toplevel/C2HSConfig\.hs$-c2hs/toplevel/Version\.hs$-config\.log$-config\.status$-configure$-^dist-doc/c2hs/Makefile$-doc/c2hs/.*\.html$-doc/c2hs/.*\.txt$-doc/c2hs/man1/c2hs.1-postInst\.sh-#-# Boring file regexps:-\.hi$-\.o$-\.o\.cmd$-\.ko$-\.ko\.cmd$-\.mod\.c$-(^|/)\.tmp_versions($|/)-(^|/)CVS($|/)-(^|/)RCS($|/)-~$-#(^|/)\.[^/]-(^|/)_darcs($|/)-\.bak$-\.BAK$-\.orig$-(^|/)vssver\.scc$-\.swp$-(^|/)MT($|/)-(^|/)\{arch\}($|/)-(^|/).arch-ids($|/)-(^|/),-\.class$-\.prof$-(^|/)\.DS_Store$-(^|/)BitKeeper($|/)-(^|/)ChangeSet($|/)-(^|/)\.svn($|/)-\.py[co]$-\#-\.cvsignore$-(^|/)Thumbs\.db$
− .gitignore
@@ -1,170 +0,0 @@-/.cabal-sandbox/*-/cabal.sandbox.config-*.chi-*.chs.h-/dist/*-*.hi-/issues/*-*.o-/.shelly/*.txt-/tests/bugs/call_capital/Capital-/tests/bugs/call_capital/Capital.chi-/tests/bugs/call_capital/Capital.chs.h-/tests/bugs/call_capital/Capital_c.o-/tests/bugs/call_capital/Capital.hi-/tests/bugs/call_capital/Capital.hs-/tests/bugs/call_capital/Capital.o-/tests/bugs/issue-09/Issue09.hs-/tests/bugs/issue-102/Issue102-/tests/bugs/issue-102/Issue102.hs-/tests/bugs/issue-103/Issue103A.hs-/tests/bugs/issue-103/Issue103.hs-/tests/bugs/issue-107/Issue107-/tests/bugs/issue-107/Issue107.hs-/tests/bugs/issue-10/Issue10-/tests/bugs/issue-10/Issue10.hs-/tests/bugs/issue-10/Issue10.i-/tests/bugs/issue-113/Issue113-/tests/bugs/issue-113/Issue113.hs-/tests/bugs/issue-115/Issue115-/tests/bugs/issue-115/Issue115.hs-/tests/bugs/issue-116/Issue116-/tests/bugs/issue-116/Issue116.hs-/tests/bugs/issue-15/Issue15-/tests/bugs/issue-15/Issue15.hs-/tests/bugs/issue-16/Issue16-/tests/bugs/issue-16/Issue16.hs-/tests/bugs/issue-19/Issue19-/tests/bugs/issue-19/Issue19.hs-/tests/bugs/issue-20/Issue20.i-/tests/bugs/issue-22/Issue22-/tests/bugs/issue-22/Issue22.hs-/tests/bugs/issue-23/Issue23-/tests/bugs/issue-23/Issue23.hs-/tests/bugs/issue-29/Issue29.hs-/tests/bugs/issue-29/Issue29.i-/tests/bugs/issue-30/Issue30-/tests/bugs/issue-30/Issue30Aux1.hs-/tests/bugs/issue-30/Issue30Aux2.hs-/tests/bugs/issue-30/Issue30.hs-/tests/bugs/issue-31/Issue31-/tests/bugs/issue-31/Issue31.hs-/tests/bugs/issue-32/Issue32-/tests/bugs/issue-32/Issue32.hs-/tests/bugs/issue-36/Issue36-/tests/bugs/issue-36/Issue36.hs-/tests/bugs/issue-37/Issue37-/tests/bugs/issue-37/Issue37.hs-/tests/bugs/issue-38/Issue38-/tests/bugs/issue-38/Issue38.hs-/tests/bugs/issue-43/Issue43-/tests/bugs/issue-43/Issue43.hs-/tests/bugs/issue-44/Issue44-/tests/bugs/issue-44/Issue44.hs-/tests/bugs/issue-45/Issue45-/tests/bugs/issue-45/Issue45.hs-/tests/bugs/issue-46/Issue46-/tests/bugs/issue-46/Issue46.hs-/tests/bugs/issue-47/Issue47-/tests/bugs/issue-47/Issue47.hs-/tests/bugs/issue-51/Issue51-/tests/bugs/issue-51/Issue51_GNU-/tests/bugs/issue-51/Issue51_GNU.hs-/tests/bugs/issue-51/Issue51.hs-/tests/bugs/issue-51/Issue51_nonGNU-/tests/bugs/issue-51/Issue51_nonGNU.hs-/tests/bugs/issue-54/Issue54-/tests/bugs/issue-54/Issue54.hs-/tests/bugs/issue-60/Issue60-/tests/bugs/issue-60/Issue60.hs-/tests/bugs/issue-60/Issue60.i-/tests/bugs/issue-62/Issue62-/tests/bugs/issue-62/Issue62.hs-/tests/bugs/issue-65/Issue65-/tests/bugs/issue-65/Issue65.hs-/tests/bugs/issue-69/Issue69-/tests/bugs/issue-69/Issue69.hs-/tests/bugs/issue-70/Issue70.hs-/tests/bugs/issue-73/Issue73-/tests/bugs/issue-73/Issue73.hs-/tests/bugs/issue-75/Issue75-/tests/bugs/issue-75/Issue75.hs-/tests/bugs/issue-79/Issue79-/tests/bugs/issue-79/Issue79.hs-/tests/bugs/issue-7/Issue7.hs-/tests/bugs/issue-7/Issue7.i-/tests/bugs/issue-80/Issue80-/tests/bugs/issue-80/Issue80.hs-/tests/bugs/issue-82/Issue82-/tests/bugs/issue-82/Issue82.hs-/tests/bugs/issue-83/Issue83-/tests/bugs/issue-83/Issue83.hs-/tests/bugs/issue-93/Issue93-/tests/bugs/issue-93/Issue93.hs-/tests/bugs/issue-95/Issue95-/tests/bugs/issue-95/Issue95.hs-/tests/bugs/issue-96/Issue103-/tests/bugs/issue-96/Issue96-/tests/bugs/issue-96/Issue96.hs-/tests/bugs/issue-97/Issue97-/tests/bugs/issue-97/Issue97A.hs-/tests/bugs/issue-97/Issue97.hs-/tests/bugs/issue-98/Issue98-/tests/bugs/issue-98/Issue98.hs-/tests/bugs/issue-9/Issue9-/tests/bugs/issue-9/Issue9.hs-/tests/system/calls/Calls.hs-/tests/system/cpp/Cpp.hs-/tests/system/enums/enums-/tests/system/enums/Enums.hs-/tests/system/marsh/marsh-/tests/system/marsh/Marsh.hs-/tests/system/pointer/pointer-/tests/system/pointer/Pointer.hs-/tests/system/simple/simple-/tests/system/simple/Simple.hs-/tests/system/sizeof/sizeof-/tests/system/sizeof/Sizeof.hs-/tests/system/structs/structs-/tests/system/structs/Structs.hs-/tests/bugs/issue-20/Issue20-/tests/bugs/issue-20/Issue20.hs-/tests/bugs/issue-25/Issue25-/tests/bugs/issue-25/Issue25.hs-/tests/bugs/issue-48/Issue48-/tests/bugs/issue-48/Issue48.hs-/tests/bugs/issue-123/Issue123-/tests/bugs/issue-123/Issue123.hs-/tests/bugs/issue-102/issue-102.txt-/tests/bugs/issue-117/Issue117-/tests/bugs/issue-117/Issue117.hs-/tests/bugs/issue-117/Issue117.chs.c-/tests/bugs/issue-127/Issue127-/tests/bugs/issue-127/Issue127.hs-/tests/bugs/issue-128/Issue128-/tests/bugs/issue-128/Issue128.chs.c-/tests/bugs/issue-128/Issue128.hs-/tests/bugs/issue-131/Issue131.chs.c-/tests/bugs/issue-131/Issue131.hs-/tests/bugs/issue-131/Issue131-/tests/bugs/issue-130/Issue130-/tests/bugs/issue-130/Issue130.hs-/tests/bugs/issue-133/Issue133-/tests/bugs/issue-133/Issue133.hs-/tests/bugs/issue-136/Issue136.hs-/tests/bugs/issue-136/Issue136-/tests/bugs/issue-134/Issue134-/tests/bugs/issue-134/Issue134.hs-/tests/bugs/issue-151/Issue151.hs-/tests/bugs/issue-149/Issue149-/tests/bugs/issue-149/Issue149.hs-/tests/bugs/issue-141/Issue141A.hs-/tests/bugs/issue-141/Issue141B.hs-/tests/bugs/issue-152/Issue152-/tests/bugs/issue-140/Issue140-/tests/bugs/issue-140/Issue140.hs-/tests/bugs/issue-152/Issue152.hs-/tests/bugs/issue-155/Issue155-/tests/bugs/issue-155/Issue155.hs-/tests/bugs/issue-152/Issue152.hs-/tests/bugs/issue-155/Types.hs
− .travis.yml
@@ -1,30 +0,0 @@-env:- global:- - AWS_ACCESS_KEY_ID=AKIAIKUEH2ETWTBS2CKQ- - secure: "Jzawnhgk3dX2INzbZIlnHCH+aKWqy96B9T1hzBh/Fqp4whglaZDO0mTLHQnhypqAt1rXO2o3yBNcKgGOcgfUuE71uBCzzaXieB0p8BhYn7cwYeANbuKNOGrsP6oDutS5F57FNWwgRp+2oanpgJNOs/6wvfElA7W6ibN8tZiLQrw="- matrix:- - GHCVER=7.10.3--before_install:- - travis_retry sudo add-apt-repository -y ppa:hvr/ghc- - travis_retry sudo apt-get update- - travis_retry sudo apt-get install libnetcdf-dev libgsl0-dev liblapack-dev- - travis_retry sudo apt-get install cabal-install-1.24 ghc-$GHCVER-prof ghc-$GHCVER-dyn happy- - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/1.24/bin:$PATH--install:- - sudo apt-get update -qq- - sudo pip install awscli- - cabal update- - |- if [ $GHCVER = "head" ] || [ ${GHCVER%.*} = "7.8" ] || [ ${GHCVER%.*} = "7.10" ]; then- travis_retry sudo apt-get install happy-1.19.5 alex-3.1.7- export PATH=/opt/alex/3.1.7/bin:/opt/happy/1.19.5/bin:$PATH- else- travis_retry sudo apt-get install happy alex- fi- - cabal install --only-dependencies --enable-tests -fregression--script:- - cabal install && cabal configure --enable-tests -fregression && cabal build && cabal test- - ./dist/build/regression-suite/regression-suite
− ChangeLog.CTKlight
@@ -1,465 +0,0 @@-2005-05-18 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * Makefile: Evil Hack to be able create base.build.conf before- building `libctk.a'--2005-05-18 André Pang <ozone@algorithm.com.au>-- * Adaptation to GHC 6.4 and the Cabal package system--2005-05-18 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * admin/BaseVersion.hs (versnum): 0.27.0--2004-05-15 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * configure.in: Using `egrep' is available (as grep on SunOS- doesn't handle regular expressions) noticed by Matthias Neubauer- <neubauer@informatik.uni-freiburg.de>-- * syntax/Parsers.hs (execParser): Added a token mapping as an- extra argument--2003-10-19 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * configure.in: Support for Mac OS X by Sean Seefried- <sseefried@cse.unsw.edu.au>--2003-10-19 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * sysdep/Makefile: Posix (and hence, `runPiped') support disabled,- as `runPiped' (1) isn't really used at the moment, (2) should be- rewritten anyway, and (3) breaks with GHC 6.3 as the signature of- `forkProcess' changed.-- * admin/BaseVersion.hs (versnum): 0.26.0--2003-06-10 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * ../mk/common.mk (MKDEPENDFILES): defined ghc6-- * syntax/Makefile (RANK2): defined ghc6-- * sysdep/Makefile (SRCS): defined SysDepGHC6.hs as an alias for- SysDepGHC4.hs-- * admin/BaseVersion.hs (versnum): 0.25.1--2003-03-13 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * general/Sets.hs (domSetFM): added-- * general/FiniteMaps.hs (domFM): added- (imageFM): added-- * admin/BaseVersion.hs (versnum): 0.25.0--2003-02-12 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * general/UNames.hs: we derive `Show Name' explicitly to print the- number only--2003-02-05 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * general/FileOps.hs (mktemp): added--2003-02-01 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * ../common.mk: I wasn't careful when removing the ability (for- the user) to invoke make in the part directories and hence the- ability to check dependencies in these directories. As a result,- recursive invocations of make tried to check dependencies in part- directories and erroneously decided that the target is alreasy up- to date. Now the object file are removed before descending into- the recursive make.-- * ../common.mk (gendepend): remove $(DEPEND) first-- * admin/BaseVersion.hs (versnum): 0.24.3--2002-09-16 Manuel M T Chakravarty <chak@AttitudeAdjuster>-- * Makefile (libctk.o): generating library for GHCi--2002-09-06 Manuel M T Chakravarty <chak@AttitudeAdjuster>-- * Makefile (OBJS): excluded state/DynArrays.o from the target- objects for nhc98 (as it chokes on that module)--2002-05-16 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * changed name if base package to `ctk' to not clash with GHC's- new package naming scheme-- * admin/BaseVersion.hs (versnum): 0.24.2--2002-03-22 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: test for availability of the `posix' package- made more reliable- - * admin/BaseVersion.hs (versnum): 0.24.1--2002-03-12 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * Makefile: revised to new build system-- * admin/BaseVersion.hs (versnum): 0.24.0--2002-03-06 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * general/Sets.hs (isSuperSet): cut'n'pasto--2002-03-05 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * Makefile: fixed libctk.a target-- * ../configure.in: make sure to include the posix package only for- GHC (and not for nhc98)-- * admin/BaseVersion.hs (versnum): 0.23.1--2002-02-11 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * Makefile: we are now creating a library archive to use packages--2002-02-10 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * ../mk/common.mk: added package support-- * ../configure.in: added package support; replaced -syslib by -package-- * admin/BaseVersion.hs (versnum): 0.23.0--2002-01-06 Manuel M T Chakravarty <chak@cse.unsw.edu.au>-- * common.mk: removed TMP as it causes problems on cygwin as- reported by Karl M. Syring <syring@web.de>-- * admin/BaseVersion.hs (versnum): 0.22.5--2001-09-26 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * general/UNames.hs: nhc98 1.08 doesn't grok deriving Ix-- * ../configure.in: better support for nhc98 -- * admin/BaseVersion.hs (versnum): 0.22.4--2001-05-20 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * state/CIO.hs (doesFileExistCIO): added by Axel Simon <simona_@web.de>--2001-05-13 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * Makefile (spotless): remove config.cache--2001-04-21 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: Adapted to support ghc 5.x and removed support- for ghc 3.x-- * admin/BaseVersion.hs (versnum): 0.22.3--2000-10-05 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: uses the fptools macro for determining ghc's- version number--2000-10-02 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * errors/Errors.hs (showError): special handling of internal positions-- * admin/Common.hs: added internal positions-- * admin/BaseVersion.hs (versnum): 0.22.2--2000-09-15 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: corrected ghc version number extraction to- correctly handle patch levels; added happy - most have gone lost- earlier...--2000-09-12 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * syntax/Pretty.hs (<>): debugged--2000-09-11 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * syntax/Pretty.hs (Pretty): type class for pretty printing- (infixOp): added- (usedWhen): added- (punctuate): added- (dot): added-- * admin/BaseVersion.hs (versnum): 0.22.1--2000-09-07 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * syntax/Pretty.hs: Revision of the interface; the interface is- now 90% compatible to SimonPJ's `Pretty' module; debugging- (fullRender): dropping leading '\n's- some more combinators-- * admin/BaseVersion.hs (versnum): 0.22.0--2000-09-03 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * admin/Common.hs (tabPos): Roman pointed out that tab stops- should be at 1, 9, ... rather than 0, 8, ...--2000-09-02 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * admin/BaseVersion.hs (versnum): 0.21.1--2000-08-18 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * sysdep/Makefile: Moved the posix stuff into an extra module,- which can be enabled individually-- * ../configure.in: CygWin support; based on suggestions by Anibal- Maffioletti Rodrigues de DEUS <anibaldedeus@email.com>-- * ../configure.in: uses -silent on lndir only if supported (isn't- supported before X11R6, says Jan Kort <kort@wins.uva.nl>)-- * admin/BaseVersion.hs (versnum): 0.21.0--2000-08-08 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * syntax/Lexers.hs: Changed the associativity of `quest`, `star`,- and `plus`. This change was suggested by Martin Norbäck- <d95mback@dtek.chalmers.se>.-- ** WARNING ** This change may break some existing code!!!--2000-06-19 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * admin/BaseVersion.hs (versnum): 0.20.2--2000-04-06 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: -fasm-x86 is used only if --with-ghc-native is given-- * general/Sets.hs (powerSet): impl--2000-04-05 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * general/Sets.hs: derived Eq and Ord for FMs, which allows sets- of sets and added `isSubSet' and `isSuperSet'-- * general/FiniteMaps.hs: derived Eq and Ord for FMs-- * admin/BaseVersion.hs (date): 0.20.1--2000-03-04 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../configure.in: fixes re compiler & option selection--2000-03-01 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../mk/common.mk: fixed dependency computations-- * ../configure.in: polished; on Linux, uses native code generator- when compiling with GHC 4.0x, x >= 7--2000-02-27 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * syntax/Parsers.hs: table handling substantially rewritten to- improve the space behaviour-- * general/Utils.hs: `Tag' class-- * admin/BaseVersion.hs (versnum): 0.20.0--2000-02-23 Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>-- * ../mk/config.mk.in: set correct access modes in INSTALL_DATA--1999-12-06 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * graphs/Marks.hs: newly implemented-- * admin/BaseVersion.hs (versnum): 0.19.1--1999-12-03 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * syms/Attributes.hs: instance Ord Attrs--1999-12-02 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * sysdep/SysDepNHC1.hs: debugging--1999-12-01 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * ../configure.in,../mk/common.mk: better dependency tool computation-- * syms/Idents.hs: uses `Attributed'-- * syms/Attributes.hs: `Attributed' type class, as suggested by- Roman Lechtchinsky-- * admin/BaseVersion.hs (versnum): 0.19.0-- * sysdep/SysDepNHC1.hs: Started the system dependent module for- nhc98 with assistance from Malcolm Wallace--1999-11-30 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * state/StateTrans.hs: Adapted to new names in mutable variables API-- * general/UNames.hs: Adapted to new names in mutable variables API-- * sysdep/SysDepGHC3.hs: adapted to new names of exported entities-- * sysdep/SysDepGHC4.hs: Cleaned up; no GHC internal stuff is used- anymore (some of the names of exported entities changed!)-- * sysdep/Makefile: Added support for nhc98-- * ../configure.in & friends: Added support for nhc98-- * admin/BaseVersion.hs (versnum): 0.18.2--1999-11-17 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * ../mk/config.mk.in: introduced `docdir' and `pkgdocdir'- - * Make system debianised, according to the suggestions and the- patches of Michael Weber <michael.weber@Post.RWTH-Aachen.DE>-- * admin/BaseVersion.hs (versnum): 0.18.1--1999-11-07 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * general/FileOps.hs (fileFindIn): debugged--1999-11-06 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * general/FileOps.hs: new module; implemented `fileFindIn'-- * general/FNameOps.hs (addPath): added-- * admin/BaseVersion.hs (versnum): 0.18.0--1999-10-29 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * admin/BaseVersion.hs (versnum): 0.17.17; fully modularised the- make system--1999-10-25 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * state/CIO.hs (removeFileCIO): added-- * admin/BaseVersion.hs (versnum): 0.17.16--1999-10-24 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * syms/NameSpaces.hs (nameSpaceToList): added-- * admin/BaseVersion.hs (versnum): 0.17.15--1999-10-21 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * syms/Idents.hs (isLegalIdent): corrected `checkTail' - thanx Sven--1999-10-16 Manuel M. T. Chakravarty <chak@is.tsukuba.ac.jp>-- * syms/NameSpaces.hs (defLocal): uses `defGloal' if there is no- local range-- -Pre GNU-style change log---------------------------0.17.13-~~~~~~~-09Oct99 Debugging--0.17.12-~~~~~~~-27Sep99 `CIO.systemCIO'-26Sep99 Debugging and some more clean up of `Lexers'-25Sep99 Some convenience function on `Position's in `Common'-23Sep99 Added `\v' to the control lexer--0.17.11-~~~~~~~-22Sep99 Optimised and extended `Lexers' (meta actions can now return tokens or - error messages); prepared the first separate distribution of CTKlight-21Sep99 Debugged `Lexers'--0.17.10-~~~~~~~-29Aug99 Added `Utils.lookupBy'--0.17.9-~~~~~~-22Aug99 Throughly revised `Lexers' (according to SPJ's suggestions)-12Aug99 Revised `Lexers.execLexer' (returns final state, changed semantics- of meta actions slightly, and structure simplified)--0.17.8-~~~~~~-30Jul99 Clarified `NameSpaces'-19Jul99 Using Roman's `Parsers.seplist1'--0.17.7-~~~~~~-05Jul99 `Lexers' exports `ctrlLexer'--0.17.6-~~~~~~-07Jun99 Small additions to `Idents'-03Jun99 Small additions to `Attributes'--0.17.5-~~~~~~-05Apr99 Configurable makefile variables from common.mk into new config.mk-02Apr99 Small bug fixes-31Mar99 `Parsers': Support for parsing prefixes-30Mar99 Bug fixes (incl. `Parsers.sep')--0.17.4-~~~~~~-13Mar99 Added meta actions to `Parsers'-12Mar99 Revised for GHC 4.02 and Haskell 98-11Mar99 Extension of parser library with threaded state-04Mar99 Self-optimizing lexer library for regular expressions-27Feb99 Self-optimizing LL(1) parser library a la Swierstra/Duponcheel --0.16.0-~~~~~~-11Feb99 `Idents.cloneIdent' & standard attributes in `Attributes'--0.15.0-~~~~~~-02Feb99 `Set' module--0.14.2-~~~~~~-23Jan99 `Ident' got an instance for `Show'--0.14.1-~~~~~~-01Dec98 Extracted mk/dhc.mk and mk/nepal.mk from mk/common.mk--0.14.0-~~~~~~-13Nov98 Rewrote `CST' into `PreCST' that provides an extra state (part of the- base state) that can be instantiated by an client compiler using the- Toolkit. As a consequence, `state/Switches' can be moved into DHC.--0.13.0-~~~~~~-10Nov98 admin/Version.hs--0.12.0-~~~~~~-19Oct98 Added Sven Panne's `GetOpt' to general/--0.11.1-~~~~~~-23Sep98 Completely overhauled Makefile system.--29Jul98 Finished extraction from what was originally called the HiPar toolkit.
− README.CTKlight
@@ -1,80 +0,0 @@- Compiler Toolkit - Light -*-text-*-- ========================--Contents:-- README.CTKlight -- This file- LICENSE.LIB -- GNU Library General Public License (LGPL)- BaseVersion.hs -- Version, copyright, and disclaimer- Config.hs -- Configuration module- Common.hs -- Basic definitions, such as representation of positions- DLists.hs -- Difference lists - provide O(1) append- Errors.hs -- Types and functions for error handling- FNameOps.hs -- Common operations on file names- FiniteMaps.hs -- Finite maps based on 2-3 trees- GetOpt.hs -- Sven Panne's Haskell version of the GNU getopt library- Lexers.hs -- Self-optimising lexer combinators- Parsers.hs -- Self-optimising parser combinators- Pretty.hs -- Pretty printing combinators (the interface is essentially- a superset of SimonPJ's pretty printing library)- Sets.hs -- Sets as an instance of the above mentioned finite maps- Utils.hs -- Utility routines--The Compiler Toolkit Light (CTKlight) is a subset of the Compiler Toolkit-(CTK) - an infrastructure for writing compilers in Haskell. CTKlight-essentially provides support for implementing syntactical analysis without the-more heavy-weight state management (like compiler switches, global error pool,-and exceptions), identifier and attribute management, and various other-utilities included in the full CTK. Both packages can be obtained from-- http://www.cse.unsw.edu.au/~chak/ctk/----=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- BUILDING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--In contrast to full CTK, CTKlight is simply a set of Haskell modules without-any complicated makefile structure. The code is Haskell 98 compliant with the -exception that `Parser.hs' makes use of existentially quantified type-variables - unfortunately, I do not believe that the same method of-self-optimisation would work without existential types.--The modules are tested with--* GHC 4.02 and upwards (use `-fglasgow-exts' to compile `Parsers.hs') and-* Hugs98 (use `-98' when using `Parsers.hs').--If you want autoconf, a ready-made makefile structure, and much more-additional library functionality, then use full CTK.----=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COPYLEFT -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--This library is free software; you can redistribute it and/or modify it under-the terms of the GNU Library General Public License as published by the Free-Software Foundation; either version 2 of the License, or (at your option) any-later version.--This library is distributed in the hope that it will be useful, but WITHOUT-ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS-FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more-details.--You should have received a copy of the GNU Library General Public License-along with this system; if not, write to the Free Software Foundation, Inc.,-675 Mass Ave, Cambridge, MA 02139, USA.--Note: In essence this means that you can use this library in any program- whether it is free or proprietary. However, if you modify or extend the- library itself, you are bound to distribute these modifications or- extensions according to the terms and conditions of the LGPL. For- details consult the license itself, which is located in the file- `LICENSE.LIB'.----=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CREDITS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=---Author & Maintainer: Manuel M. T. Chakravarty <chak@cse.unsw.edu.au>--Thanks to Simon L. Peyton Jones <simonpj@microsoft.com> and Roman Lechtchinsky-<wolfro@cs.tu-berlin.de> for their helpful suggestions that improved the-design and implementation of the `Lexers' module.
− README.md
@@ -1,35 +0,0 @@-[](https://travis-ci.org/haskell/c2hs)--`c2hs` is a interfacing tool that eases Haskell access to C libraries.-The tool gets information about the C data type definitions and-function signatures by analysing the C header files of the library.-It uses this information to compute the missing details in the-template of a Haskell module — called the binding file —-that implements a Haskell binding to the C library. Hooks embedded in-the binding file signal where, which, and how C objects are accessed-from Haskell. The Haskell code in the binding file determines Haskell-types signatures and marshaling details.--Further information is on the-[wiki](https://github.com/haskell/c2hs/wiki/Home). Also see the-[user guide](https://github.com/haskell/c2hs/wiki/User-Guide) (also-available in the `doc` directory of the repository).---## Installing--To install `c2hs` from Hackage:-- cabal install c2hs--If you like to build from the GitHub repository, see the file-`INSTALL`. See the `REGRESSION-SUITE` file for a description of how-to run the regression suite for checking C2HS performance against-existing Haskell packages that use it.---## License--All code **generated by** `c2hs` is under a BSD licence. Hence, `c2hs` is useful for both open and closed source projects.--The tool itself is released under the GPLv2. This is the same situation as for the GNU C Compiler. For details, see the file `COPYING`.
− REGRESSION-SUITE
@@ -1,50 +0,0 @@- C2HS REGRESSION SUITE- ~~~~~~~~~~~~~~~~~~~~~--C2HS is flexible enough that it's difficult to write a test suite that-covers all the cases of interest to users. As well as a general test-suite and tests for individual issues, it makes sense to test for C2HS-regressions by installing a range of packages that use C2HS.--The regression suite is managed as a single Cabal test suite called-regression-suite. This reads a YAML configuration file giving a list-of packages to test against. The test suite succeeds if a "cabal-install" of each of the test packages succeeds without error, using-the current version of C2HS.--This process requires care for two reasons:-- 1. Because C2HS is an FFI tool, packages that use C2HS almost always- have dependencies on external libraries, so writing a simple test- suite is not straightforward.-- 2. It's undesireable to install a whole set of Haskell packages for- C2HS regression testing into the user's environment.--To handle these two issues, the regression-suite test suite behaves as-follows:-- ON TRAVIS-- - Always run the regression suite.-- - Install all library dependencies before attempting to install- Haskell packages. These dependencies are given in the regression- suite configuration file as lists of APT package names, optionally- with PPAs to install them from, or as lists of shell commands to- use to install the dependencies.-- ON NON-TRAVIS SYSTEMS-- - Only run the regression suite if the C2HS_REGRESSION_SUITE- environment variable is defined.-- - Assume that all C library dependencies are already installed.-- - Set Cabal flags from environment variables called- C2HS_REGRESSION_FLAGS_<package> if these variables exist.---The idea is to test for regressions under well-controlled conditions-at each commit on Travis, but maintain the possibility of running the-regression suite locally as well.
− TODO
@@ -1,289 +0,0 @@- -*-text-*-- C2HS TODO- =========--Next: - enum hooks should define cFromEnum/cToEnum as the default marshallers- (see comment at GenBind.lookupDftMarshIn).-- - Especially with function hooks, it is not sufficient to emit line- pragmas whenever a new CHS fragment starts. As some hooks expand to- multiple lines of Haskell code, we need to reemit the line number of- the hook once for each line of Haskell generated from it.-- - Points raised by PeteG:- * The initial comment put by c2hs shouldn't be put in the first line,- as this makes it difficult to add {-# OPTIONS #-} pragma to the .chs- file, as this pragma must be in the first line.-- The only sensible solution seems to be to copy the first line of the- .chs file on top if it starts with the string "{-# OPTIONS".-- - Ian requests {#const SYM#} where SYM is a pre-preprocessor symbol to - evaluate to the C value of SYM. Main problem is that the value might- be of various C types.-- - Tutorial-- - GenBind.setGet: How is it justified that `bitsPerField' is- fixed to the size of `CInt'? Does the C def guarantee- that bitfields types are of the same size?-- Next Major feature to be added: structure marshalling.-- - the `hsverb' should be normalised with respect to white space and- parenthesis -- - have an option to compute .chi dependencies; do this on a- module-by-module basis generating many small depend files rather than- one big one-- - Pending suggestions from Axel Simon:- + succ/pred definitions for enum hooks-- - marshalling of structs-- - We need to handle the time stamps of .chi files more carefully;- otherwise, we often get lots of unnecessary re-runs of c2hs.-- - Conceptual problem with import hooks: Currently, everything imported- from a .chi file by a binding module is also dumped into its own .chi- file. Is is not generally correct, but it would also not be correct- to omit everything that has been imported. The conceptually correct- solution would be to dump an entry for a type into a .chi file if the- corresponding Haskell type is exported by the binding module. To- achieve this, we would also need an export hook. Moreover, we may- import the same object from different modules, due to an implicit- reexport at the moment. Either eliminate those reexports, or we have- the same problems as in Haskell to determine object identity.-- - c2hs has to properly process GNU C "aligned" attributes. Otherwise,- it's routine to calculate structure layout may deviate from that of- the C compiler, which may lead to nasty bugs in bindings.-- - the use of get/set hooks with `class'ed newtypes is complicated, as- the type doesn't match `Ptr a'; see, eg, `GtkCList.cListGetNoOfRows'-- - class methods should be able to get user-defined names (needed for- GtkData.chs)-- - GenBind.mergePtrMap could be improved (see the comment)-- - {#enum ...#} should create an instance of Storable as follows:- instance Storable MyEnum where- sizeOf _ = sizeOf (undefined :: CInt)- alignment _ = alignment (undefined :: CInt)-- peek p = liftM cToEnum $ peek (castPtr p :: Ptr CInt)- poke p v = poke (castPtr p :: Ptr CInt) (cFromEnum v)-- - `GenBind.setGet' needs to take `C2HSConfig.bitfieldDirection' into- account; otherwise, setting and getting of bitfields won't work on- architectures where bitfields start at the MSB (rather than the LSB)-- - Vorschlag von Axel Krauth <krauth@infosun.fmi.uni-passau.de>:- An option with which c2hs prints a list of all functions that have not- been bound in a header file. The Position info schould be sufficient- to determine this. Maybe also add {#ignore foo#}, which makes it not- list a given identifier (for private functions listed in the header).- - In `GdkGL.chs', the prefix is not properly removed from the- constructors of `GdkGL.Configs'; same problem with- `GdkEvents.EventType'- - install the executable (c2hs and c2hs-config) with a version number- suffix and make a symbolic link for the name without version number- (makes installing multiple versions easier)- - #define enum's (see below)- - intro a safe flag (as opposite to unsafe, but make safe the default)- - overload stdAddr etc for ForeignObj (stable ptr & cast)- - C2HSMarsh: from qrczak@knm.org.pl (Marcin 'Qrczak' Kowalczyk)- mallocForeignObj:: Int -> IO ForeignObj -- malloc + freeing finalizer- - C2HSMarsh: - (!!!) :: FromAddr a => Ptr a -> Int -> IO a- p !!! i = do- v <- fixIO $ deref (p `plusAddr` sizeof v * i)- return v- (Use in GdkColor, then)- Part of New FFI, so use that in GdkColor!- - C2HSMarhs:- for compound structures it is inconvenient that in a pointer-based- out, an initial value is needed; thus- out :: (Storable a, FromAddr a) => a -> Marsh a Addr- out x = malloc x :> addrStd- and this is also convenient- inp :: ToAddr a => a -> Marsh () Addr- inp x = stdAddr x :> free- Axel also proposes this- byValue :: b -> Marsh () b- byValue x = use x :> forget- - Axel suggests,- 2b. Automatisches Marshalling von Strukturen.- Eigentlich müßte es doch möglich sein, automatisch Instanzen von- Storable für Strukturen zu erstellen. Falls man mal einen generische- Pointer hat, kann man ja mit der ... as ... Methode eigene- Marshalling Funktionen zur Verfügung stellen. Oder habe ich da etwas- grundsätzliches übersehen? --Short term-~~~~~~~~~~-* cpp directives on the very first line of the .chs file are ignored- because the lexer looks for \n# This is very confusing to users.--* The C99 spec says (sec. 6.7.2.1):-- [#4] Each enumerated type shall be compatible with an- integer type. The choice of type is- implementation-defined but shall be capable of- representing the values of all the members of the- enumeration. [...]-- Hence, c2hs has to be a bit more clever about determining the integral type- used to represent an enum.--* The definition of `GenBind.HsObjectMap' doesn't take into account that in- Haskell a single name can be used for both a type and a class.--* See FIXME at `GenBind.mergeMaps'.--* Explain the grabbing of cpp -I options from -cppopts= (aka -C) values better - in the docu and add something like:-- I prefer that to giving an option to c2hs and passing it to- cpp, because - as you say - you usually already have a- variable with the cpp options in your makefile and this way- you can easily reuse it.--* #define enums in C: siehe unten - scheinen aber wichtig--* In pointer hooks after a `->', we currently allow only type identifiers;- other forms of Haskell types would be nice, too (especially, `()').--* A function prototype that uses a defined type on its left hand side may- declare a function, while that is not obvious from the declaration itself- (without also considering the `typedef'). This is not understood by- `GenBind' so far.--* Why is a stable name an `unsigned long' in C land? How about a `void *' and - being able to get the `Addr' also in Haskell land?--* if in a binding file erroneously `t->m' is used instead of `t.m' and `t' is- the tag of a struct, the error message just complains that there is no type- object for called `t'; it would be more user friendly to report in addition- that the tag `t' exists, but cannot be used in this expression--* Should it be possible to specify a calling convention in context hook?- Isn't it a mitake to have explicit calling convention in the FFI? Shouldn't - that be adapted automatically depending on the target architecture?--* Sven: How about exporting Haskell functions (also dynamic export)?- - callback registration function that explicitly have the type of the- callback function (from which we might want to generate a foreign export- dynamic). --* `mapM raise errs' in `lexC' increases the heap usage by a factor of _8_ when - running the lexer alone on `gtkext.h' - probably because the whole analysis- has to be completed before we can be sure to have no error (and this kills- an interlocked produced/consumer scheme for the lexer and whatever function- is consuming the tokens).--* sizeof and type hooks do only allow defined, but not basic types as- arguments. This is not a real problem as C2HS provides all the needed- information to circumvent such usage, but it would still be more elegant to- support basic types as arguments, too.--Middle term-~~~~~~~~~~~--* A hook {#const <C expr>#} would be nice (as in hsc2hs). Unfortunately, it- is not that easy to realise. We need to parse the <C expr> in the binding- module. Moreover, the main value of this would be when the <C expr> is- put into the C field together with `enum define' stuff, so that all- pre-processor symbols in it are resolved. However, this can easily give us- C compiler errors. A cheap way out would be {#const "C expr"#} to avoid- parsing the C expression, but then we can get even more errors during- compiling the C.--* C->HS might get a lot easier to use by providing as optional marshalling- libraries modules that handle often occurring standard stuff like converting - `time_t' to `CalendarTime' or handle sockets etc. We would, then, probably- like to have a matching Posix or so library.-------------- Pre-1.0 rewrite -----------------Problems:--* There are some implicit requirements on the position of binding hooks, which- the tool doesn't really enforce: context must be first, context and enum may- only occur where a toplevel definition is allowed. (This should be checked- before `GenBind' is used.) We can not really check that a hook is in a- position where a toplevel definition is allowed (without analysing- significant parts of the Haskell code), but we can at least guarantee that- these hooks occur in column position 0.--* Sven: #define enums in C: Introduce (#enum define SomeEnum {...}#) hooks- that collect `#define' symbols into an enumeration type; see also- +haskell/4025. One probem: If identifiers with the same lexeme as- `SomeEnum' or the enum members are already defined in the C header, we might - get conflicts.-- The problem of this approach is that if the macro expands to something that- is not a constant expression C, we will get error messages from the- preprocessor, which are strange to the user.-- Further idea, Michael's: extensible enums-- There are, however, a number of interesting options supported by gcc -E that- might make alternative solutions to the problem feasible.--END of ----- Pre-1.0 rewrite -----------------* Do we like direct support for mapping complete structs (if they are- sufficiently wellbehaved?) into Haskell data structures - both by generating- the Haskell data type definitions and by generating a `cFrom<Struct>' and a- `cTo<Struct>' routine. The latter would be generated as a cascade of field- hooks. H/Direct's formal definition of structure marshalling might be- helpful here.--* Support for evaluating constants is not complete yet. In this context, it- should probably also be checked, when there are two overlapping tags in an- enum (this is allowed in C, but is problematic for marshaling). --* How about Hugs support? Is it already possible with current Hugs?---Release Checklist-~~~~~~~~~~~~~~~~~--(1) In root of working directory,-- % make tar-c2hs--(2) Compile the resulting source distribution with latest ghc stable release:-- % tar xzf c2hs-x.y.z.tar.gz- % cd c2hs-x.y.z- % ./configure- % make--(3) Install and regression testing:-- - Installation procedure-- % make install-- - Tests in build/ghc?/c2hs/tests/ directory--(4) Check documentation and add release notes--(5) Extended build test: build with older stable release of ghc and with the- cvs version--(6) Register CVS tags for CTK and C->HS (syntax: Release-c2hs_x_y_z)--(7) Make newest `tar' and build rpm--(8) Put tar.gz and rpm sources and binaries up on Web page--(9) Optionally also release the current version of CTK--(10) Update the documentation under the Web page's docu/ directory--(11) Announce: haskell@haskell.org, freshmeat.net
− TODO.CTKlight
@@ -1,81 +0,0 @@- -*-text-*-- Compiler Base TODO- ==================--Next: ---Short Term:-~~~~~~~~~~~-* See general/UNames.hs for nhc98 induced ugliness; change when nhc98 is fixed--* Lexers: For unicode `Char', we need to explicit support for positive and- negated ranges such as ['\0'..'\255'] and ['\0'..'\255'] \\ ['a'..'c'],- where the latter is usually written [^abc] (see the haskell-cafe- discussion).--* Roman introduced the class `Printable'. A general class based pretty-print- system would be nice.--* Parsers: Roman had the idea of allowing boolean functions to disambiguate- the parse table where two rules cannot be distinguished by the usual LL- mechanism alone (see emails).--* Identifiers in any of the intermediate languages that have the same lexeme as- a keyword or a predefined identifier should always been pretty-printed in- their quoted form.-- Difficult to know for each IL which identifiers have to be treated specially.- We need a kind of IL-dependent exception list.--Middle Term:-~~~~~~~~~~~~-* Use a different attribute mechanism. The stuff started for the flatten- prototype looks quite promising. Observations:-- - Current hipar system with a unique in every node => makes it complicated- to construct/transform trees, as we always have to clone subtress in a- monad.- - GHC's system => when attributes of an identifier are updated, the- "new" identifiers have to substituted into all expression that contain- usage occurences.--* Graph processing support: Does it need to be a new mechanism or can we- realise it via Attrs (what kind of generic functions could we provide). One- possibility is the use of an `Bool' attribute used to implement fast sets- (eg, marking). (If there is a lot of marking, we might want to realise- indexing with attributes via hashing to be able to work with sparse keys and - to already have O(1) during attribute table construction.)--* `FiniteMap' should be an instance of `Functior' with `fmap = mapFM'--* configuration shouldn't be in--* FNameOps, FileOps: Introduce an autoconf set variable that determines- whether "/" or "\" is used as a delimiter in paths--* Lexers: * After a certain number of errors (say 50); abort lexing.--* Parsers (maybe similar problem with Lexers): If the grammar is not LL(1), we - just get an `ambiguous grammar' error message at runtime without any hint,- which part of the grammer might be ambiguous. This is too hard to debug!--* In the language-specific `XXXAttrs.hs' modules, the routines for handling - the different on the attribute tables have always the same structure; Only- the access to the `AttrXXX' datatype is different. It should be possible to- generalize them.-- Moreover, the `referring identifier information' is always needed and might- be generalized.--* The handling of state could be improved by revising the state modules and- using constructor classes and monad transformers.-- Currently, we only define the state type abstractly when generating a new- instance of `CST'. This is in order to be able to use the generic- operations, such as I/O, also in the monad instance. But this comprises the - security of the monad encapsulation as also the generic functions that allow - to extract and copy the state can be used. Ideally, we want to lift generic - operations like I/O automagically into the new monad and to protect it from- access to its state. Furthermore, some support for stripping and attaching- of the type-tag (intro with `newtype') would be nice.
c2hs.cabal view
@@ -1,5 +1,5 @@ Name: c2hs-Version: 0.28.3+Version: 0.28.4 License: GPL-2 License-File: COPYING Copyright: Copyright (c) 1999-2007 Manuel M T Chakravarty@@ -19,7 +19,7 @@ correct Haskell types. Category: Development Tested-With: GHC==6.12.3, GHC==7.0.4, GHC==7.6.1, GHC==7.6.3, GHC==7.8.3, GHC==7.10.1-Cabal-Version: >= 1.8+Cabal-Version: >= 1.10 Build-Type: Simple --TODO: Cabal should allow 'Data-Files' in the executable stanza@@ -112,7 +112,7 @@ Executable c2hs Build-Depends: base >= 2 && < 5, bytestring,- language-c >= 0.7.1 && < 0.8,+ language-c >= 0.7.1 && < 0.9, filepath, dlist @@ -150,10 +150,11 @@ System.CIO Text.Lexers - extensions: ForeignFunctionInterface+ default-extensions: ForeignFunctionInterface c-sources: src/C2HS/config.c --TODO: eliminate the need to suppress these warnings: ghc-options: -Wall -fno-warn-incomplete-patterns -fwarn-tabs+ default-language: Haskell2010 Test-Suite test-bugs type: exitcode-stdio-1.0@@ -168,6 +169,7 @@ shelly >= 1.0, text, transformers+ default-language: Haskell2010 Test-Suite test-system type: exitcode-stdio-1.0@@ -181,6 +183,7 @@ shelly >= 1.0, text, transformers+ default-language: Haskell2010 Flag regression description: Enable regression suite build.@@ -197,3 +200,4 @@ yaml >= 0.8 else buildable: False+ default-language: Haskell2010
− custom-setup.hs
@@ -1,92 +0,0 @@------ This Cabal setup script should ONLY be used in cases WHERE:------ the bare structure wrapper capability of C2HS is used (i.e. '%'--- characters on pointer type arguments in "fun" hooks);------ AND------ a version of Cabal is being used that does not allow--- preprocessors to specify extra C sources (versions of--- cabal-install <= 1.22.0.0).------ Otherwise Cabal should be able to deal with the extra C sources--- itself.------ If in doubt, ask...-----module Main (main) where--import Control.Exception (catch)-import Control.Monad (forM)--import Distribution.PackageDescription- (BuildInfo(..), Executable(..), Library(..), PackageDescription(..))-import Distribution.Simple (UserHooks(..),- defaultMainWithHooks, simpleUserHooks)-import Distribution.Simple.LocalBuildInfo (LocalBuildInfo(..))-import Distribution.Simple.Setup (BuildFlags)--- Test-suites require Cabal-1.10 or greater-import Distribution.PackageDescription (TestSuite(..))--- Benchmarks require Cabal-1.14 or greater-import Distribution.PackageDescription (Benchmark(..))--import System.Directory (doesDirectoryExist, getDirectoryContents)-import System.Exit (ExitCode)-import System.FilePath ((</>), takeExtensions)--main :: IO ()-main = defaultMainWithHooks simpleUserHooks { buildHook = chsBuildHook }--addCSources :: [FilePath] -> BuildInfo -> BuildInfo-addCSources newSrcs bi@(BuildInfo { cSources = oldSrcs }) =- bi { cSources = newSrcs ++ oldSrcs }--hasChsCExtension :: FilePath -> Bool-hasChsCExtension file = takeExtensions file == ".chs.c"--getRecursiveContents :: FilePath -> IO [FilePath]-getRecursiveContents topdir = do- topdirExists <- doesDirectoryExist topdir- if (not topdirExists)- then return []- else do- names <- getDirectoryContents topdir- let properNames = filter (`notElem` [".", ".."]) names- paths <- forM properNames $ \name -> do- let path = topdir </> name- isDirectory <- doesDirectoryExist path- if isDirectory- then getRecursiveContents path- else return [path]- return (concat paths)--chsBuildHook :: PackageDescription -> LocalBuildInfo -> UserHooks ->- BuildFlags -> IO ()-chsBuildHook pd lbi uh bf = hook `catchExitCode` \_ -> hook- where- hook :: IO ()- hook = chsBuildHook' pd lbi uh bf-- catchExitCode :: IO a -> (ExitCode -> IO a) -> IO a- catchExitCode = catch--chsBuildHook' :: PackageDescription -> LocalBuildInfo -> UserHooks ->- BuildFlags -> IO ()-chsBuildHook' pd@(PackageDescription- { library = mbLib- , executables = exes- , testSuites = tss- , benchmarks = bms- })- lbi uh bf = do- let distBuildDir = buildDir lbi- chsCFiles <- fmap (filter hasChsCExtension) $- getRecursiveContents distBuildDir- let pd' = pd { library = fmap (\lib -> lib { libBuildInfo = addCSources chsCFiles (libBuildInfo lib) }) mbLib- , executables = fmap (\exe -> exe { buildInfo = addCSources chsCFiles (buildInfo exe) }) exes- , testSuites = fmap (\ts -> ts { testBuildInfo = addCSources chsCFiles (testBuildInfo ts) }) tss- , benchmarks = fmap (\bm -> bm { benchmarkBuildInfo = addCSources chsCFiles (benchmarkBuildInfo bm) }) bms- }- buildHook simpleUserHooks pd' lbi uh bf
− examples/libghttpHS/Ghttp.chs
@@ -1,326 +0,0 @@--- GhttpHS: Haskell binding to the Gnome HTTP library -*-haskell-*------- Author : Manuel M. T. Chakravarty--- Created: 5 August 99------ Copyright (c) [1999..2000] Manuel M. T. Chakravarty------ This library is free software; you can redistribute it and/or--- modify it under the terms of the GNU Library General Public--- License as published by the Free Software Foundation; either--- version 2 of the License, or (at your option) any later version.------ This library is distributed in the hope that it will be useful,--- but WITHOUT ANY WARRANTY; without even the implied warranty of--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU--- Library General Public License for more details.------- DESCRIPTION --------------------------------------------------------------------- The C library `libghttp' provides a set of common http functions needed at --- the client and the server end of an http connection. The Haskell binding--- is generated with the help of the C->Haskell tool - always modify the--- original .chs file, _not_ the generated .hs file.------ This library is fully compliant with HTTP 1.1 as defined in the draft 5--- update of RFC 2068. ------- DOCU ---------------------------------------------------------------------------- language: Haskell 98 & C->HS binding hooks (v0.7.5)------ ** Stylistic warning: In the definition of `CurrentStatus', the field--- labels do not contain the name of the data type to which they belong.--- This is _not_ good practice in larger interfaces, because in Haskell--- such field labels pollute the global name space.------- TODO ---------------------------------------------------------------------------- * When and by whom is the memory area passed to `ghttp_set_body' be freed; --- how about the string returned from `ghttp_get_body'?------ * Conversion of `time_t' misses for `parseDate'.-----module Ghttp (Request, URI, Type(..), SyncMode(..), Status(..), Proc(..),- CurrentStatus(..),- requestNew, requestDestroy, uriValidate, setURI, setProxy,- setType, setBody, setSync, prepare, setChunksize, setHeader,- process, getStatus, getHeader, close, clean, getSocket, getBody, - getError, {-parseDate,-} setAuthinfo, setProxyAuthinfo)-where---- C->HS marshalling library----import C2HS--import Monad (liftM, when)-import IOExts (unsafePerformIO)---{#context lib="libghttp" prefix="ghttp"#}----- data structures--- ------------------- abstract handle for a http request object (EXPORTED ABSTRACTLY)----newtype Request = Request Addr---- Uniform Resource Indicators (EXPORTED)----type URI = String---- body type (EXPORTED)----{#enum ghttp_type as Type {underscoreToCase}#}---- synchronous/asynchronous mode (EXPORTED)----{#enum sync_mode as SyncMode {underscoreToCase}#}---- request status (EXPORTED)----{#enum status as Status {underscoreToCase}#}---- describes the activity of a request (EXPORTED)----{#enum proc as Proc {underscoreToCase}#}---- status descriptor (EXPORTED)----data CurrentStatus = CurrentStatus {- proc :: Proc, -- What's it doing?- bytesRead :: Int, -- How many bytes have been read?- bytesTotal :: Int -- How many bytes total?- }---- error types----invalidURI, illegalRequest :: String-invalidURI = "Ghttp: The Uniform Resource Indicator is invalid."-illegalRequest = "Ghttp: The request is illegal or unsupported."----- functions--- ------------- create a new request object (EXPORTED)----requestNew :: IO Request-requestNew = liftM Request {#call unsafe request_new#}---- delete a current request object (EXPORTED)----requestDestroy :: Request -> IO ()-requestDestroy (Request reqa) = {#call unsafe request_destroy#} reqa---- validate a uri (EXPORTED)----uriValidate :: URI -> Bool-uriValidate uri = - let res = unsafePerformIO $- {#call unsafe uri_validate#} `marsh1_` (stdAddr uri :> free)- in- res == -1---- set a uri in a request (EXPORTED)------ * raise an exception if the URI is not valid----setURI :: Request -> URI -> IO ()-setURI (Request reqa) uri = - {#call unsafe set_uri#} reqa `marsh1_` (stdAddr uri :> free)- `ifNegRaise_` invalidURI---- set a proxy for a request (EXPORTED)------ * raise an exception if the request is not valid----setProxy :: Request -> URI -> IO ()-setProxy (Request reqa) uri = - {#call unsafe set_proxy#} reqa `marsh1_` (stdAddr uri :> free)- `ifNegRaise_` illegalRequest---- set a request type (EXPORTED)------ * raise an exception if the request is not valid----setType :: Request -> Type -> IO ()-setType (Request reqa) rtype = - {#call unsafe set_type#} reqa (cFromEnum rtype)- `ifNegRaise_` illegalRequest---- set the body (EXPORTED)------ * raise an exception if the request is not valid----setBody :: Request -> String -> IO ()-setBody (Request reqa) body =- do- (box, len) <- listToAddrWithLen body- {#call unsafe set_body#} reqa box (cFromInt len)- `ifNegRaise_` illegalRequest---- set whether or not you want to use sync or async mode (EXPORTED)------ * raise an exception if the request is not valid----setSync :: Request -> SyncMode -> IO ()-setSync (Request reqa) smode =- {#call unsafe set_sync#} reqa (cFromEnum smode)- `ifNegRaise_` illegalRequest---- Prepare a request; call this before trying to process a request or if you--- change the uri (EXPORTED)------ * raise an exception if the request is not valid----prepare :: Request -> IO ()-prepare (Request reqa) =- {#call unsafe prepare#} reqa- `ifNegRaise_` illegalRequest---- set the chunk size; you might want to do this to optimize for different--- connection speeds (EXPORTED)----setChunksize :: Request -> Int -> IO ()-setChunksize (Request reqa) size =- {#call unsafe set_chunksize#} reqa (cFromInt size)---- set a random request header (EXPORTED)----setHeader :: Request -> String -> String -> IO ()-setHeader (Request reqa) hdr val =- {#call unsafe set_header#} reqa- `marsh2_` (stdAddr hdr :> free)- $ (stdAddr val :> free)---- process a request (EXPORTED)----process :: Request -> IO Status-process (Request reqa) = liftM cToEnum $ {#call unsafe process#} reqa---- get the status of a request (EXPORTED)----getStatus :: Request -> IO CurrentStatus-getStatus (Request reqa) =- {#call unsafe ghttpHS_get_status #} reqa >>= cFromCurrentStatus---- get the value of a random response header (EXPORTED)----getHeader :: Request -> String -> IO String-getHeader (Request reqa) hdr =- {#call unsafe get_header#} reqa `marsh1_` (stdAddr hdr :> free)- >>= addrStd---- abort a currently running request (EXPORTED)------ * raise an exception if the request is not valid----close :: Request -> IO ()-close (Request reqa) = {#call unsafe close#} reqa- `ifNegRaise_` illegalRequest---- clean a request (EXPORTED)----clean :: Request -> IO ()-clean (Request reqa) = {#call unsafe clean#} reqa---- get the socket associated with a particular connection (EXPORTED)------ * raise an exception if the request is not valid----getSocket :: Request -> IO Int-getSocket (Request reqa) = {#call unsafe get_socket#} reqa- `ifNegRaise` illegalRequest---- get the return entity body (EXPORTED)------ * this includes getting the length with `ghttp_get_body_len', as the string --- is not necessarily \0 terminated----getBody :: Request -> IO String-getBody (Request reqa) = - do- bodyAddr <- {#call unsafe get_body#} reqa- `ifNullRaise` illegalRequest- bodyLen <- {#call unsafe get_body_len#} reqa- addrWithLenToList bodyAddr (cToInt bodyLen)---- get an error message for a request that has failed (EXPORTED)----getError :: Request -> IO String-getError (Request reqa) = - {#call unsafe get_error#} reqa >>= addrStd---- parse a date string that is one of the standard date formats (EXPORTED)----{-parseDate :: String -> CalendarTime-parseDate str = - do- time_t <- {#call unsafe parse_date#} `fromString` str- time <- toCalendarTime- -}---- return the status code (EXPORTED)----statusCode :: Request -> IO Int-statusCode (Request reqa) = - liftM cToInt $ {#call unsafe status_code#} reqa---- return the reason phrase (EXPORTED)------ * raise an exception if the request is not valid----reasonPhrase :: Request -> IO String-reasonPhrase (Request reqa) = - ({#call unsafe reason_phrase#} reqa- `ifNullRaise` illegalRequest- ) >>= addrStd---- set your username/password pair (EXPORTED)------ * raise an exception if the request is not valid----setAuthinfo :: Request -> String -> String -> IO ()-setAuthinfo (Request reqa) user pass =- ({#call unsafe set_authinfo#} reqa - `marsh2_` (stdAddr user :> free)- $ (stdAddr pass :> free)- )- `ifNegRaise_` illegalRequest---- set your username/password pair for proxy (EXPORTED)------ * raise an exception if the request is not valid----setProxyAuthinfo :: Request -> String -> String -> IO ()-setProxyAuthinfo (Request reqa) user pass =- ({#call unsafe set_proxy_authinfo#} reqa - `marsh2_` (stdAddr user :> free)- $ (stdAddr pass :> free)- )- `ifNegRaise_` illegalRequest----- auxilliary marshalling function--- ----------------------------------- marshal the elements of a `ghttp_current_status' struct to Haskell land------ * frees the C struct----cFromCurrentStatus :: Addr -> IO CurrentStatus-cFromCurrentStatus csPtr = - do- proc <- liftM cToEnum$ {#get current_status.proc#} csPtr- read <- liftM cToInt $ {#get current_status.bytes_read#} csPtr- total<- liftM cToInt $ {#get current_status.bytes_total#} csPtr- free csPtr- return $ CurrentStatus {- proc = proc,- bytesRead = read,- bytesTotal = total- }
− examples/libghttpHS/Makefile
@@ -1,46 +0,0 @@-# GnomeHaskell bindings: Gnome HTTP library-#-# Author : Manuel M. T. Chakravarty-# Created: 8 October 1999-#-# Copyright (c) 1999 Manuel M. T. Chakravarty-#-# This file is free software; you can redistribute it and/or modify-# it under the terms of the GNU General Public License as published by-# the Free Software Foundation; either version 2 of the License, or-# (at your option) any later version.-#-# This file is distributed in the hope that it will be useful,-# but WITHOUT ANY WARRANTY; without even the implied warranty of-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-# GNU General Public License for more details.-#-# = DOCU =====================================================================-#-# = TODO =====================================================================-#-# * Let configure do the dirty work; how about automake--# the commented out variants are to be used if the directory is moved out of -# the C->HS source tree-#-GHC=ghc-#C2HS=c2hs-C2HS=../../c2hs-GHTTP_HEADER=ghttpHS.h-#HCFLAGS=`c2hs-config --cflags`-HCFLAGS=-i../../lib -fglasgow-exts--OBJS=Ghttp.o ghttpHS.o--Ghttp.hs: Ghttp.chs ghttpHS.h- $(C2HS) $(GHTTP_HEADER) Ghttp.chs--Ghttp.o: Ghttp.hs ghttpHS.h- $(GHC) '-#include"ghttpHS.h"' $(HCFLAGS) -c $<--ghttpHS.o: ghttpHS.h ghttpHS.c--libghttpHS.a: $(OBJS)- -$(RM) $@- $(AR) -crs $@ $(OBJS)
− examples/libghttpHS/ghttpHS.c
@@ -1,22 +0,0 @@-/* Auxiliary C code for Ghttp.- *- * Copyright (c) 1999 Manuel M. T. Chakravarty- *- * This is required due to the inability of GHC's FFI to pass structures from C- * to Haskell.- */--#include "ghttpHS.h"--ghttp_current_status *ghttpHS_get_status (ghttp_request *a_request)-{- ghttp_current_status *status;-- status = (ghttp_current_status *) malloc (sizeof (ghttp_current_status));- if (!status) {- printf ("Ghttp: ghttpHS_get_status: Out of memory!");- exit (1);- }- *status = ghttp_get_status (a_request);- return status;-}
− examples/libghttpHS/ghttpHS.h
@@ -1,21 +0,0 @@-/* Auxiliary C code for Ghttp.- *- * Copyright (c) 1999 Manuel M. T. Chakravarty- *- * This is required due to the inability of GHC's FFI to pass structures from C- * to Haskell.- */--#ifndef __GHTTPHS_H__-#define __GHTTPHS_H__---#include <ghttp.h>--/* returns a reference to a newly allocated memory area holding the result of - * the corresponding vanilla `libghttp' function- */-ghttp_current_status *ghttpHS_get_status (ghttp_request *a_request);---#endif /* __GHTTPHS_H__ */
− import-handling.md
@@ -1,104 +0,0 @@-## Potentially breaking changes: import handling--#### The problem--Previous releases of C2HS had an annoying misfeature -- you had to-manage the imports of Haskell library functions in C2HS-generated code-yourself. Suppose you had the following code in a `.chs` file:--``` haskell-#include "issue44.h"--{#pointer *foo as ^ foreign newtype#}-```--where the contents of the `issue44.h` header are:--``` c-typedef struct { int a; } foo;-```--Running C2HS would then generate the following Haskell code:--``` haskell-newtype Foo = Foo (ForeignPtr (Foo))-withFoo :: Foo -> (Ptr Foo -> IO b) -> IO b-withFoo (Foo fptr) = withForeignPtr fptr-```--Note the use of the names `ForeignPtr`, `Ptr` and `withForeignPtr`.-These come from the Haskell library modules `Foreign.Ptr` and-`Foreign.ForeignPtr`, but C2HS didn't generate any `import`-declarations to make these modules accessible. This meant that there-would normally be a bit of back and forth when writing C2HS code:-write your bindings, run C2HS, try compiling with GHC, have the-compile fail because of missing imports, add the imports to your-`.chs` file and repeat. Kind of annoying.--As well as being annoying, the lack of import declaration generation-meant that it was sometimes impossible to make internal changes to the-way that C2HS binds to C functions without breaking existing user-code. The example that finally drove me to try to fix this was issue-130 (https://github.com/haskell/c2hs/issues/130) that required a-change that would lead to most C2HS code now needing to import-`unsafePerformIO`. It didn't seem like a good idea to push a change-like that (that would break more or less all C2HS code out there!)-without fixing the import problem (so that the change for issue #130-could happen transparently to all existing working C2HS code).---#### The solution--The solution I ended up with is pretty simple, but I think it's-robust. For the example above, C2HS now generates the following-Haskell code:--``` haskell-import qualified Foreign.ForeignPtr as C2HSImp-import qualified Foreign.Ptr as C2HSImp--newtype Foo = Foo (C2HSImp.ForeignPtr (Foo))-withFoo :: Foo -> (C2HSImp.Ptr Foo -> IO b) -> IO b-withFoo (Foo fptr) = C2HSImp.withForeignPtr fptr-```--All library symbols needed to generate Haskell binding code are now-qualified under the name `C2HSImp` and the relevant library modules-are imported qualified as `C2HSImp`.--The end result of this is that you still need to import modules only-for names that you explicitly use (so if you use `alloca` in an input-marshaller, you need to import `Foreign.Marshal.Alloc`). All external-names that C2HS uses in code that it generates should be imported-automatically.---#### Potential complaints--1. Modules compiled with `-Werror` may now fail because of unused- import warnings. This was something I had to deal with for most of- the C2HS test cases (since they all imported the required library- modules and they're mostly compiled with `-Werror`), but since the- community consensus seems to be that `-Werror` shouldn't be used in- released code, I think it's reasonable to allow the possibility of- this kind of breakage.--2. It's possible that the code I wrote for deciding where to put the- extra import declarations isn't quite perfect. I tried a couple of- different solutions, but ended up with a hand-made "find the first- safe place to add imports" function that relies quite heavily on- the details of C2HS's CHS file parser. I did try a solution based- on `haskell-src-exts`, but this didn't work very well, because- `haskell-src-exts` doesn't support all available GHC extensions and- I would have needed some mechanism to propagate extension- information from Cabal files to C2HS to make the parsing work.--These changes have been tested reasonably extensively -- all of the-core C2HS tests pass, and the following packages are known to work-(they're all in the regression suite): abcBridge, alsa-mixer, cuda,-cufft, gnome-keyring, gnuidn, haskell-mpi, hnetcdf, hpuz, hsndfile,-hsshellscript, igraph, libssh2.--I'll be adding more packages to the regression suite, but if there's a-package you're particularly concerned about that's not on this list,-let me know.
− regression-suite-vm/Vagrantfile
@@ -1,9 +0,0 @@-Vagrant.configure("2") do |config|- config.vm.box = "c2hs-regression-suite.box"-- config.vm.provider :virtualbox do |vb|- vb.gui = false- vb.customize ["modifyvm", :id, "--memory", "2048"]- vb.customize ["modifyvm", :id, "--cpus", "2"]- end-end
− regression-suite-vm/Vagrantfile-full
@@ -1,84 +0,0 @@-$script = <<SCRIPT--set -e--# Initial APT package installation--sed -i -e 's/us.archive.ubuntu.com/gb.archive.ubuntu.com/g' /etc/apt/sources.list-sed -i -e '/trusty multiverse/s/^# //' -e '/trusty-updates multiverse/s/^# //' /etc/apt/sources.list--apt-get update-apt-get install -y python-pip-pip install awscli--mkdir cuda-packages-aws s3 sync s3://cuda-packages ./cuda-packages-dpkg -i ./cuda-packages/cuda-repo-ubuntu1204_6.5-14_amd64.deb-/bin/rm ./cuda-packages/cuda-repo-ubuntu1204_6.5-14_amd64.deb-mv ./cuda-packages/*.deb /var/cache/apt/archives-/bin/rm -fr ./cuda-packages--apt-add-repository -y ppa:igraph/ppa-apt-get update--PACKAGES="alex build-essential git happy libatlas-base-dev libgmp-dev- liblapack-dev libnetcdf-dev unzip zlib1g-dev libopencv-dev- libcv-dev libhighgui-dev libgnome-keyring-dev libgsl0-dev- libsndfile1-dev libqtscript4-core libqt4-declarative- libigraph0-dev acpid consolekit dkms lib32gcc1 libc-bin- libc-dev-bin libc6 libc6-dev libc6-i386 libck-connector0- libpam-ck-connector libpolkit-agent-1-0- libpolkit-backend-1-0 libpolkit-gobject-1-0 libvdpau1- libxmu-dev libxmu-headers policykit-1 policykit-1-gnome- python-xkit screen-resolution-extra cuda libasound2-dev- libidn11-dev libopenmpi-dev libssh2-1-dev"--apt-get install -y $PACKAGES--cd /usr/lib/x86_64-linux-gnu-ln -s libgmp.so.10 libgmp.so.3-cd /root---# GHC and Cabal installation-wget https://www.haskell.org/ghc/dist/7.8.3/ghc-7.8.3-x86_64-unknown-linux-deb7.tar.xz-tar xJf ghc-7.8.3-x86_64-unknown-linux-deb7.tar.xz-cd ghc-7.8.3-./configure-make install-cd ..-/bin/rm -fr ghc-7.8.3*--wget https://www.haskell.org/cabal/release/cabal-install-1.20.0.3/cabal-install-1.20.0.3.tar.gz-tar xzf cabal-install-1.20.0.3.tar.gz-cd cabal-install-1.20.0.3-./bootstrap.sh-cd ..-/bin/rm -fr cabal-install-1.20.0.3*--if [ ! -f /usr/bin/cabal-1.20 ]; then- cp /root/.cabal/bin/cabal /usr/bin/cabal-1.20- (cd /usr/bin/ && rm -rf cabal && ln -s cabal-1.20 cabal)-fi--echo "export PATH=\$HOME/.cabal/bin:\$PATH" >> /etc/bash.bashrc-echo "export PATH=/usr/local/cuda-6.5/bin:\$PATH" >> /etc/bash.bashrc--su vagrant -c 'cabal update'--SCRIPT--Vagrant.configure("2") do |config|- config.vm.box = "trusty-server-cloudimg-amd64-vagrant-disk1.box"- config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"-- config.vm.synced_folder "..", "/home/vagrant/c2hs"-- config.vm.provider :virtualbox do |vb|- vb.gui = false- vb.customize ["modifyvm", :id, "--memory", "2048"]- vb.customize ["modifyvm", :id, "--cpus", "2"]- end-- config.vm.provision "shell", inline: $script-end
− regression-suite-vm/run-regression
@@ -1,20 +0,0 @@-#!/bin/bash--branch=${1:-master}--vagrant up-vagrant ssh <<EOF-/bin/rm -fr c2hs-export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH-git clone https://github.com/haskell/c2hs.git-cd c2hs-git checkout $branch-cabal update-cabal install --only-dep --enable-tests -fregression-cabal install-cabal configure --enable-tests -fregression-cabal build && cabal test-export C2HS_REGRESSION_SUITE=1-./dist/build/regression-suite/regression-suite-EOF-vagrant destroy -f
src/C2HS/Gen/Bind.hs view
@@ -112,13 +112,15 @@ -- standard libraries import Data.Char (toLower, isSpace)+import Data.List (stripPrefix) import Data.Function (on) import Data.IORef (IORef, newIORef, readIORef, writeIORef) import System.IO.Unsafe (unsafePerformIO) import System.IO (withFile, hPutStrLn, IOMode(..)) import System.Exit (ExitCode(..)) import System.Directory (removeFile)-import System.Process (readProcessWithExitCode, system)+import System.FilePath (isPathSeparator)+import System.Process (readProcessWithExitCode, rawSystem) import Data.List (deleteBy, groupBy, sortBy, intersperse, find, nubBy, intercalate, isPrefixOf, isInfixOf, foldl') import Data.Map (lookup)@@ -3049,7 +3051,8 @@ hPutStrLn h "#include <stdio.h>" hPutStrLn h $ "int main(int argc, char *argv[]) " ++ "{ printf(\"%u\\n\", sizeof(_Bool)); return 0; }"- gcccode <- system $ cCompiler ++ " -o c2hs__bool_size c2hs__bool_size.c"++ gcccode <- rawSystem cCompiler ["-o", "c2hs__bool_size", "c2hs__bool_size.c"] when (gcccode /= ExitSuccess) $ error "Failed to compile 'bool' size test program!" (code, stdout, _) <- readProcessWithExitCode "./c2hs__bool_size" [] ""@@ -3057,7 +3060,11 @@ error "Failed to run 'bool' size test program!" let sz = read stdout :: Int removeFile "c2hs__bool_size.c"+#if defined(mingw32_HOST_OS)+ removeFile "c2hs__bool_size.exe"+#else removeFile "c2hs__bool_size"+#endif return sz cBoolSize :: Int@@ -3084,8 +3091,21 @@ when (code /= ExitSuccess) $ error "Failed to determine C compiler from 'ghc --info'!" let vals = read stdout :: [(String, String)]- case Prelude.lookup "C compiler command" vals of- Nothing -> error "Failed to determine C compiler from 'ghc --info'!"- Just cc -> do- writeIORef cCompilerRef $ Just cc- return cc+ case (Prelude.lookup "C compiler command" vals, Prelude.lookup "LibDir" vals) of+ (Just cc, Just topDir) -> do+ -- ensure that $topdir is expanded+ let mungedCc = mungePath topDir cc+ writeIORef cCompilerRef $ Just mungedCc+ return mungedCc+ _ -> error "Failed to determine C compiler from 'ghc --info'!" ++ where+ -- adapted from ghc/compiler/main/Packages.hs+ mungePath topDir p+ | Just p' <- stripVarPrefix "$topdir" p = topDir ++ p'+ | otherwise = p++ stripVarPrefix var path = case stripPrefix var path of+ Just [] -> Just []+ Just cs@(c : _) | isPathSeparator c -> Just cs+ _ -> Nothing
− tests/bugs/issue-192/Issue192.chs
@@ -1,3 +0,0 @@-module Issue192 where--#include "issue-192.h"
− tests/bugs/issue-192/issue-192.h
@@ -1,2 +0,0 @@-extern int __fpclassifyf128 (_Float128 __value) __attribute__ ((__nothrow__ , __leaf__))- __attribute__ ((__const__));
− tests/bugs/issue-37/Issue37.chs
@@ -1,17 +0,0 @@-module Main where--import Foreign-import Foreign.C--#include "issue37.h"--{#fun f1 {`Int'} -> `Int'#}--{#fun f2 {`Float'} -> `Float'#}--main :: IO ()-main = do- tst1 <- f1 7- tst2 <- f2 23- putStrLn $ if tst1 == 14 then "SAME" else "DIFF"- putStrLn $ if tst2 == 69 then "SAME" else "DIFF"
− tests/bugs/issue-37/issue37.c
@@ -1,12 +0,0 @@-#include "issue37.h"--int f1(int *np)-{- return *np * 2;-}---float f2(float *np)-{- return *np * 3;-}
− tests/bugs/issue-37/issue37.h
@@ -1,2 +0,0 @@-int f1(int *np);-float f2(float *np);
− tests/bugs/issue-82/include/Availability.h
@@ -1,145 +0,0 @@-/*- * Copyright (c) 2007-2009 by Apple Inc.. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */- -#ifndef __AVAILABILITY__-#define __AVAILABILITY__- /* - These macros are for use in OS header files. They enable function prototypes- and Objective-C methods to be tagged with the OS version in which they- were first available; and, if applicable, the OS version in which they - became deprecated. - - The desktop Mac OS X and the iPhone OS X each have different version numbers.- The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop- and phone OS version numbers. For instance:- __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)- means the function/method was first available on Mac OS X 10.2 on the desktop- and first available in OS X 2.0 on the iPhone.- - If a function is available on one platform, but not the other a _NA (not- applicable) parameter is used. For instance:- __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)- means that the function/method was first available on Mac OS X 10.3, and it- currently not implemented on the iPhone.-- At some point, a function/method may be deprecated. That means Apple- recommends applications stop using the function, either because there is a - better replacement or the functionality is being phased out. Deprecated- functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()- macro which specifies the OS version where the function became available- as well as the OS version in which it became deprecated. For instance:- __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)- means that the function/method was introduced in Mac OS X 10.0, then- became deprecated beginning in Mac OS X 10.5. On the iPhone the function - has never been availlable. - - For these macros to function properly, a program must specify the OS version range - it is targeting. The min OS version is specified as an option to the compiler:- -mmacosx-version-min=10.x when building for Mac OS X, and -miphone-version-min=1.x.x- when building for the iPhone. The upper bound for the OS version is rarely needed,- but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10xx for- Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = 1xxx for iPhone. - - Examples:-- A function available in Mac OS X 10.5 and later, but not on the phone:- - extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);--- An Objective-C method in Mac OS X 10.5 and later, but not on the phone:- - @interface MyClass : NSObject- -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);- @end-- - An enum available on the phone in 2.1 and later, but not available on Mac OS X:- - #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 20100- enum { myEnum = 1 };- #endif- Note: this works when targeting the Mac OS X platform because - __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero, - so test becomes #if 0 >= 20100 which is false. Also, we use- 20100 instead of __IPHONE_2_1 to be safe. The __IPHONE_2_1 macro did not- exist in <Availability.h> prior to the 2.1 SDK. So, if somehow this - conditional was used with an earilier SDK, it would evaluate incorrectly.--- It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one- source base that can be compiled to target a range of OS versions. It is best- to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.- That is because you might get compiled on an old OS that does not define a later- OS version macro, and in the C preprocessor undefined values evaluate to zero- in expresssions, which could cause the #if expression to evaluate in an unexpected- way.- - #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED- // code only compiled when targeting Mac OS X and not iPhone- // note use of 1050 instead of __MAC_10_5- #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050- // code in here might run on pre-Leopard OS- #else- // code here can assume Leopard or later- #endif- #endif---*/--#define __MAC_10_0 1000-#define __MAC_10_1 1010-#define __MAC_10_2 1020-#define __MAC_10_3 1030-#define __MAC_10_4 1040-#define __MAC_10_5 1050-#define __MAC_10_6 1060-#define __MAC_NA 9999 /* not available */--#define __IPHONE_2_0 20000 -#define __IPHONE_2_1 20100 -#define __IPHONE_2_2 20200 -#define __IPHONE_3_0 30000 -#define __IPHONE_NA 99999 /* not available */--#include <AvailabilityInternal.h>---#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED- #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_iphone- #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \- __AVAILABILITY_INTERNAL##_iphoneIntro##_DEP##_iphoneDep--#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)- #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_mac- #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \- __AVAILABILITY_INTERNAL##_macIntro##_DEP##_macDep--#else- #define __OSX_AVAILABLE_STARTING(_mac, _iphone)- #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) -#endif---#endif /* __AVAILABILITY__ */
− tests/bugs/issue-82/include/AvailabilityInternal.h
@@ -1,273 +0,0 @@-/*- * Copyright (c) 2007-2009 by Apple Inc.. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */--/*- File: AvailabilityInternal.h- - Contains: implementation details of __OSX_AVAILABLE_* macros from <Availability.h>--*/-#ifndef __AVAILABILITY_INTERNAL__-#define __AVAILABILITY_INTERNAL__---/* if we want to support some compiler that does not support these- attributes, we can test for the compiler version before defining these */-#define __AVAILABILITY_INTERNAL_DEPRECATED __attribute__((deprecated,visibility("default")))-#define __AVAILABILITY_INTERNAL_UNAVAILABLE __attribute__((unavailable,visibility("default")))-#define __AVAILABILITY_INTERNAL_WEAK_IMPORT __attribute__((weak_import,visibility("default")))-#define __AVAILABILITY_INTERNAL_REGULAR __attribute__((visibility("default")))---#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED- #ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__- /* compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used */- #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__- #endif-#endif---#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED- /* make sure a default max version is set */- #ifndef __IPHONE_OS_VERSION_MAX_ALLOWED- #define __IPHONE_OS_VERSION_MAX_ALLOWED __IPHONE_3_0- #endif- /* make sure a valid min is set */- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0- #undef __IPHONE_OS_VERSION_MIN_REQUIRED- #define __IPHONE_OS_VERSION_MIN_REQUIRED __IPHONE_2_0 - #endif- - /* set up internal macros (up to 2.0) */- #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_2_0- #define __AVAILABILITY_INTERNAL__IPHONE_2_0 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0- #define __AVAILABILITY_INTERNAL__IPHONE_2_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_0 __AVAILABILITY_INTERNAL_REGULAR- #endif- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA __AVAILABILITY_INTERNAL__IPHONE_2_0- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0 __AVAILABILITY_INTERNAL_DEPRECATED- /* set up internal macros (up to 2.1) */- #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_2_1- #define __AVAILABILITY_INTERNAL__IPHONE_2_1 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_1- #define __AVAILABILITY_INTERNAL__IPHONE_2_1 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_1 __AVAILABILITY_INTERNAL_REGULAR- #endif- #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA __AVAILABILITY_INTERNAL__IPHONE_2_1- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_1- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1 __AVAILABILITY_INTERNAL_DEPRECATED- #endif- /* set up internal macros (up to 2.2) */- #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_2_2- #define __AVAILABILITY_INTERNAL__IPHONE_2_2 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_2- #define __AVAILABILITY_INTERNAL__IPHONE_2_2 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_2 __AVAILABILITY_INTERNAL_REGULAR- #endif- #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA __AVAILABILITY_INTERNAL__IPHONE_2_2- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_1- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_2- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2 __AVAILABILITY_INTERNAL_DEPRECATED- #endif- /* set up internal macros (up to 3.0) */- #if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_3_0- #define __AVAILABILITY_INTERNAL__IPHONE_3_0 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_0- #define __AVAILABILITY_INTERNAL__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR- #endif- #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA __AVAILABILITY_INTERNAL__IPHONE_3_0- #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_1- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_2- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #elif __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_0- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_REGULAR - #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0 __AVAILABILITY_INTERNAL_DEPRECATED- #endif- /* set up internal macros (n/a) */- #define __AVAILABILITY_INTERNAL__IPHONE_NA __AVAILABILITY_INTERNAL_UNAVAILABLE - #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA __AVAILABILITY_INTERNAL_UNAVAILABLE- -#elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)- /* compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ */- #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__- /* make sure a default max version is set */- #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED- #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_6- #endif-- /* set up internal macros */- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_6- #define __AVAILABILITY_INTERNAL__MAC_10_6 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6- #define __AVAILABILITY_INTERNAL__MAC_10_6 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else - #define __AVAILABILITY_INTERNAL__MAC_10_6 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_5- #define __AVAILABILITY_INTERNAL__MAC_10_5 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_5- #define __AVAILABILITY_INTERNAL__MAC_10_5 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__MAC_10_5 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_4- #define __AVAILABILITY_INTERNAL__MAC_10_4 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_4- #define __AVAILABILITY_INTERNAL__MAC_10_4 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__MAC_10_4 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_3 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_3 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__MAC_10_3 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_2 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_2 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else - #define __AVAILABILITY_INTERNAL__MAC_10_2 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_1 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_1 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__MAC_10_1 __AVAILABILITY_INTERNAL_REGULAR- #endif- #if __MAC_OS_X_VERSION_MAX_ALLOWED < __MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_0 __AVAILABILITY_INTERNAL_UNAVAILABLE- #elif __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_0 __AVAILABILITY_INTERNAL_WEAK_IMPORT- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0 __AVAILABILITY_INTERNAL_REGULAR- #endif- #define __AVAILABILITY_INTERNAL__MAC_NA __AVAILABILITY_INTERNAL_UNAVAILABLE- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1 __AVAILABILITY_INTERNAL__MAC_10_0- #endif- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2 __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2 __AVAILABILITY_INTERNAL__MAC_10_1- #endif- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3 __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3 __AVAILABILITY_INTERNAL__MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3 __AVAILABILITY_INTERNAL__MAC_10_2- #endif- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_4- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4 __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4 __AVAILABILITY_INTERNAL__MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4 __AVAILABILITY_INTERNAL__MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4 __AVAILABILITY_INTERNAL__MAC_10_3- #endif- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_5- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5 __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5 __AVAILABILITY_INTERNAL__MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5 __AVAILABILITY_INTERNAL__MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5 __AVAILABILITY_INTERNAL__MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5 __AVAILABILITY_INTERNAL__MAC_10_4- #endif- #if __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6 __AVAILABILITY_INTERNAL_DEPRECATED- #else- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_4- #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6 __AVAILABILITY_INTERNAL__MAC_10_5- #endif- #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_0- #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_1- #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_2- #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_3- #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_4- #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_5- #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA __AVAILABILITY_INTERNAL__MAC_10_6- #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA __AVAILABILITY_INTERNAL_UNAVAILABLE--#endif--#endif /* __AVAILABILITY_INTERNAL__ */
− tests/bugs/issue-82/include/TargetConditionals.h
@@ -1,108 +0,0 @@-/*- * Copyright (c) 2000-2008 by Apple Inc.. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */- -/*- File: TargetConditionals.h- - Contains: Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone- - Note: TargetConditionals.h in 3.4 Universal Interfaces works- with all compilers. This header only recognizes compilers- known to run on Mac OS X.- -*/--#ifndef __TARGETCONDITIONALS__-#define __TARGETCONDITIONALS__-/****************************************************************************************************-- TARGET_CPU_* - These conditionals specify which microprocessor instruction set is being- generated. At most one of these is true, the rest are false.-- TARGET_CPU_PPC - Compiler is generating PowerPC instructions for 32-bit mode- TARGET_CPU_PPC64 - Compiler is generating PowerPC instructions for 64-bit mode- TARGET_CPU_68K - Compiler is generating 680x0 instructions- TARGET_CPU_X86 - Compiler is generating x86 instructions- TARGET_CPU_ARM - Compiler is generating ARM instructions- TARGET_CPU_MIPS - Compiler is generating MIPS instructions- TARGET_CPU_SPARC - Compiler is generating Sparc instructions- TARGET_CPU_ALPHA - Compiler is generating Dec Alpha instructions--- TARGET_OS_* - These conditionals specify in which Operating System the generated code will- run. The MAC/WIN32/UNIX conditionals are mutually exclusive. The EMBEDDED/IPHONE - conditionals are variants of TARGET_OS_MAC. -- TARGET_OS_MAC - Generate code will run under Mac OS- TARGET_OS_WIN32 - Generate code will run under 32-bit Windows- TARGET_OS_UNIX - Generate code will run under some non Mac OS X unix - TARGET_OS_EMBEDDED - Generate code will run under an embedded OS variant- of TARGET_OS_MAC- TARGET_OS_IPHONE - Generate code will run under iPhone OS which - is a variant of TARGET_OS_MAC.-- TARGET_RT_* - These conditionals specify in which runtime the generated code will- run. This is needed when the OS and CPU support more than one runtime- (e.g. Mac OS X supports CFM and mach-o).-- TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers- TARGET_RT_BIG_ENDIAN - Generated code uses big endian format for integers - TARGET_RT_64_BIT - Generated code uses 64-bit pointers - TARGET_RT_MAC_CFM - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used- TARGET_RT_MAC_MACHO - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used--- TARGET_IPHONE_SIMULATOR - Generate code for running under iPhone Simulator- --****************************************************************************************************/---/*- * gcc based compiler used on Mac OS X- */-#define TARGET_OS_MAC 1-#define TARGET_OS_WIN32 0-#define TARGET_OS_UNIX 0-#define TARGET_OS_EMBEDDED 0-#define TARGET_OS_IPHONE 0-#define TARGET_IPHONE_SIMULATOR 0-#define TARGET_CPU_PPC 0-#define TARGET_CPU_PPC64 0-#define TARGET_CPU_68K 0-#define TARGET_CPU_X86 0-#define TARGET_CPU_X86_64 1-#define TARGET_CPU_ARM 0-#define TARGET_CPU_MIPS 0-#define TARGET_CPU_SPARC 0-#define TARGET_CPU_ALPHA 0-#define TARGET_RT_MAC_CFM 0-#define TARGET_RT_MAC_MACHO 1-#define TARGET_RT_LITTLE_ENDIAN 1-#define TARGET_RT_BIG_ENDIAN 0-#define TARGET_RT_64_BIT 1--#endif /* __TARGETCONDITIONALS__ */
− tests/bugs/issue-82/include/_types.h
@@ -1,68 +0,0 @@-/*- * Copyright (c) 2004, 2008, 2009 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */--#ifndef __TYPES_H_-#define __TYPES_H_--/*#include <sys/_types.h>*/--#if __GNUC__ > 2 || __GNUC__ == 2 && __GNUC_MINOR__ >= 7-#define __strfmonlike(fmtarg, firstvararg) \- __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))-#define __strftimelike(fmtarg) \- __attribute__((__format__ (__strftime__, fmtarg, 0)))-#else-#define __strfmonlike(fmtarg, firstvararg)-#define __strftimelike(fmtarg)-#endif--/*typedef int __darwin_nl_item;*/-/*typedef int __darwin_wctrans_t;*/-#ifdef __LP64__-/*typedef __uint32_t __darwin_wctype_t;*/-#else /* !__LP64__ */-/*typedef unsigned long __darwin_wctype_t;*/-#endif /* __LP64__ */--#ifdef __WCHAR_MAX__-#define __DARWIN_WCHAR_MAX __WCHAR_MAX__-#else /* ! __WCHAR_MAX__ */-#define __DARWIN_WCHAR_MAX 0x7fffffff-#endif /* __WCHAR_MAX__ */--#if __DARWIN_WCHAR_MAX > 0xffffU-#define __DARWIN_WCHAR_MIN (-0x7fffffff - 1)-#else-#define __DARWIN_WCHAR_MIN 0-#endif-#define __DARWIN_WEOF ((__darwin_wint_t)-1)--#ifndef _FORTIFY_SOURCE-# if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) < 1050)-# define _FORTIFY_SOURCE 0-# else-# define _FORTIFY_SOURCE 2 /* on by default */-# endif-#endif--#endif /* __TYPES_H_ */
− tests/bugs/issue-82/include/secure/_common.h
@@ -1,41 +0,0 @@-/*- * Copyright (c) 2007, 2008 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- *- * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- *- * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- *- * @APPLE_LICENSE_HEADER_END@- */--#ifndef _SECURE__COMMON_H_-#define _SECURE__COMMON_H_--#undef _USE_FORTIFY_LEVEL-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0-# if _FORTIFY_SOURCE > 1-# define _USE_FORTIFY_LEVEL 2-# else-# define _USE_FORTIFY_LEVEL 1-# endif-#else-# define _USE_FORTIFY_LEVEL 0-#endif--#define __darwin_obsz0(object) __builtin_object_size (object, 0)-#define __darwin_obsz(object) __builtin_object_size (object, _USE_FORTIFY_LEVEL > 1 ? 1 : 0)--#endif
− tests/bugs/issue-82/include/secure/_string.h
@@ -1,144 +0,0 @@-/*- * Copyright (c) 2007 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- *- * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- *- * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- *- * @APPLE_LICENSE_HEADER_END@- */--#ifndef _STRING_H_-# error "Never use <secure/_string.h> directly; include <string.h> instead."-#endif--#ifndef _SECURE__STRING_H_-#define _SECURE__STRING_H_--#include <Availability.h>-#include <sys/cdefs.h>-#include <secure/_common.h>--#if _USE_FORTIFY_LEVEL > 0--#ifndef __has_builtin-#define _undef__has_builtin-#define __has_builtin(x) 0-#endif--/* <rdar://problem/12622659> */-#if defined(__clang__) && \- ((defined(__apple_build_version__) && __apple_build_version__ >= 4260006) || \- (!defined(__apple_build_version__) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 3))))-#define __HAS_FIXED_CHK_PROTOTYPES 1-#else-#define __HAS_FIXED_CHK_PROTOTYPES 0-#endif--/* memccpy, memcpy, mempcpy, memmove, memset, strcpy, strlcpy, stpcpy,- strncpy, stpncpy, strcat, strlcat, and strncat */--#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090-#if __has_builtin(__builtin___memccpy_chk) && __HAS_FIXED_CHK_PROTOTYPES-#undef memccpy-#define memccpy(dest, src, c, len) \- __builtin___memccpy_chk (dest, src, c, len, __darwin_obsz0 (dest))-#endif-#endif--#if __has_builtin(__builtin___memcpy_chk) || defined(__GNUC__)-#undef memcpy-#define memcpy(dest, src, len) \- __builtin___memcpy_chk (dest, src, len, __darwin_obsz0 (dest))-#endif--#if __has_builtin(__builtin___memmove_chk) || defined(__GNUC__)-#undef memmove-#define memmove(dest, src, len) \- __builtin___memmove_chk (dest, src, len, __darwin_obsz0 (dest))-#endif--#if __has_builtin(__builtin___memset_chk) || defined(__GNUC__)-#undef memset-#define memset(dest, val, len) \- __builtin___memset_chk (dest, val, len, __darwin_obsz0 (dest))-#endif--#if __has_builtin(__builtin___strcpy_chk) || defined(__GNUC__)-#undef strcpy-#define strcpy(dest, src) \- __builtin___strcpy_chk (dest, src, __darwin_obsz (dest))-#endif--#if __DARWIN_C_LEVEL >= 200809L-#if __has_builtin(__builtin___stpcpy_chk) || defined(__GNUC__)-#undef stpcpy-#define stpcpy(dest, src) \- __builtin___stpcpy_chk (dest, src, __darwin_obsz (dest))-#endif--#if __has_builtin(__builtin___stpncpy_chk) || __APPLE_CC__ >= 5666 || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7)-#undef stpncpy-#define stpncpy(dest, src, len) \- __builtin___stpncpy_chk (dest, src, len, __darwin_obsz (dest))-#endif-#endif /* _DARWIN_C_LEVEL >= 200809L */--#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL-#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090-#if __has_builtin(__builtin___strlcpy_chk) && __HAS_FIXED_CHK_PROTOTYPES-#undef strlcpy-#define strlcpy(dest, src, len) \- __builtin___strlcpy_chk (dest, src, len, __darwin_obsz (dest))-#endif--#if __has_builtin(__builtin___strlcat_chk) && __HAS_FIXED_CHK_PROTOTYPES-#undef strlcat-#define strlcat(dest, src, len) \- __builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))-#endif-#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 */-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */--#if __has_builtin(__builtin___strncpy_chk) || defined(__GNUC__)-#undef strncpy-#define strncpy(dest, src, len) \- __builtin___strncpy_chk (dest, src, len, __darwin_obsz (dest))-#endif--#if __has_builtin(__builtin___strcat_chk) || defined(__GNUC__)-#undef strcat-#define strcat(dest, src) \- __builtin___strcat_chk (dest, src, __darwin_obsz (dest))-#endif--#if ! (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 32000)-#if __has_builtin(__builtin___strncat_chk) || defined(__GNUC__)-#undef strncat-#define strncat(dest, src, len) \- __builtin___strncat_chk (dest, src, len, __darwin_obsz (dest))-#endif-#endif--#ifdef _undef__has_builtin-#undef _undef__has_builtin-#undef __has_builtin-#endif--#undef __HAS_FIXED_CHK_PROTOTYPES--#endif /* _USE_FORTIFY_LEVEL > 0 */-#endif /* _SECURE__STRING_H_ */
− tests/bugs/issue-82/include/string.h
@@ -1,197 +0,0 @@-/*- * Copyright (c) 2000, 2007, 2010 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- *- * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- *- * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- *- * @APPLE_LICENSE_HEADER_END@- */-/*-- * Copyright (c) 1990, 1993- * The Regents of the University of California. All rights reserved.- *- * Redistribution and use in source and binary forms, with or without- * modification, are permitted provided that the following conditions- * are met:- * 1. Redistributions of source code must retain the above copyright- * notice, this list of conditions and the following disclaimer.- * 2. Redistributions in binary form must reproduce the above copyright- * notice, this list of conditions and the following disclaimer in the- * documentation and/or other materials provided with the distribution.- * 3. All advertising materials mentioning features or use of this software- * must display the following acknowledgement:- * This product includes software developed by the University of- * California, Berkeley and its contributors.- * 4. Neither the name of the University nor the names of its contributors- * may be used to endorse or promote products derived from this software- * without specific prior written permission.- *- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF- * SUCH DAMAGE.- *- * @(#)string.h 8.1 (Berkeley) 6/2/93- */--#ifndef _STRING_H_-#define _STRING_H_--#include <_types.h>-#include <sys/cdefs.h>-#include <Availability.h>-/*#include <sys/_types/_size_t.h>*/-/*#include <sys/_types/_null.h>*/--/* ANSI-C */--__BEGIN_DECLS-void *memchr(const void *, int, int);-int memcmp(const void *, const void *, int);-void *memcpy(void *, const void *, int);-void *memmove(void *, const void *, int);-void *memset(void *, int, int);-char *strcat(char *, const char *);-char *strchr(const char *, int);-int strcmp(const char *, const char *);-int strcoll(const char *, const char *);-char *strcpy(char *, const char *);-int strcspn(const char *, const char *);-//Begin-Libc-#ifndef LIBC_ALIAS_STRERROR-//End-Libc-char *strerror(int) /*__DARWIN_ALIAS(strerror)*/;-//Begin-Libc-#else /* LIBC_ALIAS_STRERROR */-char *strerror(int) LIBC_ALIAS(strerror);-#endif /* !LIBC_ALIAS_STRERROR */-//End-Libc-int strlen(const char *);-char *strncat(char *, const char *, int);-int strncmp(const char *, const char *, int);-char *strncpy(char *, const char *, int);-char *strpbrk(const char *, const char *);-char *strrchr(const char *, int);-int strspn(const char *, const char *);-char *strstr(const char *, const char *);-char *strtok(char *, const char *);-int strxfrm(char *, const char *, int);-__END_DECLS----/* Additional functionality provided by:- * POSIX.1c-1995,- * POSIX.1i-1995,- * and the omnibus ISO/IEC 9945-1: 1996- */--#if __DARWIN_C_LEVEL >= 199506L-__BEGIN_DECLS-char *strtok_r(char *, const char *, char **);-__END_DECLS-#endif /* __DARWIN_C_LEVEL >= 199506L */----/* Additional functionality provided by:- * POSIX.1-2001- */--#if __DARWIN_C_LEVEL >= 200112L-__BEGIN_DECLS-int strerror_r(int, char *, int);-char *strdup(const char *);-void *memccpy(void *, const void *, int, int);-__END_DECLS-#endif /* __DARWIN_C_LEVEL >= 200112L */----/* Additional functionality provided by:- * POSIX.1-2008- */--#if __DARWIN_C_LEVEL >= 200809L-__BEGIN_DECLS-char *stpcpy(char *, const char *);-char *stpncpy(char *, const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);-char *strndup(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);-int strnlen(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);-char *strsignal(int sig);-__END_DECLS-#endif /* __DARWIN_C_LEVEL >= 200809L */--/* C11 Annex K */--#if defined(__STDC_WANT_LIB_EXT1__) && __STDC_WANT_LIB_EXT1__ >= 1-#include <sys/_types/_rsize_t.h>-#include <sys/_types/_errno_t.h>--__BEGIN_DECLS-errno_t memset_s(void *, rsize_t, int, rsize_t) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);-__END_DECLS-#endif--/* Darwin extensions */--#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL-/*#include <sys/_types/_ssize_t.h>*/--__BEGIN_DECLS-void *memmem(const void *, int, const void *, int) __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_3);-void memset_pattern4(void *, const void *, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0);-void memset_pattern8(void *, const void *, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0);-void memset_pattern16(void *, const void *, int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_3_0);--char *strcasestr(const char *, const char *);-char *strnstr(const char *, const char *, int);-int strlcat(char *, const char *, int);-int strlcpy(char *, const char *, int);-void strmode(int, char *);-char *strsep(char **, const char *);--/* SUS places swab() in unistd.h. It is listed here for source compatibility */-void swab(const void * __restrict, void * __restrict, int);-__END_DECLS--/* Some functions historically defined in string.h were placed in strings.h- * by SUS. We are using "strings.h" instead of <strings.h> to avoid an issue- * where /Developer/Headers/FlatCarbon/Strings.h could be included instead on- * case-insensitive file systems.- */-#include "strings.h"-#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */---#ifdef _USE_EXTENDED_LOCALES_-#include <xlocale/_string.h>-#endif /* _USE_EXTENDED_LOCALES_ */--#if defined (__GNUC__) && _FORTIFY_SOURCE > 0 && !defined (__cplusplus)-/* Security checking functions. */-#include <secure/_string.h>-#endif--#endif /* _STRING_H_ */
− tests/bugs/issue-82/include/strings.h
@@ -1,96 +0,0 @@-/*- * Copyright (c) 2000, 2007, 2010 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */-/*-- * Copyright (c) 1990, 1993- * The Regents of the University of California. All rights reserved.- *- * Redistribution and use in source and binary forms, with or without- * modification, are permitted provided that the following conditions- * are met:- * 1. Redistributions of source code must retain the above copyright- * notice, this list of conditions and the following disclaimer.- * 2. Redistributions in binary form must reproduce the above copyright- * notice, this list of conditions and the following disclaimer in the- * documentation and/or other materials provided with the distribution.- * 3. All advertising materials mentioning features or use of this software- * must display the following acknowledgement:- * This product includes software developed by the University of- * California, Berkeley and its contributors.- * 4. Neither the name of the University nor the names of its contributors- * may be used to endorse or promote products derived from this software- * without specific prior written permission.- *- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF- * SUCH DAMAGE.- *- * @(#)strings.h 8.1 (Berkeley) 6/2/93- */--#ifndef _STRINGS_H_-#define _STRINGS_H_--#include <_types.h>--#include <sys/cdefs.h>-#include <Availability.h>-/*#include <sys/_types/_size_t.h>*/--__BEGIN_DECLS-/* Removed in Issue 7 */-#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L-int bcmp(const void *, const void *, size_t) __POSIX_C_DEPRECATED(200112L);-void bcopy(const void *, void *, size_t) __POSIX_C_DEPRECATED(200112L);-void bzero(void *, size_t) __POSIX_C_DEPRECATED(200112L);-char *index(const char *, int) __POSIX_C_DEPRECATED(200112L);-char *rindex(const char *, int) __POSIX_C_DEPRECATED(200112L);-#endif--int ffs(int);-int strcasecmp(const char *, const char *);-int strncasecmp(const char *, const char *, int);-__END_DECLS--/* Darwin extensions */-#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL-__BEGIN_DECLS-int ffsl(long) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);-int ffsll(long long) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);-int fls(int) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);-int flsl(long) __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);-int flsll(long long) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_7_0);-__END_DECLS--#include <string.h>-#endif--#endif /* _STRINGS_H_ */-
− tests/bugs/issue-82/include/sys/cdefs.h
@@ -1,126 +0,0 @@-/*- * Copyright (c) 2006 - 2008 Apple Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */--/***********************************************************************- * Not to be installed in /usr/include- ***********************************************************************/--#ifndef _LIBC_SYS_CDEFS_H_-#define _LIBC_SYS_CDEFS_H_--/*- * Now include the real sys/cdefs.h. The checks in libc-features.h will assure- * that those macros are consistent with the current build environment.- */-#include_next <sys/cdefs.h>-#ifndef _LIBC_NO_FEATURE_VERIFICATION-#if defined(__arm__) || defined(__i386__) || defined(__x86_64__)-/*# include "libc-features.h"*/-#else-# error "Unknown architecture."-#endif-#endif /* _LIBC_NO_FEATURE_VERIFICATION */--/*- * symbol suffixes used for symbol versioning- */-#if defined(VARIANT_LEGACY)-# define LIBC_SUF_UNIX03 /* nothing */-# define LIBC_SUF_64_BIT_INO_T /* nothing */-# define LIBC_SUF_NON_CANCELABLE /* nothing */-# define LIBC_SUF_1050 /* nothing */-#else /* !VARIANT_LEGACY */-# if __DARWIN_ONLY_UNIX_CONFORMANCE-# define LIBC_SUF_UNIX03 /* nothing */-# else /* !__DARWIN_ONLY_UNIX_CONFORMANCE */-# define LIBC_SUF_UNIX03 "$UNIX2003"-# endif /* __DARWIN_ONLY_UNIX_CONFORMANCE */--# if defined(VARIANT_INODE32)-# define LIBC_SUF_64_BIT_INO_T /* nothing */-# else /* !VARIANT_INODE32 */-# if __DARWIN_ONLY_64_BIT_INO_T-# define LIBC_SUF_64_BIT_INO_T /* nothing */-# else /* !__DARWIN_ONLY_64_BIT_INO_T */-# define LIBC_SUF_64_BIT_INO_T "$INODE64"-# endif /* __DARWIN_ONLY_64_BIT_INO_T */-# endif /* VARIANT_INODE32 */--# if defined(VARIANT_CANCELABLE)-# define LIBC_SUF_NON_CANCELABLE /* nothing */-# else /* !LIBC_NON_CANCELABLE */-# define LIBC_SUF_NON_CANCELABLE "$NOCANCEL"-# endif /* LIBC_NON_CANCELABLE */--# if defined(VARIANT_PRE1050)-# define LIBC_SUF_1050 /* nothing */-# else /* !VARIANT_PRE1050 */-# if __DARWIN_ONLY_VERS_1050-# define LIBC_SUF_1050 /* nothing */-# else /* !__DARWIN_ONLY_VERS_1050 */-# define LIBC_SUF_1050 "$1050"-# endif /* __DARWIN_ONLY_VERS_1050 */-# endif /* VARIANT_PRE1050 */--#endif /* LIBC_UNIX03 */--#define LIBC_SUF_EXTSN "$DARWIN_EXTSN"--/*- * symbol versioning macros- */-#define LIBC_ALIAS(sym) __asm("_" __STRING(sym) LIBC_SUF_UNIX03)-#define LIBC_ALIAS_C(sym) __asm("_" __STRING(sym) LIBC_SUF_NON_CANCELABLE LIBC_SUF_UNIX03)-#define LIBC_ALIAS_I(sym) __asm("_" __STRING(sym) LIBC_SUF_64_BIT_INO_T LIBC_SUF_UNIX03)-#define LIBC_INODE64(sym) __asm("_" __STRING(sym) LIBC_SUF_64_BIT_INO_T)--#define LIBC_1050(sym) __asm("_" __STRING(sym) LIBC_SUF_1050)-#define LIBC_1050ALIAS(sym) __asm("_" __STRING(sym) LIBC_SUF_1050 LIBC_SUF_UNIX03)-#define LIBC_1050ALIAS_C(sym) __asm("_" __STRING(sym) LIBC_SUF_1050 LIBC_SUF_NON_CANCELABLE LIBC_SUF_UNIX03)-#define LIBC_1050ALIAS_I(sym) __asm("_" __STRING(sym) LIBC_SUF_1050 LIBC_SUF_64_BIT_INO_T LIBC_SUF_UNIX03)-#define LIBC_1050INODE64(sym) __asm("_" __STRING(sym) LIBC_SUF_1050 LIBC_SUF_64_BIT_INO_T)--#define LIBC_EXTSN(sym) __asm("_" __STRING(sym) LIBC_SUF_EXTSN)-#define LIBC_EXTSN_C(sym) __asm("_" __STRING(sym) LIBC_SUF_EXTSN LIBC_SUF_NON_CANCELABLE)--extern int pthread_key_init_np(int, void (*)(void *));--#include <TargetConditionals.h>-#if TARGET_IPHONE_SIMULATOR-/* Simulator keys are offset by 200 */-#define __LIBC_PTHREAD_KEY(x) (210 + (x))-#else-#define __LIBC_PTHREAD_KEY(x) (10 + (x))-#endif--/*- * Libc pthread key assignments- */-#define __LIBC_PTHREAD_KEY_XLOCALE __LIBC_PTHREAD_KEY(0)-#define __LIBC_PTHREAD_KEY_TTYNAME __LIBC_PTHREAD_KEY(1)-#define __LIBC_PTHREAD_KEY_LOCALTIME __LIBC_PTHREAD_KEY(2)-#define __LIBC_PTHREAD_KEY_GMTIME __LIBC_PTHREAD_KEY(3)-#define __LIBC_PTHREAD_KEY_GDTOA_BIGINT __LIBC_PTHREAD_KEY(4)-#define __LIBC_PTHREAD_KEY_PARSEFLOAT __LIBC_PTHREAD_KEY(5)--#endif /* _LIBC_SYS_CDEFS_H_ */
− tests/bugs/issue-82/include/xlocale/_string.h
@@ -1,35 +0,0 @@-/*- * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.- *- * @APPLE_LICENSE_HEADER_START@- * - * This file contains Original Code and/or Modifications of Original Code- * as defined in and that are subject to the Apple Public Source License- * Version 2.0 (the 'License'). You may not use this file except in- * compliance with the License. Please obtain a copy of the License at- * http://www.opensource.apple.com/apsl/ and read it before using this- * file.- * - * The Original Code and all software distributed under the License are- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.- * Please see the License for the specific language governing rights and- * limitations under the License.- * - * @APPLE_LICENSE_HEADER_END@- */--#ifndef _XLOCALE__STRING_H_-#define _XLOCALE__STRING_H_--__BEGIN_DECLS-int strcoll_l(const char *, const char *, locale_t);-size_t strxfrm_l(char *, const char *, size_t, locale_t);-int strcasecmp_l(const char *, const char *, locale_t);-char *strcasestr_l(const char *, const char *, locale_t);-int strncasecmp_l(const char *, const char *, size_t, locale_t);-__END_DECLS--#endif /* _XLOCALE__STRING_H_ */
− tests/regression-suite.yaml
@@ -1,112 +0,0 @@--- name: abcBridge- on-travis: false--# COMMENTED FOR THE MOMENT BECAUSE OF BOUNDS ON C2HS DEPENDENCY-# --# name: al-# apt-packages: [libopenal-dev]---- name: alsa-mixer- apt-packages: [libasound2-dev]--# DEPENDENCY ONLY AVAILABLE IN UBUNTU 14.04+: TRAVIS IS AT 12.04-#--# name: bullet-# apt-packages: [libbullet-dev]---- name: cuda-shared-setup- cabal: false- on-travis: false- special-setup:- - mkdir cuda-packages- - aws s3 sync s3://cuda-packages ./cuda-packages- - sudo dpkg -i ./cuda-packages/cuda-repo-ubuntu1204_6.5-14_amd64.deb- - /bin/rm ./cuda-packages/cuda-repo-ubuntu1204_6.5-14_amd64.deb- - sudo apt-get update- - "sudo bash -c 'mv ./cuda-packages/*.deb /var/cache/apt/archives'"- - sudo apt-get install -y cuda- apt-packages: [acpid, consolekit, dkms, lib32gcc1, libc-bin,- libc-dev-bin, libc6, libc6-dev, libc6-i386,- libck-connector0, libpam-ck-connector,- libpolkit-agent-1-0, libpolkit-backend-1-0,- libpolkit-gobject-1-0, libvdpau1, libxmu-dev,- libxmu-headers, policykit-1, policykit-1-gnome,- python-xkit, screen-resolution-extra]- extra-path: [/usr/local/cuda-6.5/bin]- extra-so-path: [/usr/local/cuda-6.5/lib]---- name: cuda- on-travis: false- extra-include-dirs: [/usr/local/cuda-6.5/include]- extra-lib-dirs: [/usr/local/cuda-6.5/lib64]---- name: cufft- on-travis: false- extra-include-dirs: [/usr/local/cuda-6.5/include]- extra-lib-dirs: [/usr/local/cuda-6.5/lib64]--# BROKEN-#--# name: CV-# apt-packages: [libopencv-dev, libcv-dev, libhighgui-dev]---- name: gnome-keyring- apt-packages: [libgnome-keyring-dev]---- name: gnuidn- apt-packages: [libidn11-dev]- on-travis: false---- name: haskell-mpi- apt-packages: [libopenmpi-dev]- extra-include-dirs: [/usr/include/openmpi]- on-travis: false---- name: hnetcdf- apt-packages: [libnetcdf-dev, libgsl0-dev, liblapack-dev]- run-tests: true---- name: hpuz---- name: hsndfile- apt-packages: [libsndfile1-dev]---- name: hsshellscript--# DEPENDENCIES ONLY AVAILABLE IN UBUNTU 14.04+: TRAVIS IS AT 12.04-# --# name: hsqml-# apt-packages: [???]-# on-travis: false---- name: igraph- apt-ppa: [igraph/ppa]- apt-packages: [libigraph0-dev]- on-travis: false---- name: libssh2- apt-packages: [libssh2-1-dev]--# BUILD PROBLEMS WITH CURRENT C2HS-#--# name: ncurses-# apt-packages: [ncurses-dev]--# NEED TO RETEST-# --# name: OpenCL-# on-travis: false
− tests/system/clean
@@ -1,7 +0,0 @@-#!/bin/bash-find . -name \*.o | xargs /bin/rm 2> /dev/null-find . -name \*.hs | xargs /bin/rm 2> /dev/null-find . -name \*.chi | xargs /bin/rm 2> /dev/null-find . -name \*.chs.h | xargs /bin/rm 2> /dev/null-find . -name \*.hi | xargs /bin/rm 2> /dev/null-find . -mindepth 2 -type f -a -executable | xargs /bin/rm 2> /dev/null