bitset 1.4.2 → 1.4.3
raw patch · 3 files changed
+83/−1 lines, 3 filesnew-uploader
Files
- CHANGES +7/−0
- bin/mkDerivedGmpConstants.c +74/−0
- bitset.cabal +2/−1
CHANGES view
@@ -3,6 +3,13 @@ Here you can see the full list of changes between each bitset release. +Version 1.4.3+-------------++Released on May 13th, 2013++- Fixed bug with broken cabal distribution.+ Version 1.4.2 -------------
+ bin/mkDerivedGmpConstants.c view
@@ -0,0 +1,74 @@+/* --------------------------------------------------------------------------+ *+ * (c) The GHC Team, 1992-2004+ *+ * mkDerivedConstants.c+ *+ * Basically this is a C program that extracts information from the C+ * declarations in the header files (primarily struct field offsets)+ * and generates a header file that can be #included into non-C source+ * containing this information.+ *+ * ------------------------------------------------------------------------*/++#include <stdio.h>+#include "gmp.h"+++#define str(a,b) #a "_" #b++#define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field))++/* struct_size(TYPE)+ *+ */+#define def_size(str, size) \+ printf("#define SIZEOF_" str " %lu\n", (unsigned long)size);++#define struct_size(s_type) \+ def_size(#s_type, sizeof(s_type));++++/* struct_field(TYPE, FIELD)+ *+ */+#define def_offset(str, offset) \+ printf("#define OFFSET_" str " %d\n", (int)(offset));++#define field_offset_(str, s_type, field) \+ def_offset(str, OFFSET(s_type,field));++#define field_offset(s_type, field) \+ field_offset_(str(s_type,field),s_type,field);++#define field_type_(str, s_type, field) \+ printf("#define REP_" str " b"); \+ printf("%lu\n", (unsigned long)sizeof (__typeof__(((((s_type*)0)->field)))) * 8);++#define field_type(s_type, field) \+ field_type_(str(s_type,field),s_type,field);++/* An access macro for use in C-- sources. */+#define struct_field_macro(str) \+ printf("#define " str "(__ptr__) REP_" str "[__ptr__+OFFSET_" str "]\n");++/* Outputs the byte offset and MachRep for a field */+#define struct_field(s_type, field) \+ field_offset(s_type, field); \+ field_type(s_type, field); \+ struct_field_macro(str(s_type,field))+++int+main(int argc, char *argv[])+{+ printf("/* This file is created automatically. Do not edit by hand.*/\n\n");++ struct_size(MP_INT);+ struct_field(MP_INT,_mp_alloc);+ struct_field(MP_INT,_mp_size);+ struct_field(MP_INT,_mp_d);++ return 0;+}
bitset.cabal view
@@ -1,5 +1,5 @@ Name: bitset-Version: 1.4.2+Version: 1.4.3 Synopsis: A space-efficient set data structure. Description: A /bit set/ is a compact data structure, which maintains a set of members@@ -17,6 +17,7 @@ Cabal-Version: >= 1.12 Build-type: Custom Tested-with: GHC >= 7.4.1+Extra-Source-Files: bin/mkDerivedGmpConstants.c Source-repository head Type: git