Changelog of @hackage/c2hs 0.28.7

0.28.7.*

  • Support for InterruptibleFFI (Alex Wied)
  • Support for equality in C macros (Vanessa McHale)
  • Make c2hs source comments more Haddock friendly (George Thomas)
  • (Un)Marshal a C bool into a CUChar instead of CInt
  • The lowest GHC version supported is now 8.0.1, this is due to upgrading Shelly to 1.9.0 for tests but generally the medium-to-long term plan is to update app code to use 8.0.1 features as well. 0.28.6
  • Support for binding to anonymous nested structs and unions. 0.28.6
  • Update for GHC 8.6.* 0.28.3
  • Switch to language-c 0.7.1 [#192] 0.28.2
  • Switch to language-c 0.6 [#176] 0.28.1
  • Switch to language-c 0.5 [#157]
  • Fix class hook problem with imports [#155]

0.27.1

  • Alternate specification for sizes in "+" parameters [#140]
  • Fix regression to do with incomplete structure types [#152]
  • Fix pattern match error [PR #153] (deech)

0.26.2

  • Missing import bug [#151]
  • Parameter count checking for {#fun ...#} [#149]
  • Error message for "incomplete types" [#141]

0.26.1

  • Better error messages [PR #139] (Noam Lewis)
  • Fix for OS X block syntax [#138] (Anthony Cowley)
  • Minimal support for va_list [PR #137] (Andy Adams-Moran)
  • Reorganise treatment of standard library imports used by C2HS [#136] (https://github.com/haskell/c2hs/blob/master/import-handling.md)
  • C structure tag/typedef confusion bug (caused problems for flock on OS X) [#134]
  • C typedefs to void pointers [#133]
  • Bool wrappers for unnamed parameters in C function definitions [#131]
  • Incorrect wrapping of some pure C functions [#130]

0.25.2

  • Test fixes to work with GHC 7.10.1

0.25.1

  • Marshalling for C bool values [#128]

0.24.1

  • Revert bad fix for bool handling [#127]
  • Wrapper generation for bare structure arguments [#117] plus custom setup script to support Cabal builds on versions of Cabal without explicit support for extra C sources generated by preprocessors (@RyanGIScott)
  • Arrays in structuress bug [#123]
  • Test fixes for Windows

0.23.1

  • Typedef and default marshalling hooks [#20, #25, #48]
  • Test fixes for 32-bit platforms (Jürgen Keck: @j-keck)
  • Multi-character constants for OS X [#15]
  • Better support for binding to variadic functions [#102]

0.22.1

  • First (not very good) implementation of support for variadic functions [#102]
  • Default marshallers for Char types [#98]
  • Improve sizeof computations [#9, #10]

0.21.1

  • Parametrized pointer types in pointer hooks [#36]
  • Special "+" parameters for efficient foreign pointer marshalling [#46]
  • Add default marshallers for C types [#83]
  • Fix treatment of arrays within structs [#115]
  • Add ability to omit given enum values [#116]
  • Regression suite tidy-ups

0.20.1

  • Get CUDA Travis tests working again (hopefully...)
  • Modify approach for defining C2HS_MIN_VERSION macro to work with NVIDIA's nvcc CUDA compiler [#111]
  • Fix problem with parser for {#enum ...#} renamings [#113]

0.19.1

  • Add {#const ...#} hook for accessing #defined constants [#65]
  • Persist enumeration definitions across modules [#103]
  • Add nocode keyword for enumeration definitions [#70]
  • Bump version for language-c to fix OS X problems [#82, #85] (thanks to Anthony Cowley and Benedikt Huber for help with this)
  • Add finalizer support to foreign pointer definitions [#73]
  • Comment parsing cleanups (Sivert Berg: @sivertb)

0.18.2

  • Add C2HS_MIN_VERSION(major,minor,revision) preprocessor macro
  • Suppress regression suite build (and associated dependency installation) for non-Travis cases
  • Fix Cabal file to include previously missing tests

0.18.1

  • Numerous improvements to Enum handling [#78] (Philipp Balzarek: @Philonous)
  • Handle Haddock comments within C2HS hook definitions [#62] (@tangboyun)
  • Better error messages for missing files (Zejun Wu: @watashi)
  • Write CHS dump files to output directory (Zejun Wu: @watashi)
  • Handle C calling conventions within function pointer declarations [#88] (Michael Steele: @mikesteele81)
  • Fix FreeBSD libssh2 problem [#87] (Cindy Wang: @CindyLinz)
  • Better error messages for hook syntax errors (Ryan Scott: @RyanGIScott)
  • Fixes for GHC 7.9 [#100] (@int-index)
  • Fix test suite to use C2HS from dist directory [#81]
  • Allow free intermixing of command line options and input files [#86]
  • Treat CLang "block" syntax and other "non-GNU" issues differently: always undefine BLOCKS CPP symbol to avoid problems with blocks; add nonGNU directive to trigger undefine of GNU-specific pre-processor symbols [#77]
  • Handle indented CPP directives correctly [#80]
  • Handle #sizeof and #alignof on non-typedef's structures [#95]
  • Fix #get and #set hooks to access newtyped pointers [#96]
  • Fix round-trip problem for interface files caused by changes in language-c [#87]
  • Treat "with" specially so that it can appear both as a marshaller identifier in an input parameter definition and as a keyword in enum definitions [#93]
  • Temporarily disable CUDA regression suite examples (CUDA install problems on Travis)

0.17.2

  • Fix more regressions from 0.16.6 (affected packages included gnome-keyring, hsndfile and cuda)
  • Add regression suite tests to reduce chances of future regressions

0.17.1

  • Fix regressions from 0.16.6 (caused by fix for issue #45)
  • Version number bump (should have been done in the last release)

0.16.6

  • Trivial integer casts in enum defines supporting typedefs [Anton Dessiatov]
  • Allow forward definition of enums (issue #23)
  • Binding of C enums with aliases (issue #38)
  • Default marshallers for enum and pointer hooks (issue #31)
  • Remove dependencies on C2HS module from marshalling code (issue #37)
  • Problem with MacOS blocks notation (issue #29)
  • Include directive on first line produces invalid Haskell (issue #16)
  • Add command-line switch to suppress GNU preprocessor symbols (issue #60)
  • Fix size and alignment computation of bitfields [Facundo Dominguez]
  • Allow prefixes to be replaced, not just removed (issue #19)
  • Allow reference to structure tags from accessors (issue #54) For access paths for {#get#}, {#set#}, etc., one can now specify that structure tags are to be searched preferentially by saying, for example, {#get struct _point->y#} instead of {#get _point->y#}. The latter case will search for typedef names first and only then structure tags.
  • Support for anonymous enums (issue #43)
  • with... unwrapper type declarations for pointer hooks (issue #44)
  • {#fun...#} indentation for use in where clauses (issue #45)
  • incorrect method names from terminal class in superclass instances (issue #21)
  • "offsetof" directive (issue #22)
  • --include flag cannot handle windows paths (issue #30) Now uses System.FilePath splitSearchPath function, which should be platform-agnostic.
  • Void functions produce "defined but not used" warning (issue #47) Handle fun hooks with a void result using ">>" instead of ">>=".
  • Add CPP undefine flags for Gnu compiler defines (issue #51)
  • Cabal test suite

0.16.5

  • Migration to GitHub; documentation changes.

CHANGES ABOVE THIS POINT ARE FOR VERSIONS AFTER THE MOVE OF THE REPOSITORY TO GITHUB. FOR EARLIER CHANGES SEE ChangeLog.old.