<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cmark/src/html_unescape.h, branch master</title>
<subtitle>My own fork of cmark for commonmark conversion</subtitle>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/'/>
<entry>
<title>Replace gperf-based entity lookup with binary tree lookup.</title>
<updated>2015-06-16T19:59:47+00:00</updated>
<author>
<name>John MacFarlane</name>
<email>jgm@berkeley.edu</email>
</author>
<published>2015-06-16T16:54:31+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/commit/?id=208c794def61eb819ed6eebe1d51867613addce0'/>
<id>208c794def61eb819ed6eebe1d51867613addce0</id>
<content type='text'>
The primary advantage is a big reduction in the size of
the compiled library and executable (&gt; 100K).

There should be no measurable performance difference in
normal documents.  I detected a slight performance
hit (around 5%) in a file containing 1,000,000 entities.

* Removed `src/html_unescape.gperf` and `src/html_unescape.h`.
* Added `src/entities.h` (generated by `tools/make_entities_h.py`).
* Added binary tree lookup functions to `houdini_html_u.c`, and
  use the data in `src/entities.h`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The primary advantage is a big reduction in the size of
the compiled library and executable (&gt; 100K).

There should be no measurable performance difference in
normal documents.  I detected a slight performance
hit (around 5%) in a file containing 1,000,000 entities.

* Removed `src/html_unescape.gperf` and `src/html_unescape.h`.
* Added `src/entities.h` (generated by `tools/make_entities_h.py`).
* Added binary tree lookup functions to `houdini_html_u.c`, and
  use the data in `src/entities.h`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed entity lookup table.</title>
<updated>2015-06-13T23:00:00+00:00</updated>
<author>
<name>John MacFarlane</name>
<email>jgm@berkeley.edu</email>
</author>
<published>2015-06-13T22:49:59+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/commit/?id=cdcb65c5a209a1a3be4a1b9e804f5a4292127509'/>
<id>cdcb65c5a209a1a3be4a1b9e804f5a4292127509</id>
<content type='text'>
The old one had many errors.
The new one is derived from the list in the npm entities package.
Since the sequences can now be longer (multi-code-point), we
have bumped the length limit from 4 to 8, which also affects
houdini_html_u.c.

An example of the kind of error that was fixed in given
in jgm/commonmark.js#47: `&amp;ngE;` should be rendered as "≧̸" (U+02267
U+00338), but it's actually rendered as "≧" (which is the same as
`&amp;gE;`).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old one had many errors.
The new one is derived from the list in the npm entities package.
Since the sequences can now be longer (multi-code-point), we
have bumped the length limit from 4 to 8, which also affects
houdini_html_u.c.

An example of the kind of error that was fixed in given
in jgm/commonmark.js#47: `&amp;ngE;` should be rendered as "≧̸" (U+02267
U+00338), but it's actually rendered as "≧" (which is the same as
`&amp;gE;`).
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce size of gperf entity table</title>
<updated>2015-01-12T01:11:16+00:00</updated>
<author>
<name>Nick Wellnhofer</name>
<email>wellnhofer@aevum.de</email>
</author>
<published>2015-01-11T00:08:02+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/commit/?id=491b7775b273daf1325a1b050345dbf75b394315'/>
<id>491b7775b273daf1325a1b050345dbf75b394315</id>
<content type='text'>
Don't store length of UTF-8 string. It can be computed by
NULL-terminating strings shorter than 4 bytes and using strnlen.

Use gperf's string pool option. This allows to use an 'int' index into the
string pool instead of a pointer and is helpful on 64-bit systems.

Shaves about 75 KB off the 32-bit binaries on Linux and 128 KB off the
64-bit binaries on OS X.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't store length of UTF-8 string. It can be computed by
NULL-terminating strings shorter than 4 bytes and using strnlen.

Use gperf's string pool option. This allows to use an 'int' index into the
string pool instead of a pointer and is helpful on 64-bit systems.

Shaves about 75 KB off the 32-bit binaries on Linux and 128 KB off the
64-bit binaries on OS X.
</pre>
</div>
</content>
</entry>
<entry>
<title>Create html_unescape.h with extra struct initializers</title>
<updated>2014-12-08T17:11:47+00:00</updated>
<author>
<name>Nick Wellnhofer</name>
<email>wellnhofer@aevum.de</email>
</author>
<published>2014-12-08T17:11:47+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/commit/?id=a752c95b439272420525d9a1fbe12f2413625795'/>
<id>a752c95b439272420525d9a1fbe12f2413625795</id>
<content type='text'>
Fixes missing initializer warnings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes missing initializer warnings.
</pre>
</div>
</content>
</entry>
<entry>
<title>Moved source files from src/html into src.</title>
<updated>2014-12-05T07:13:54+00:00</updated>
<author>
<name>John MacFarlane</name>
<email>jgm@berkeley.edu</email>
</author>
<published>2014-12-05T07:13:54+00:00</published>
<link rel='alternate' type='text/html' href='http://ns2.complex-networks.net/cmark/commit/?id=27bd6c0b18318a9c43801409bbababf2ceb6302e'/>
<id>27bd6c0b18318a9c43801409bbababf2ceb6302e</id>
<content type='text'>
The separate directory presents problems for some simple
extension building systems, like luarocks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The separate directory presents problems for some simple
extension building systems, like luarocks.
</pre>
</div>
</content>
</entry>
</feed>
