bindings-DSL 1.0.2 → 1.0.3
raw patch · 2 files changed
+22/−13 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- bindings-DSL.cabal +1/−1
- bindings.dsl.h +21/−12
bindings-DSL.cabal view
@@ -17,7 +17,7 @@ . This package contains no Haskell code, only C header files designed for hsc2hsc.-version: 1.0.2+version: 1.0.3 license: BSD3 license-file: LICENSE maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
bindings.dsl.h view
@@ -8,6 +8,8 @@ #ifndef __BINDINGS_DSL_H__ #define __BINDINGS_DSL_H__ +#include <inttypes.h>+ #define hsc_strict_import(dummy) printf( \ "import Foreign.Ptr (Ptr,FunPtr,plusPtr)\n" \ "import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)\n" \@@ -69,9 +71,11 @@ #define bc_famaccess(type,field) {printf("p'");bc_glue(type,field);}; \ #define bc_decimal(name) (name) > 0 \- ? printf("%ju",(uintmax_t)(name)) \- : printf("%jd",(intmax_t)(name)) \+ ? printf("%"PRIuMAX,(uintmax_t)(name)) \+ : printf("%"PRIdMAX,(intmax_t)(name)) \ +#define bc_wordptr(name) printf("%"PRIuPTR,(uintptr_t)(name)) \+ #define bc_float(name) printf("%Le",(long double)(name)) \ #define hsc_num(name) \@@ -83,12 +87,13 @@ bc_varid(# name);printf(" :: (Fractional a) => a\n"); \ #define hsc_pointer(name) \- bc_varid(# name);printf(" = wordPtrToPtr %zu\n",(size_t)(name)); \+ bc_varid(# name);printf(" = wordPtrToPtr "); \+ bc_wordptr(name);printf("\n"); \ bc_varid(# name);printf(" :: Ptr a\n"); \ #define hsc_function_pointer(name) \ bc_varid(# name);printf(" = (castPtrToFunPtr . wordPtrToPtr) "); \- printf("%zu\n",(size_t)(name)); \+ bc_wordptr(name);printf("\n"); \ bc_varid(# name);printf(" :: FunPtr a\n"); \ #define hsc_ccall(name,type) \@@ -122,7 +127,7 @@ if (size==sizeof(int)) printf("%s",sign?"CInt":"CUInt"); \ else if (size==sizeof(char)) printf("%s", \ (char)(-1)<0?(sign?"CChar":"CUChar"):(sign?"CSChar":"CChar")); \- else printf("%s%zu",sign?"Int":"Word",8*size); \+ else printf("%s%"PRIuMAX,sign?"Int":"Word",(uintmax_t)(8*size)); \ printf("\n"); \ } \ @@ -196,16 +201,18 @@ } \ printf("instance Storable "); \ bc_conid(typename);printf(" where\n"); \- printf(" sizeOf _ = %zu\n alignment = sizeOf\n",typesize); \+ printf(" sizeOf _ = %"PRIuMAX"\n alignment = sizeOf\n", \+ (uintmax_t)(typesize)); \ printf(" peek p = do\n"); \ int i; \ for (i=0;i<f.n;i++) \ { \ printf(" v%d <- ",i); \ if (f.k[i] < 0) \- printf("peekByteOff p %zu",f.o[i]); \+ printf("peekByteOff p %"PRIuMAX"",(uintmax_t)(f.o[i])); \ if (f.k[i] > 0) \- printf("peekArray %zu (plusPtr p %zu)",f.s[i],f.o[i]); \+ printf("peekArray %"PRIuMAX" (plusPtr p %"PRIuMAX")", \+ (uintmax_t)(f.s[i]),(uintmax_t)(f.o[i])); \ if (f.k[i] == 0) \ printf("return []"); \ printf("\n"); \@@ -218,12 +225,14 @@ { \ printf(" "); \ if (f.k[i] < 0) \- printf("pokeByteOff p %zu v%d",f.o[i],i); \+ printf("pokeByteOff p %"PRIuMAX" v%d",(uintmax_t)(f.o[i]),i); \ if (f.k[i] > 0) \- printf("pokeArray (plusPtr p %zu) " \- "(take %zu v%d)",f.o[i],f.s[i],i); \+ printf("pokeArray (plusPtr p %"PRIuMAX") " \+ "(take %"PRIuMAX" v%d)",(uintmax_t)(f.o[i]), \+ (uintmax_t)(f.s[i]),i); \ if (f.k[i] == 0) \- printf("pokeArray (plusPtr p %zu) v%d",f.o[i],i); \+ printf("pokeArray (plusPtr p %"PRIuMAX") v%d", \+ (uintmax_t)(f.o[i]),i); \ printf("\n"); \ } \ printf(" return ()\n"); \