FIX: the glibc logger using nobug_log internally, no locking needed
[nobug.git] / NEWS
bloba705ea7abf947a6ac7742cefd783fe6459db62cd
1 200909.1
2 Christian Thaeter (64):
3       Preparation for the upcoming deadlock detector
4       per thread resource stack links all 'resource_user's of one thread
5       guard around LLIST definition
6       llist.h update
7       new memory pool implementation
8       Learning graphviz, translating the resource state graph to inline dot
9       pipadoc update, new upstream version with macro facility
10       Fixes from lumiera mpool.c
11       generate the manual by pipadoc/asciidoc
12       little pipadoc cleanup, sort index case independenty
13       Documentation beautifying
14       Makefile update, better documentation handling
15       some source highlighting improvements
16       Few more exclusions for nobug messages in test.sh
17       Fix: expect_return for the case no return value was defined in a test
18       added logo, thanks to pablo lizardo for his artwork
19       pipadoc update
20       WIP: preparation for the new deadlock checker, structures init/destroy
21       WIP: entering resources, trying literate programming with pipadoc
22       add shell function awareness to TESTs
23       FIX: TEST_END can not use nobug facilities, since nobug might be shut down
24       add a basic resourcetracker test for low level facilities
25       Add a explicit nobug_destroy() to tear down nobug
26       some pending cleanups and fixes
27       pending changes and stat functions for nobug_resource
28       first cut of nobug_resource_leave()
29       The non-threaded case for resource_leave looks simple
30       FIX: must not proceed checking for deadlocks when no resource is hold
31       remove some pending cruft
32       new resource_state() change implementation
33       Define NOBUG_TAB to be eight spaces by default
34       cosmetics
35       improve formatting for RESOURCE_LIST and RESOURCE_DUMP
36       cleanup in nobug.h, remove some cruft
37       FIX: tests makefile had a double variable declaration
38       test harness fixes
39       FIX: resourcetracker, error messages
40       FIX: resourcetracker, NULL dereference in finding parents
41       a lot test fixes, whitespaces, new error messages
42       Logo with type
43       converted the text to paths, less scaling problems
44       Use different mpool chunksizes for 32 vs 64 bit machines
45       no comment
46       some more docs about resourcetracking
47       use gcc's format attribute to validate formatstring at compiletime
48       remove some gnuisms from the Makefile
49       FIX: strict aliasing warning with certain gcc's
50       use '#!/usr/bin/env bash' in test.sh to be little more compatible
51       move pipadoc plugin loading behind plaintext file handling
52       include the VERBATIM pipadoc plugin for literate programming
53       make indexes optional for the asciidoc plugin of pipadoc
54       improve the verbatim pipadoc plugin
55       NOBUG_THREAD_DATA for thread local storage of user data
56       callbacks for logging and aborting
57       include source file and line number comments by asciidoc.pawk
58       FIX: pipapdoc, comment match regex, must match first occation
59       pipadoc: asciidoc support increment/decrement HEAD's
60       pipadoc: asciidoc, add INDEX only entry
61       FIX: pipapoc, asciidoc, track actual head level
62       pipadoc, asciidoc, allow HEAD without headline
63       pipadoc, make index generation optional in HEAD and PARA
64       pending cosmetics
65       The big documentation update
66       pending cleanups
68 0.3rc2
69 Christian Thaeter (109):
70       according to POSIX overlapped mmap replaces the old mapping, no need for munmap()
71       some cosmetics
72       add the srcdir to the include directories for building tests
73       ACX_PTHREAD needs LDFLAGS=PTHREAD_CFLAGS
74       add a resource handle init macro
75       add shortname for RESOURCE_HANDLE_INIT
76       add preconditions for resource handling
77       add RESOURCE_ANNOUNCE_RAW and RESOURCE_FORGET_RAW variants
78       add RESOURCE_STATE_RAW for uncooked flags
79       added a pkg-config metadata file for multithreaded nobugmt
80       NOBUG_RESOURCE_HANDLE_COMMA_INITIALIZER
81       shared lib, use libtool
82       add a _RAW version for NOBUG_RESOURCE_LEAVE takeing a direct flag
83       fixes, cosmetics and email correction
84       replace NOBUG_RESOURCE_HANDLE_COMMA_INITIALIZER with more generic COMMA macors
85       NOBUG_ECHO does unconditional logging at LOG_NOTICE level
86       NOBUG_CHECK for assertions which never get optimized out
87       Change the log format!
88       testsuite integration driven by improved test.sh
89       test.h improvements
90       Transition to new testsuite
91       multithreading and resource tracker tests
92       resource tracker, deadlock tests
93       threadid tests
94       enable resetting of thread ids
95       Logging for CRITICAL and ALERT levels
96       Fault injection macros
97       NOBUG_WHEN and NOBUG_IF_mode macro cleanup
98       Move high level logging before low level macros
99       remove NOBUG_BLOCK and NOBUG_MODE_SWITCH macros, factored to easier code
100       cosmetics
101       some (C) 2009 adds
102       big nobug.h reorganization
103       add a logging baselimit
104       rename global_mutex to logging_mutex, use it directly from the log function remove LOCK macros
105       valgrind support is back
106       add a valgrind suppression generator
107       add valgrind/suppression support to the testsuite
108       Fix: Correct all Failures which where revealed by valgrind
109       new backtrace function for glibc, uses nobugs logging facility
110       cosmetics
111       Make resource dumping using the logging facilities
112       nobug_init() -> nobug_init(void)
113       make valgrind testing faster again
114       preliminary asciidoced README.txt contributed by Benny Lyons
115       WIP: split README.txt into single files
116       Experimental documentation splitup for review
117       WIP: Transition to new pipadoc
118       little more assertions docs
119       more on manual outline, overview, etc.
120       documentation for the logging macros
121       pipadoced the annotations
122       some minor doc corrections/todos
123       pipadoced the faultinjection macros
124       make the index generation nicer, using labled lists
125       pipadocing the resourcetracker things
126       some cosmetics, formating
127       scopecheck doced
128       macros doc formatting
129       some more formating and cosmetics
130       beautified 'using.txt'
131       beautified the 'initialization' chapter, moved the example there
132       minor typos and corrections
133       new, prettier formatting for assertions doc
134       Fix Header nesting
135       beautified and reviewed the logging doc
136       fix sh compatibility
137       reorder doc a little, make scopechecks a primary chapter
138       little cosmetics in logmacros
139       basic dumping doc cleanup/integration
140       document LOG_BASELIMIT's
141       move the toolmacros documentation into nobug.h
142       Document the NOBUG_IF_* macros
143       WIP: first try to generate a manpage
144       FIX: make distcheck work again, bump version number for new release
145       add a 'nobug' flag to log nobug actions itself
146       fix LOCATION_INFO_ARGS in BACKTRACE
147       Add another static NOBUG_ANN flag for logging annotations, refine loglevels
148       minor documentation fixes and cosmetics
149       IMPORTANT CHANGE: reverse the parameter order for RESOURCE_STATE
150       fix filename in resource context, pass only basename
151       Improved resource tracker, much stricter checks, alot tests
152       start a test thread in vgsuppression
153       FIX: ups, wrong pthread macro
154       replaced LD_LIBRARY_PATH hack with proper libtool --mode=execute
155       maybe vgsuppression improvement and don't track reachable allocations
156       FIX: oops, the wrong flags changed
157       Fix remaining compiler warnings and make the build picky about it
158       FIX: dump level check was a complete brainfart, should better work now
159       just some test renames, glitch
160       replace NOBUG_ASSERTN_ by NOBUG_RESOURCE_ASSERT
161       make initialization race free
162       fix initialization race (weakly)
163       add NOBUG_DECLARE_ONLY magic
164       define a NOBUG_EXTERN which handles C linkage for C++ programs
165       FIX: __LINE__ expansion was not triggered
166       FIX: dummy initializers must not be static to prevent compiler warning
167       Revert NOBUG_EXTERN, using 'extern "C"' from C++ is simpler
168       remove the line number from C++ initializers, give them a defined name
169       silence warning on ubuntu
170       add NOBUG_FLAG_RAW() hack
171       allow state transitions back to 'waiting', as needed for cond vars
172       new state-string gnerator, prepared for 'shared' state
173       refine RESOURCE_ASSERT messages, fixup for state transition back to waiting
174       add conditional pthread inclusion
175       fix thread id allocation
176       new resource tracker, without deadlock detector so far
177       small documentation fixes
178       guard around LLIST definition
180 François KUBLER (3):
181       resourcemacros formatting.
182       Some more work on resourcemacros.
183       resourcemacros improvments.
185 Luca Barbato (3):
186       address C99 usage while not asking for a C99 compiler in configure
187       Make valgrind optional
188       Oops: missing files from the past commit
190 Michael Ploujnikov (1):
191       added a pkg-config metadata file
193 0.3.rc1
194 Christian Thaeter (34):
195       add an optional PARENT to log control flags
196       more consistent log formatting, always use ': ' as field delimiter
197       start of a script analyzing debug logs for locking inconsistencies and deadlock causes
198       updated diagram
199       removed nobuglockalyzer, lock checking will be done in at runtime
200       use a struct to accumulate nobug thread local storage, already with members for lock checking
201       #ifdef should be #if
202       start of lock checker in C
203       deadlock checker basic implementation, not yet integrated
204       deadlock checker, fixed implementation
205       cosmetics
206       test code for the deadlock checker, not complete
207       meta update for 0.3pre1
208       version bump 0.3pre1
209       fixed deadlock detector, report offening other lock now
210       shorten message
211       updated documentation, ChangeLog and some cosmetics
212       Merge commit 'mob/master'
213       cleanup checks only in ALPHA build level
214       Directory reorganization
215       Refactored the logging macro to a helper function
216       Add ringbuffer_new/delete() for dynamic ringbuffer allocation
217       add options parser to envvar parsing
218       Add a global event counter
219       Add a hook for application defined logging
220       Slightly relaxed locking/counter updates
221       add the flag to the callback parameters
222       add nobug_log to nobug.h, cleanup
223       fix: test strlen(flag->name) after existence of flag->name has be checked
224       Merge branch 'master' of git://git.pipapo.org/nobug-simeon
225       reindented rbdump, added/removed some code
226       rbdump must include source header
227       changed license to GPLv2 or any later
228       Meta and documentation update for 0.3rc1
230 Peter Simons (13):
231       INSTALL: Updated by automake 1.10.
232       configure.ac, acinclude.m4: Use ACX_PTHREAD to detect thread support.
233       nobug.h: Take advantage of ACX_PTHREAD.
234       nobug_env.c: Initialize nobug_limits[] as array of anonymous structures.
235       nobug_resources.c: Use %lu to snprintf() an unsigned long value.
236       nobug_thread.c: cosmetic fixes
237       nobug.c: Silenced gcc warning about a lost const qualifier in the free() call.
238       nobug_ringbuffer.c: Include <stdlib.h> to define mkstemp().
239       example.c: return 0 to avoid compiler warning.
240       Makefile.am: Added build targets for example program.
241       .gitignore: Ignore example program and other generated files.
242       nobug_resources.c: fixed "unused variable" compiler warning
243       Build all test programs in all variants (and run them at "make check").
245 Simeon Voelkel (6):
246       update of INSTALL
247       Added nobug_rbdump - nobug ringbuffer dump (prints the content of a nobug ringbuffer to stdout)
248       Renamed nobug_rbdump.cpp to nobug_rbdump.c
249       Added nobug_rbdump to Makefile.am
250       removed unneded comments
251       Corrected indenting in Makefile.am
254 Christian Thaeter (94):
255       added release target to Makefile.am
256       Documentation update
257       fix BETA and RELEASE build bug
258       planned feature branch, only added sample code for now
259       use git-whatchanged for ChangeLog, remove Changelog from repository
260       renamed BUG to FIXME, must not exist in BETA builds now
261       using flags in DUMP macros
262       few comments
263       new (standardized) log format
264       test fixes, doc updates (new log format)
265       use autoconfed checks for valgrind and execinfo, makes valgrind optional
266       autotools want a ChangeLog
267       little fix to make nobug barely useable with C++
268       A new DEPRECATED macro, will altert in ALPHA build, quiet in BETA builds and not compile on RELEASE builds
269       small text changes
270       a NOBUG_INIT_FLAG_LIMIT(flag, default) which lets the initializing program alter the default log level of a debugging flag
271       meta update
272       Merge commit 'pre0.2' into logbuffer
273       add few more ignoref files
274       ringbuffer implementation, start
275       next/prev accessors, little TODO list
276       for now, O_TRUNC always
277       add load and save function
278       semi-finished ringbuffer
279       renamed nobug.c to nobug_ringbuffer.c
280       use NOBUG_DISABLE_SHORTNAMES to disable short aliases
281       birth of libnobug.a
282       add ringbuffer_pos and ringbuffer_pop
283       move struct ringbuffer to nobug.h, small formatting changes, range fix
284       new env parser for NOBUG_LOG
285       new logging function using ringbuffer and other targets
286       libnobug improvement, initialization etc.
287       Merge logbuffer
288       default values for logging as planned
289       Ooops, LOG_TRACE should be LOG_DEBUG
290       resource registry, initial version
291       use type and name as resource identifier
292       using a colon as type:name delimiter
293       add _literal functions for using string literals as resource names without copying
294       cleanup and header integration of the resource registry
295       nobug_resource_dump_all prints out all registered resources
296       Resource Registry, macros, renames, finished version so far
297       remove unused code
298       constrain maxmsg 2 chars less makes the code little smaller
299       Merge commit 'resource_registry_signature'
300       removed the _literal prefix, introduced _name prefix instead, minor cleanups
301       basic support tho store states for client resource records, not very mature yet
302       multithreading support, -lpthread is mandatory now, should be made optional and generating a libnobugmt.a and libnobug.a
303       build 2 library variants now one without threading support, one with threading support
304       Merge commit 'logbuffer_signature'
305       NOBUG_INIT macro
306       small cleanup and fixes
307       resource registry locking
308       add a 'acquired' state to entered resources
309       removed locking from the dump functions, at error/report time we already have the lock. Needs to be extended for user-api later
310       Release 0.2pre2 metadata/documentation sync
311       fixed bug with braced arguments
312       complete resource tracker simplification
313       add tree parameter to resource_find
314       add RESOURCE_LEAVE_LOOKUP which does not need a handle to the holder
315       add extern "C" for C++ programs
316       simplify and fix default ringbuffer handling
317       add a void* to resource tracker records which are useable as dynamic identifier (type/name have to be static), make name optional for resource records
318       fallback to stderr when console target is not yet set
319       dump list of resources only
320       use only the id (void*) for identifying resources, name, type become optional
321       abstract source location information into a file/line/function tuple
322       add build/ dir to gitignore
323       rename LOCATION macros
324       just __func__ suffices
325       fix DUMP and INVARIANT calls with new LOCATION_ARGS
326       add CPPINIT_FLAG macros to ease flag initialization from C++ programs
327       must call INIT before first TRACE
328       rename CPPINIT to CPP_DEFINE, make it conditionally only available in C++ compilers
329       fixed INIT_FLAG_LIMIT, old version was still around
330       fill NOBUG_LOCATION only in ALPHA and BETA builds and resolve to a empty string in RELEASE builds
331       new resource state handling, WAITING, RECURSIVE and EXCLUSIVE
332       use object_id and a thread_id to identify resources
333       counter should only be initialized to 0 when state == WAITING
334       add resource state diagram
335       test fix
336       improve makefile meta generation, preparation for 0.2rc1 release
337       fix state array access in RESOURCE_LEAVE_LOOKUP
338       fix RESOURCE_LEAVE_LOOKUP to take only 2 parameters
339       waiting for a RECURSIVE resource we already own is a no-op
340       locks are not needed for thread_id_set, they are rather a deadlocking bug
341       add logging by flags to the resource registry, better formatted log messages,
342       cleanup remove disabled gdb stuff
343       meta update for the 0.2rc1 release
344       fix some stupid bugs
345       let the resource tracker log before doing actions
346       making the string members of the resource registry non-const was stupid
347       little cleanup
348       final 0.2 release
351 Christian Thaeter (10):
352       fixes Bugs/LimitIgnored
353       documentation update
354       little more precise definition of NOBUG_ON
355       dump fixes
356       little more precise definition of NOBUG_ON
357       dump fixes
358       retain old limit in nobug_env_get_flag when initializing flags
359       Doc enhancement: BestPractices. wiki doc got completely reorganized, luckily that isnt seen here.
360       better logging control with NOBUG_LOG, set limits per flag
361       autotoolified
364 Christian Thaeter (41):
365       Initial commit
366       first real working revision
367       typo fix
368       directory cleanup
369       legal stuff and simple makefile
370       better assert
371       NDEBUG incompatible with -DEBUG_{ALPHA|BETA} #error
372       include "NOBUG:" in LOG output
373       changed logging output from NOBUG to DEBUG, minor formatting changes
374       NOTREACHED macro
375       new FLAG macros for upcoming logging control
376       doc new logging capabilities
377       new logging capabilities
378       new logging features
379       test update
380       DUMP and INVARIANT macro rename
381       corrections/macros renames
382       test rename and fixup
383       removed NOBUG_NAMESPACE in favor of new flag based logging
384       double definition typo fix (LOGIF)
385       add __func__ to logging output
386       make -DEBUG_ALPHA, -DEBUG_BETA or -DNDEBUG mandatory
387       forgotten to include stdlib.h
388       ONCE macro for BUG, TODO, PLANNED
389       MODE_CASE and PASS, making some statements more sane
390       MODE_CASE to MODE_SWITCH, _DBG macros only in alpha builds, BLOCK macro, disabled unfinished gdb support
391       new Makefile target to fetch README from wiki Doc
392       w3m is much better than lynx
393       doc improvement
394       more regular colong formatting in log output
395       tweak gcc branch prediction
396       small comment & whitespace changes only
397       new _IF forms for assertions and logging
398       test fixes
399       doc update
400       control NOBUG_LIMIT with a env var
401       TRACE alias for DEBUG
402       made fmt parameter optional for logging
403       made fmt parameter optional for logging part2
404       new LIMIT definition (prelimary)
405       merged limit and flag checking