bindings-DSL 1.0.5 → 1.0.6
raw patch · 3 files changed
+22/−4 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- bindings-DSL.cabal +1/−1
- bindings.cmacros.h +15/−3
- bindings.dsl.h +6/−0
bindings-DSL.cabal view
@@ -17,7 +17,7 @@ . This package contains no Haskell code, only C header files designed for hsc2hs.-version: 1.0.5+version: 1.0.6 license: BSD3 license-file: LICENSE maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
bindings.cmacros.h view
@@ -9,21 +9,33 @@ #define __BINDINGS_CMACROS_H__ #define BC_GLOBALARRAY(name,type) \-const type* array_##name () \+const type* array_##name (void) \ { \ return name; \ } \ #define BC_INLINE_(name,ret) \-ret inline_##name () \+ret inline_##name (void) \ { \ return name; \ } \ #define BC_INLINE_VOID(name) \-void inline_##name () \+void inline_##name (void) \ { \ name; \+} \++#define BC_INLINE0(name,ret) \+ret inline_##name (void) \+{ \+ return name (); \+} \++#define BC_INLINE0VOID(name) \+void inline_##name (void) \+{ \+ name (); \ } \ #define BC_INLINE1(name,t1,ret) \
bindings.dsl.h view
@@ -67,6 +67,8 @@ #define bc_wrapper(name) {printf("mk'");bc_word(name);}; \ +#define bc_dynamic(name) {printf("mK'");bc_word(name);}; \+ #define bc_fieldname(type,field) {printf("c'");bc_glue(type,field);}; \ #define bc_unionupdate(type,field) {printf("u'");bc_glue(type,field);}; \@@ -155,6 +157,10 @@ bc_wrapper(# name);printf("\n"); \ printf(" :: (");bc_typemarkup(# type); \ printf(") -> IO ");bc_conid(# name);printf("\n"); \+ printf("foreign import ccall \"dynamic\" "); \+ bc_dynamic(# name);printf("\n"); \+ printf(" :: ");bc_conid(# name); \+ printf(" -> (");bc_typemarkup(# type);printf(")\n"); \ static struct { int n, is_array[500], is_union[500], is_fam[500];