~contact-philipashmore/treedb/master

« back to all changes in this revision

Viewing changes to v3c/treedb-array-cleardefs.h

  • Committer: Philip Ashmore
  • Date: 2012-04-01 18:32:33 UTC
  • Revision ID: git-v1:2739703677c401fc0e552603449a319403922a41
Version 1.3.0-01

* Added a long description for debian/control

* Added a v3c-comet man page

* Added a treedb-malloc-daemon man page

* Lots of fiddly changes to pass Debians "lintian" checks
  All the DEBIAN*_REQUIRES have changed to DEBIAN*_DEPENDS.
  Since they go into the Build-Depends and Depends fields of the
  debian/control(.in) file, this makes more sense.

* Refactoring
  The avl, list, array, varray, handle-array headers are c-templates.
  While c-templates provide ultimate control, they aren't the most
  intuitive to use.
  Now the c-template headers all have "template" in their name and they
  all have wrapper headers providing the "common use case".

  Take a look at the tests and comet for examples.

* Nested c-template wrappers wrinkle
  One of the side-effects of this refactoring exercise is that it's now
  impossible to use a wrapper from inside the same wrapper.

  Even though this can be done using the c-templates by themselves, the
  reduction in the number of lines of hand-written code is still a win.

  The way around this is to "sed" all the avl wrapper headers to produce
  versions with a "2" at the end of their names and macros, and use
  those in the AVL two-tree allocator.

  Note that this jumping through hoops is because of deficiencies in the
  design of the "C" preprocessor - "m4" and even "make" can define
  macros that define other macros easily.

* treedb-malloc library improvements
  Instead of allocating an insanely huge mamory map, a more modest one
  is created when memory is allocated, and the rest mmapped onto
  /dev/zero.
  The idea is to preserve the start address by changing the ratio of
  read+write pages to read-only pages so the total map is fixed.

* oprofile tests added for treedb-malloc daemon + tests
  FYI

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2010  Philip Ashmore (contact@philipashmore.com)             */
2
 
/* License: LGPLv3.  See LICENSE.txt for the full license.                    */
3
 
 
4
 
/* 1. header - omit type definitions */
5
 
#undef ARRAY_omit_array_t
6
 
#undef ARRAY_omit_array_t_typedefs
7
 
 
8
 
/* 2. header+implementation - omit function declarations+definitions */
9
 
#undef ARRAY_omit_unpack_array_DECLARE
10
 
#undef ARRAY_omit_pack_array_DECLARE
11
 
#undef ARRAY_omit_unpack_data_DECLARE
12
 
#undef ARRAY_omit_pack_data_DECLARE
13
 
#undef ARRAY_omit_init_empty_ptr_DECLARE
14
 
#undef ARRAY_omit_init_empty_DECLARE
15
 
#undef ARRAY_omit_new_DECLARE
16
 
#undef ARRAY_omit_free_DECLARE
17
 
#undef ARRAY_omit_insert_DECLARE
18
 
#undef ARRAY_omit_remove_DECLARE
19
 
#undef ARRAY_omit_push_back_DECLARE
20
 
#undef ARRAY_omit_push_back_many_DECLARE
21
 
#undef ARRAY_omit_push_front_DECLARE
22
 
#undef ARRAY_omit_push_front_many_DECLARE
23
 
#undef ARRAY_omit_pop_back_DECLARE
24
 
#undef ARRAY_omit_pop_back_many_DECLARE
25
 
#undef ARRAY_omit_pop_front_DECLARE
26
 
#undef ARRAY_omit_pop_front_many_DECLARE
27
 
#undef ARRAY_omit_reverse_some_DECLARE
28
 
#undef ARRAY_omit_reverse_DECLARE
29
 
 
30
 
/* 3. implementation - omit function definitions */
31
 
#undef ARRAY_omit_unpack_array
32
 
#undef ARRAY_omit_pack_array
33
 
#undef ARRAY_omit_unpack_data
34
 
