<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Software updates by Troy D. Hanson</title>
	<atom:link href="http://troydhanson.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://troydhanson.wordpress.com</link>
	<description>updates for uthash and tpl libraries</description>
	<lastBuildDate>Wed, 09 Sep 2009 03:32:35 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='troydhanson.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ce3206cebf070baf69856843431427ef?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Software updates by Troy D. Hanson</title>
		<link>http://troydhanson.wordpress.com</link>
	</image>
			<item>
		<title>uthash 1.8 released</title>
		<link>http://troydhanson.wordpress.com/2009/09/08/uthash-1-8-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/09/08/uthash-1-8-released/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 03:32:34 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=53</guid>
		<description><![CDATA[ 
uthash v1.8 has been released. This introduces a few new features including a Bloom filter, a new live analysis utility for Linux called hashscan, the re-inclusion of the MurmurHash, and a couple of bug fixes for the companion linked list header, utlist.

Version 1.8 (2009-09-08)

 Added the hashscan utility that can report on the size [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=53&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/09/uthash-mini.png" alt="uthash-mini.png">
<p><a href="http://uthash.sourceforge.net">uthash v1.8</a> has been released. This introduces a few new features including a Bloom filter, a new live analysis utility for Linux called hashscan, the re-inclusion of the MurmurHash, and a couple of bug fixes for the companion linked list header, utlist.</p>
<hr />
<h2><a name="_version_1_8_2009_09_08"></a>Version 1.8 (2009-09-08)</h2>
<ul>
<li> Added the <tt>hashscan</tt> utility that can report on the size and quality of hash tables in a running process (Linux-only) </li>
<li> Added Bloom filter support. This has the potential to speed up certain types of programs that look up non-existant keys in sufficient numbers. </li>
<li> Restored the MurmurHash, which can once again be used, if an additional symbol is defined. This is a &#8220;safety&#8221; by which the user declares they understand that <tt>-fno-strict-aliasing</tt> flag must be used if they are using MurmurHash under gcc with optimization. </li>
<li> Unified the bucket/table malloc hooks; now there is only one malloc hook </li>
<li> Re-organized the manual into a main section and advanced topics section </li>
<li> Fixed a bug in <tt>utlist.h</tt> where sorting a singly-linked list threw a compile-time error. </li>
<li> Fixed a bug in <tt>utlist.h</tt> where a doubly-linked list that is sorted did not maintain the special <tt>head&#8594;prev</tt> pointer back to the list tail. </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=53&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/09/08/uthash-1-8-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/09/uthash-mini.png" medium="image">
			<media:title type="html">uthash-mini.png</media:title>
		</media:content>
	</item>
		<item>
		<title>uthash 1.7 released</title>
		<link>http://troydhanson.wordpress.com/2009/06/11/uthash-1-7-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/06/11/uthash-1-7-released/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 03:46:27 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=50</guid>
		<description><![CDATA[ 
Today I&#8217;ve released uthash v1.7. This is a maintenance release.

Version 1.7 (2009-06-11)

 The MurmurHash has been removed, and Jenkin&#8217;s hash is once again the default. While MurmurHash performed well, it&#8217;s unsafe with regard to the strict aliasing rule. This results in incorrect code when compiled with optimization. It&#8217;s not possible to apply -fno-strict-aliasing from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=50&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/06/uthash-mini.png" alt="uthash-mini.png">
<p>Today I&#8217;ve released <a href="http://uthash.sourceforge.net">uthash v1.7</a>. This is a maintenance release.</p>
<hr />
<h2><a name="_version_1_7_2009_06_11"></a>Version 1.7 (2009-06-11)</h2>
<ul>
<li> The MurmurHash has been removed, and Jenkin&#8217;s hash is once again the default. While MurmurHash performed well, it&#8217;s unsafe with regard to the strict aliasing rule. This results in incorrect code when compiled with optimization. It&#8217;s not possible to apply <tt>-fno-strict-aliasing</tt> from within a header file. </li>
<li> The linked list macros in <tt>utlist.h</tt> now comply with the strict-aliasing rule so they generate correct code under high optimization levels (O2 or O3). The use of the <tt><em>typeof</em></tt> extension, which was originally a GNU extension, may reduce portability to other compilers that do not support this extension. This extension is used in the singly-linked list macros and the sort macros. </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/50/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/50/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/50/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=50&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/06/11/uthash-1-7-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/06/uthash-mini.png" medium="image">
			<media:title type="html">uthash-mini.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Dynamic library version numbers</title>
		<link>http://troydhanson.wordpress.com/2009/05/27/dynamic-library-version-numbers/</link>
		<comments>http://troydhanson.wordpress.com/2009/05/27/dynamic-library-version-numbers/#comments</comments>
		<pubDate>Thu, 28 May 2009 04:31:45 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[technotes]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=33</guid>
		<description><![CDATA[Every now and then I need to remind myself how naming and versioning work with dynamic libraries. First, their version numbers are entirely distinct from the package that contains them. In other words, tpl v1.4 is a package version, but the library it installs may be libtpl.so.0. The library name reflects its ABI (interface) version.
It [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=33&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Every now and then I need to remind myself how naming and versioning work with dynamic libraries. First, their version numbers are entirely distinct from the package that contains them. In other words, tpl v1.4 is a package version, but the library it installs may be libtpl.so.0. The library name reflects its ABI (interface) version.</p>
<p>It can be helpful to understand why there are apparently several versions of a shared library in a directory. Let&#8217;s take a look at a fictitious libjunk and its associated files as we might see on Linux system in <tt>/usr/lib</tt>:</p>
<table rules="none" width="50%" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td align="left" width="50%" valign="top">
<div><tt>libjunk.so.5.1.1</tt></div>
</td>
<td align="center" width="50%" valign="top">
<div>&#8220;real name&#8221;</div>
</td>
</tr>
<tr>
<td align="left" width="50%" valign="top">
<div><tt>libjunk.so.5</tt></div>
</td>
<td align="center" width="50%" valign="top">
<div>&#8220;soname&#8221;</div>
</td>
</tr>
<tr>
<td align="left" width="50%" valign="top">
<div><tt>libjunk.so</tt></div>
</td>
<td align="center" width="50%" valign="top">
<div>&#8220;linker name&#8221;</div>
</td>
</tr>
</tbody>
</table>
<dl>
<dt> The real name </dt>
<dd> This refers to the &#8220;real&#8221; library file produced by the C compiler (<tt>libjunk.so.5.1.1</tt>). The naming convention is <em>.so.INTERFACE.MINOR[.RELEASE]</em>. </dd>
<dt> The &#8220;soname&#8221; </dt>
<dd> <tt>ldconfig</tt> made this file (<tt>libjunk.so.5</tt>) as a symlink to the real file. It made the filename from the <em>soname</em> stored inside the real library (<tt>objdump –p libjunk.so.5.1.1 | grep SONAME</tt>). This soname was fixed at compilation time (<tt>gcc –shared –Wl,-soname,libjunk.so.5) –o libjunk.so.5.1.1 junk.c</tt>). This soname is recorded in binaries that depend on it, as can be seen using <tt>ldd</tt>. </dd>
<dt> The &#8220;linker name&#8221; </dt>
<dd> This file (<tt>libjunk.so</tt>) is used only for compiling and linking programs against the shared library.  This is what the linker looks for when you specify –ljunk. It may just be a symlink to the soname. The newly linked object will record a dependency on the soname, not the real name. This permits new ABI-compatible versions of the library to be installed and used to satisfy the soname dependency. </dd>
</dl>
<p>The “soname” only needs to change when the library interface (ABI) changes in an incompatible way. Otherwise the soname can be left alone. New minor versions of the library can be installed and <tt>ldconfig</tt> will symlink the soname to the new minor version.</p>
<hr />
<h2><a name="_setting_the_version_under_libtool"></a>Setting the version under libtool</h2>
<p>In tpl, the version numbers are passed to libtool via this line in <tt>Makefile.am</tt>:</p>
<pre>libtpl_la_LDFLAGS = -no-undefined -version-info 1:0:0</pre>
<p>The version string (<tt>1:0:0</tt>) is documented as <tt>current[:revision[:age]]</tt>. Only <tt>current</tt> is required and it is what we call <em>INTERFACE</em> version above.</p>
<hr />
<h2><a name="_related_links"></a>Related links</h2>
<ol type="1">
<li> <a href="http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html">http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html</a> </li>
<li> <a href="http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html">http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html</a> </li>
<li> <a href="http://wiki.linuxquestions.org/wiki/Library-related_Commands_and_Files">http://wiki.linuxquestions.org/wiki/Library-related_Commands_and_Files</a> </li>
<li> <a href="http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html">http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html</a> </li>
</ol>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/33/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/33/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/33/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=33&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/05/27/dynamic-library-version-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>
	</item>
		<item>
		<title>uthash 1.6 released</title>
		<link>http://troydhanson.wordpress.com/2009/05/09/uthash-1-6-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/05/09/uthash-1-6-released/#comments</comments>
		<pubDate>Sat, 09 May 2009 04:13:05 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=31</guid>
		<description><![CDATA[ 
Today I&#8217;ve released uthash v1.6. Here is the ChangeLog:

Version 1.6 (2009-05-08)
Special thanks to Alfred Heisner for contributing several enhancements:

 Support for two new hash functions:

 the Paul Hsieh hash function (HASH_SFH) 
 Austin Appleby&#8217;s MurmurHash function (HASH_MUR) 


 Because of its excellent performance, MurmurHash is now the default hash function. 
 keystats now has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=31&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/05/uthash-mini.png" alt="uthash-mini.png">
<p>Today I&#8217;ve released <a href="http://uthash.sourceforge.net">uthash v1.6</a>. Here is the ChangeLog:</p>
<hr />
<h2><a name="_version_1_6_2009_05_08"></a>Version 1.6 (2009-05-08)</h2>
<p>Special thanks to Alfred Heisner for contributing several enhancements:</p>
<ul>
<li> Support for two new hash functions:
<ul>
<li> the Paul Hsieh hash function (<tt>HASH_SFH</tt>) </li>
<li> Austin Appleby&#8217;s MurmurHash function (<tt>HASH_MUR</tt>) </li>
</ul>
</li>
<li> Because of its excellent performance, MurmurHash is now the default hash function. </li>
<li> <tt>keystats</tt> now has much better elapsed time accuracy under Cygwin and MinGW </li>
<li> fixed casting in <tt>HASH_FNV</tt>, <tt>HASH_SAX</tt> and <tt>HASH_OAT</tt> for non-char keys </li>
</ul>
<p>This release also includes:</p>
<ul>
<li> a new <tt>HASH_CLEAR</tt> operation clears a hash table in one step. </li>
<li> a new <tt>HASH_SELECT</tt> operation inserts those elements from one hash that satisfy a given condition into another hash. The selected items have dual presence in both hash tables. For example a game could select the visible polygons from a hash of all polygons. </li>
<li> fixed a compile-time error which occurred if the final argument to <tt>HASH_ADD_KEYPTR</tt> was a pointer to an array member like <tt>&amp;a[i]</tt> </li>
<li> added another test script <tt>tests/all_funcs</tt> which executes the test suite using every supported hash function </li>
</ul>
<p>And lastly,</p>
<ul>
<li> a new, separate header called <a href="http://uthash.sourceforge.net/utlist.html">utlist.h</a> is included which provides <em>linked list macros</em> for C structures, similar in style to the uthash macros </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=31&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/05/09/uthash-1-6-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/05/uthash-mini.png" medium="image">
			<media:title type="html">uthash-mini.png</media:title>
		</media:content>
	</item>
		<item>
		<title>tpl 1.4 released</title>
		<link>http://troydhanson.wordpress.com/2009/04/25/tpl-14-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/04/25/tpl-14-released/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 02:25:30 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=28</guid>
		<description><![CDATA[ 
Today I&#8217;ve released tpl v1.4.
This release has several small enhancements to fixed-length array support, as well as support for nested structures and for caller-supplied buffers for dump and load. This is the full list of changes:

Version 1.4 (2009-04-25)

 fixed-length arrays can now be multi-dimensional like i## 
 fixed-length string arrays like s# are now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=28&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/04/tpl-mini.png" alt="tpl-mini.png">
<p>Today I&#8217;ve released <a href="http://tpl.sourceforge.net">tpl v1.4</a>.</p>
<p>This release has several small enhancements to fixed-length array support, as well as support for nested structures and for caller-supplied buffers for dump and load. This is the full list of changes:</p>
<hr />
<h2><a name="_version_1_4_2009_04_25"></a>Version 1.4 (2009-04-25)</h2>
<ul>
<li> fixed-length arrays can now be multi-dimensional like <tt>i##</tt> </li>
<li> fixed-length string arrays like <tt>s#</tt> are now supported </li>
<li> nested structures can now be expressed, using the dollar symbol, e.g. <tt>S(ci$(cc))</tt> </li>
<li> <tt>tpl_dump</tt> can use a caller-allocated output buffer (<tt>TPL_MEM|TPL_PREALLOCD</tt>) </li>
<li> <tt>tpl_load</tt> can tolerate excess space in input buffer (<tt>TPL_MEM|TPL_EXCESS_OK</tt>) </li>
<li> implement <tt>TPL_FXLENS</tt> flag for <tt>tpl_peek</tt> to get lengths of fixed-length arrays </li>
<li> implement <tt>TPL_GETSIZE</tt> flag for <tt>tpl_dump</tt> to get dump size without dumping </li>
<li> fix success return code from <tt>tpl_dump(TPL_FD,&#8230;)</tt> (thanks, Max Lapan!) </li>
<li> deprecated the wildcard unpacking <tt>S(*)</tt> feature </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=28&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/04/25/tpl-14-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/04/tpl-mini.png" medium="image">
			<media:title type="html">tpl-mini.png</media:title>
		</media:content>
	</item>
		<item>
		<title>uthash 1.5 released</title>
		<link>http://troydhanson.wordpress.com/2009/02/18/uthash-15-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/02/18/uthash-15-released/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 02:14:51 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=15</guid>
		<description><![CDATA[ 
Today I&#8217;ve released uthash v1.5.
This release makes uthash thread-safe for concurrent readers. Thanks to Peter Arvidsson for suggesting the change that made this possible. As a side benefit, HASH_FIND is now faster&#8211; around 13% on some of my tests.

Version 1.5 (2009-02-19)

 now thread-safe for concurrent readers 
 use scratch variables on stack rather than [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=15&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/02/uthash-mini1.png" alt="uthash-mini.png">
<p>Today I&#8217;ve released <a href="http://uthash.sourceforge.net">uthash v1.5</a>.</p>
<p>This release makes uthash thread-safe for concurrent readers. Thanks to Peter Arvidsson for suggesting the change that made this possible. As a side benefit, <tt>HASH_FIND</tt> is now faster&#8211; around 13% on some of my tests.</p>
<hr />
<h2><a name="_version_1_5_2009_02_19"></a>Version 1.5 (2009-02-19)</h2>
<ul>
<li> now thread-safe for concurrent readers </li>
<li> use scratch variables on stack rather than in table (thanks, Petter Arvidsson!). This change made HASH_FIND about 13% faster and enabled reader concurrency. </li>
<li> made <a href="http://uthash.sourceforge.net/license.html">BSD license</a> terms even more permissive </li>
<li> added <a href="http://uthash.sourceforge.net/userguide.pdf">PDF version</a> of User Guide </li>
<li> added <a href="http://troydhanson.wordpress.com/feed/">update news</a> </li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=15&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/02/18/uthash-15-released/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/02/uthash-mini1.png" medium="image">
			<media:title type="html">uthash-mini.png</media:title>
		</media:content>
	</item>
		<item>
		<title>tpl 1.3 released</title>
		<link>http://troydhanson.wordpress.com/2009/02/09/tpl-13-released/</link>
		<comments>http://troydhanson.wordpress.com/2009/02/09/tpl-13-released/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 22:46:39 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=6</guid>
		<description><![CDATA[ 
Today I&#8217;ve released tpl v1.3.
The complete list of changes follows.
Version 1.3 (2009-02-10)

 added PDF version of the User Guide 
 added TPL_DATAPEEK mode for tpl_peek 
 added support for NULL strings 
 added support for 16-bit integer types (j,v) 
 added tpl_jot 
 added support for fixed-length arrays of structures S(&#8230;)# 
 added support [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=6&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p> <img src="http://troydhanson.files.wordpress.com/2009/02/tpl-mini.png" alt="tpl-mini.png">
<p>Today I&#8217;ve released <a href="http://tpl.sourceforge.net">tpl v1.3</a>.</p>
<p>The complete list of changes follows.</p>
<h3><a name="_version_1_3_2009_02_10"></a>Version 1.3 (2009-02-10)</h3>
<ul>
<li> added <a href="http://tpl.sourceforge.net/userguide.pdf">PDF version</a> of the User Guide </li>
<li> added <tt>TPL_DATAPEEK</tt> mode for <tt>tpl_peek</tt> </li>
<li> added support for <tt>NULL</tt> strings </li>
<li> added support for 16-bit integer types (<tt>j</tt>,<tt>v</tt>) </li>
<li> added <tt>tpl_jot</tt> </li>
<li> added support for fixed-length arrays of structures <tt>S(&#8230;)#</tt> </li>
<li> added support for pre-C99 compilers (thanks, Wei Wei!) </li>
<li> improved structure alignment calculation (thanks, Wu Yongwei!) </li>
<li> added RPM spec file (thanks, Alessandro Ren!) </li>
<li> compiles cleanly with <tt>-Wall</tt> and <tt>-pedantic</tt> and with <tt>-O3</tt> </li>
<li> made <a href="http://tpl.sourceforge.net/license.html">BSD license</a> terms even more permissive </li>
<li> test suite: exit with status zero when all tests pass </li>
<li> added <a href="http://troydhanson.wordpress.com/feed/">update news</a>   <img src="img/rss.png" alt="(RSS)" title="(RSS)"> </li>
<li> added <a href="http://apps.sourceforge.net/mediawiki/tpl/">tpl wiki</a> </li>
</ul>
<p>The combination of <a href="http://www.methods.co.nz/asciidoc/">AsciiDoc</a> and <a href="http://dblatex.sourceforge.net/">dblatex</a> did a nice job of the PDF rendering.</p>
<p>Thanks to everyone who has contributed to tpl and helped test the new features.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=6&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/02/09/tpl-13-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>

		<media:content url="http://troydhanson.files.wordpress.com/2009/02/tpl-mini.png" medium="image">
			<media:title type="html">tpl-mini.png</media:title>
		</media:content>

		<media:content url="img/rss.png" medium="image">
			<media:title type="html">(RSS)</media:title>
		</media:content>
	</item>
		<item>
		<title>Software updates blog</title>
		<link>http://troydhanson.wordpress.com/2009/01/28/software-updates-blog/</link>
		<comments>http://troydhanson.wordpress.com/2009/01/28/software-updates-blog/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 07:57:03 +0000</pubDate>
		<dc:creator>troydhanson</dc:creator>
				<category><![CDATA[Software updates]]></category>

		<guid isPermaLink="false">http://troydhanson.wordpress.com/?p=3</guid>
		<description><![CDATA[I’ve created this blog as a news feed for announcing updates to my open source packages:

 uthash, a hash table for C structures, and
 tpl, a serialization library for C

I’m pleased to be using blogpost by Stuart Rackham, another great tool in the AsciiDoc family.  AsciiDoc is also used to create the User Guides [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=3&subd=troydhanson&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I’ve created this blog as a news feed for announcing updates to my open source packages:</p>
<ul>
<li> <a href="http://uthash.sourceforge.net">uthash</a>, a hash table for C structures, and</li>
<li> <a href="http://tpl.sourceforge.net">tpl</a>, a serialization library for C</li>
</ul>
<p>I’m pleased to be using <a href="http://srackham.wordpress.com/2008/05/22/blogpost-media-processing/">blogpost</a> by Stuart Rackham, another great tool in the <a href="http://www.methods.co.nz/asciidoc/">AsciiDoc</a> family.  <em>AsciiDoc</em> is also used to create the User Guides (both PDF and HTML versions) for <em>uthash</em> and <em>tpl</em>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/troydhanson.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/troydhanson.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/troydhanson.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/troydhanson.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/troydhanson.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/troydhanson.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/troydhanson.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/troydhanson.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/troydhanson.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/troydhanson.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=troydhanson.wordpress.com&blog=6309572&post=3&subd=troydhanson&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://troydhanson.wordpress.com/2009/01/28/software-updates-blog/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8520d3f7da902afea5eedab6d9bd6f67?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">troydhanson</media:title>
		</media:content>
	</item>
	</channel>
</rss>