Changelog of @hackage/c2hs 0.22.1

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.