0.2.6 (2013-01-23)
=====
- New API trie_state_walkable_chars() for breadth-first traversal.
- New class TrieIterator for callback-free enumeration.
- Improved performance on key enumeration.
- Improved AlphaMap range merging.
- Bug fixes.
[Many thanks to Mikhail Korobov for improvements in this version.]
Passing LIBS=-liconv will be result in unwanted libiconv linkage for libdatrie
(it is just required for trietool-0.2),
then it cause build failure of depending packages due to missing libiconv.
Passing sufficient iconv library to configure script with right way,
and it also fix build failure on other platforms for the case GNU iconv
from pkgsrc is preferred rather than builtin iconv.
0.2.4 (2010-06-30)
=====
- Close file on saving trie. [Bug report from Xu Jiandong]
- Add trie_store_if_absent() API which fails on adding duplicated key.
This is useful for preventing race condition in multi-thread applications.
[Suggestion from Dan Searle]
- Add trie_fread() and trie_fwrite() APIs for reading/writing trie data in
an open file, allowing trie to be embeded as part of a bigger file.
[Suggestion from NIIBE Yutaka]
0.2.2 (2009-04-29)
=====
- Support building with linkers without symbol versioning supports,
including Mac, Cygwin, MinGW.
- Support other iconv implementations than that's in glibc, for Mac and MinGW.
0.2.1 (2009-04-05)
=====
- Fix errors in documentation
- Symbol versioning to ease upgrade across SONAME
- Minor cleanups
0.2.0 (2009-03-24)
=====
- New APIs for performance: trie_state_copy(), trie_state_is_single()
- Clean-ups
0.1.99.2 (2008-12-15)
========
- More robust handling of alphabet ranges
- Allow co-existence with libdatrie0
0.1.99.1 (2008-12-12)
========
- Breaking ABI with libdatrie0
- More capacity with 32-bit node index
- Adjusted API for non-file trie usage
- All data in one file, no more *.br and *.tl split
- Drop SBTrie wrapper; all features are merged into Trie
- Domain characters are now Unicode
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
datrie is an implementation of double-array structure for representing trie, as
proposed by Junichi Aoe.
Trie is a kind of digital search tree, an efficient indexing method with O(1)
time complexity for searching. Comparably as efficient as hashing, trie also
provides flexibility on incremental matching and key spelling manipulation.
This makes it ideal for lexical analyzers, as well as spelling dictionaries.