#undef ARRAY_omit_pack_data
35
 
#undef ARRAY_omit_init_empty_ptr
36
 
#undef ARRAY_omit_init_empty
37
 
#undef ARRAY_omit_new
38
 
#undef ARRAY_omit_free
39
 
#undef ARRAY_omit_insert
40
 
#undef ARRAY_omit_remove
41
 
#undef ARRAY_omit_push_back
42
 
#undef ARRAY_omit_push_back_many
43
 
#undef ARRAY_omit_push_front
44
 
#undef ARRAY_omit_push_front_many
45
 
#undef ARRAY_omit_pop_back
46
 
#undef ARRAY_omit_pop_back_many
47
 
#undef ARRAY_omit_pop_front
48
 
#undef ARRAY_omit_pop_front_many
49
 
#undef ARRAY_omit_reverse_some
50
 
#undef ARRAY_omit_reverse
51
 
 
52
 
/* 4. header - must-defines */
53
 
#undef ARRAY_NS
54
 
 
55
 
/* 5. header - types */
56
 
#undef ARRAY_context_ptr_t
57
 
#undef ARRAY_size_t
58
 
#undef ARRAY_count_t
59
 
#undef ARRAY_array_ptr_t
60
 
#undef ARRAY_packed_array_ptr_t
61
 
#undef ARRAY_data_t
62
 
#undef ARRAY_data_ptr_t
63
 
#undef ARRAY_packed_data_ptr_t
64
 
#undef ARRAY_input_t
65
 
 
66
 
/* 6. header - optional */
67
 
#undef ARRAY_prefix
68
 
 
69
 
/* 7. header - constants */
70
 
#undef ARRAY_init
71
 
 
72
 
/* 8. header - array_t members */
73
 
#undef ARRAY_count
74
 
#undef ARRAY_reserve
75
 
#undef ARRAY_increment
76
 
#undef ARRAY_items
77
 
 
78
 
/* 9. implementation - must-defines */
79
 
#undef ARRAY_alloc
80
 
#undef ARRAY_realloc_packed
81
 
#undef ARRAY_free
82
 
#undef ARRAY_unpack_pointer
83
 
#undef ARRAY_pack_pointer
84
 
 
85
 
/* 10. implementation - optional */
86
 
#undef ARRAY_alloc_array
87
 
#undef ARRAY_auto_data
88
 
#undef ARRAY_clear_entries
89
 
#undef ARRAY_free_packed
90
 
#undef ARRAY_memmove
91
 
#undef ARRAY_assign
92
 
#undef ARRAY_assign_to_auto
93
 
#undef ARRAY_assign_from_auto
94
 
#undef ARRAY_item
95
 
#undef ARRAY_item_ptr
96
 
#undef ARRAY_entry_size
97
 
#undef ARRAY_entry_align
98
 
#undef ARRAY_memcopy
99
 
#undef ARRAY_count_MEMBER
100
 
#undef ARRAY_reserve_MEMBER
101
 
#undef ARRAY_increment_MEMBER
102
 
#undef ARRAY_items_MEMBER
103
 
#undef ARRAY_count_MEMBER_SET
104
 
#undef ARRAY_count_MEMBER_INCREMENT
105
 
#undef ARRAY_count_MEMBER_DECREMENT
106
 
#undef ARRAY_count_MEMBER_ADD
107
 
#undef ARRAY_count_MEMBER_SUBTRACT
108
 
#undef ARRAY_reserve_MEMBER_SET
109
 
#undef ARRAY_increment_MEMBER_SET
110
 
#undef ARRAY_items_MEMBER_SET
111
 
#undef ARRAY_exceeds_count_limit
112
 
 
113
 
/* 11. implementation - insertion / extraction */
114
 
#undef ARRAY_unpack_array
115
 
#undef ARRAY_pack_array
116
 
#undef ARRAY_unpack_data
117
 
#undef ARRAY_pack_data