packages feed

bindings-common 1.3.3 → 1.3.4

raw patch · 3 files changed

+273/−45 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

bindings-common.cabal view
@@ -1,35 +1,21 @@ cabal-version: >= 1.2.3 name: bindings-common-homepage: http://bitbucket.org/mauricio/bindings-common synopsis:-  Preprocessor DSL for low level FFI.-description: -  Packages named @bindings-*@ contain low level bindings to well-  known libraries, as a resource to be used by developers of-  higher level modules. This @bindings-common@ package provides-  @hsc2hs@ macros that allows writing code for such low level-  bindings that is easy to write, read and maintain, while-  keeping names and functionality as close as possible to the-  base library. These macros can be used as a simple alternative-  to, say, @c2hs@, or to @hsc2hs@ original macros. Bindings-  for the standard C library are also provided, and its source-  code shows how most macros are supposed to be used. More-  examples and reference documentation can be found at project-  homepage.-version: 1.3.3+  This package is obsolete. Look for bindings-DSL instead.+version: 1.3.4 license: BSD3 license-file: LICENSE-maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>+maintainer: none author: Maurício C. Antunes-stability: Stable, tested, maintained.+stability: Obsolete build-type: Simple-bug-reports: http://bitbucket.org/mauricio/bindings-common/issues category: FFI library   hs-source-dirs: src   include-dirs: src   install-includes:     bindings.macros.h+    bindings.c_macros.h   extensions:     ForeignFunctionInterface   build-depends: base >=3 && <5
+ src/bindings.c_macros.h view
@@ -0,0 +1,262 @@+#ifndef __BINDINGS_C_MACROS_H__+#define __BINDINGS_C_MACROS_H__++#define BC_GLOBALARRAY(name,type) \+const type* array_##name () \+{ \+  return name; \+} \++#define BC_INLINE_(name,ret) \+ret inline_##name () \+{ \+  return name; \+} \++#define BC_INLINE_VOID(name) \+void inline_##name () \+{ \+  name; \+} \++#define BC_INLINE1(name,t1,ret) \+ret inline_##name (t1 v1) \+{ \+  return name (v1); \+} \++#define BC_INLINE1VOID(name,t1) \+void inline_##name (t1 v1) \+{ \+  name (v1); \+} \++#define BC_INLINE2(name,t1,t2,ret) \+ret inline_##name (t1 v1,t2 v2) \+{ \+  return name (v1,v2); \+} \++#define BC_INLINE2VOID(name,t1,t2) \+void inline_##name (t1 v1,t2 v2) \+{ \+  name (v1,v2); \+} \++#define BC_INLINE3(name,t1,t2,t3,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3) \+{ \+  return name (v1,v2,v3); \+} \++#define BC_INLINE3VOID(name,t1,t2,t3) \+void inline_##name (t1 v1,t2 v2,t3 v3) \+{ \+  name (v1,v2,v3); \+} \++#define BC_INLINE4(name,t1,t2,t3,t4,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4) \+{ \+  return name (v1,v2,v3,v4); \+} \++#define BC_INLINE4VOID(name,t1,t2,t3,t4) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4) \+{ \+  name (v1,v2,v3,v4); \+} \++#define BC_INLINE5(name,t1,t2,t3,t4,t5,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5) \+{ \+  return name (v1,v2,v3,v4,v5); \+} \++#define BC_INLINE5VOID(name,t1,t2,t3,t4,t5) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5) \+{ \+  name (v1,v2,v3,v4,v5); \+} \++#define BC_INLINE6(name,t1,t2,t3,t4,t5,t6,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6) \+{ \+  return name (v1,v2,v3,v4,v5,v6); \+} \++#define BC_INLINE6VOID(name,t1,t2,t3,t4,t5,t6) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6) \+{ \+  name (v1,v2,v3,v4,v5,v6); \+} \++#define BC_INLINE7(name,t1,t2,t3,t4,t5,t6,t7,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7); \+} \++#define BC_INLINE7VOID(name,t1,t2,t3,t4,t5,t6,t7) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7); \+} \++#define BC_INLINE8(name,t1,t2,t3,t4,t5,t6,t7,t8,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8); \+} \++#define BC_INLINE8VOID(name,t1,t2,t3,t4,t5,t6,t7,t8) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8); \+} \++#define BC_INLINE9(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9); \+} \++#define BC_INLINE9VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9); \+} \++#define BC_INLINE10(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10); \+} \++#define BC_INLINE10VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10); \+} \++#define BC_INLINE11(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11); \+} \++#define BC_INLINE11VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11); \+} \++#define BC_INLINE12(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12); \+} \++#define BC_INLINE12VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12); \+} \++#define BC_INLINE13(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13); \+} \++#define BC_INLINE13VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13); \+} \++#define BC_INLINE14(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14); \+} \++#define BC_INLINE14VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14); \+} \++#define BC_INLINE15(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15); \+} \++#define BC_INLINE15VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15); \+} \++#define BC_INLINE16(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16); \+} \++#define BC_INLINE16VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16); \+} \++#define BC_INLINE17(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17); \+} \++#define BC_INLINE17VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17); \+} \++#define BC_INLINE18(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18); \+} \++#define BC_INLINE18VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18); \+} \++#define BC_INLINE19(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19); \+} \++#define BC_INLINE19VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19); \+} \++#define BC_INLINE20(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20,ret) \+ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19,t20 v20) \+{ \+  return name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20); \+} \++#define BC_INLINE20VOID(name,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20) \+void inline_##name (t1 v1,t2 v2,t3 v3,t4 v4,t5 v5,t6 v6,t7 v7,t8 v8,t9 v9,t10 v10,t11 v11,t12 v12,t13 v13,t14 v14,t15 v15,t16 v16,t17 v17,t18 v18,t19 v19,t20 v20) \+{ \+  name (v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20); \+} \++#endif /* __BINDINGS_C_MACROS_H__ */
src/bindings.macros.h view
@@ -16,7 +16,7 @@     { \      char *p, *q, buffer_w[strlen(name)+1]; \      strcpy(buffer_w,name); \-     for (p=strtok(buffer_w," \t");q=strtok(NULL," \t");p=q); \+     for (p=strtok(buffer_w," \t");(q=strtok(NULL," \t"));p=q); \      printf("%s",p); \     } \ @@ -233,32 +233,12 @@      printf("    return ()\n"); \     } \ -#define BC_GLOBALARRAY(name,type) \-    type* array_##name () {return name;} \ -#define BC_INLINE_(name,ret) \-    ret inline_##name () {return name;} \--#define BC_INLINE0(name,ret) \-    ret inline_##name () {return name();} \--#define BC_INLINE1(name,t1,ret) \-    ret inline_##name (t1 v1) {return name(v1);} \--#define BC_INLINE1VOID(name,t1) \-    void inline_##name (t1 v1) {name(v1);} \--#define BC_INLINE2(name,t1,t2,ret) \-    ret inline_##name (t1 v1,t2 v2) {return name(v1,v2);} \--#define BC_INLINE2VOID(name,t1,t2) \-    void inline_##name (t1 v1,t2 v2) {name(v1,v2);} \--#define BC_INLINE3(name,t1,t2,t3,ret) \-    ret inline_##name (t1 v1,t2 v2,t3 v3) {return name(v1,v2,v3);} \--#define BC_INLINE4(name,t1,t2,t3,t4,ret) \-    ret inline_##name (t1 v1,t2 v2,t3 v3,t4 v4) {return name(v1,v2,v3,v4);} \+/* This re-export is deprecated. You should+ * import <bindings.c_macros.h> directly in+ * your C files.+ */+#include <bindings.c_macros.h>  #endif /* __BINDINGS_MACROS_H__ */