newsText Extractor TXR - News: Version 026 is out.

Latest News
TXR 92 is out posted by kkylheku, Fri Jul 11 16:23:25 2014 - 0 replies
Version 044 is out. posted by kkylheku, Fri Dec 2 18:01:22 2011 - 0 replies
Version 042 is out posted by kkylheku, Tue Nov 22 22:08:49 2011 - 0 replies
Txr 039 is out. posted by kkylheku, Mon Oct 10 16:32:24 2011 - 0 replies
Txr 038 is out. posted by kkylheku, Fri Oct 7 01:18:40 2011 - 0 replies
[Submit News]
[18 news in archive]

Version 026 is out.

Item posted by Kaz Kylheku <kkylheku> on Fri Nov 27 06:03:35 2009.

I introduced Valgrind integration in the garbage collector. You must pass the --valgrind option to the configure script to set this up. The basic support squashes false positive error reports from valgrind that occur during the marking phase of the mark-and-sweep, since the stack scanning can touch uninitialized data. Furthermore, the txr option --vg-debug, turns on more advanced valgrind support: objects on the GC free/recycle list are marked as inaccessible such that accesses to free objects, while they are free, will be trapped by valgrind. In this mode, FIFO recycling is used: least recently freed objects are allocated first, to maximize the time that a reclaimed object stays on the free list, thus maximizing the chances of catching an invalid ccess to it. One other Valgrind-related fix is to suppress some false positive leak reports: txr's vectors are stored in such a way that the vector data is referenced by an internal pointer, not by a pointer to the base. To valgrind, this looks suspicious. So when Valgrind support is enabled, the library maintains an additional pointer, so the debugger knows that the objects are genuinely reachable.

I fixed some build issues and added configure-time detection for yacc.

Found and fixed two cases of uninitialized memory. (Amazing what you find when valgrind doesn't flood you with false positives!)

The test cases run with zero reports from Valgrind now. (Disclaimer: on my machine, etc). :)

In the @(next) and @(output) directive, the args and nothrow keywords are really keyword symbols now: have to be written as :nothrow and :args. This will be instantly recognizeable by those of you who are Lispers as making sense.


No messages in Version 026 is out.


Back to the top

Powered by Savane 3.1-cleanup