pytries / datrie

Fast, efficiently stored Trie for Python. Uses libdatrie.
http://pypi.python.org/pypi/datrie/
GNU Lesser General Public License v2.1
530 stars 88 forks source link

Update libdatatrie to 6ef4485474890606946ed208ff453231b581cdf1 #75

Open c4f3a0ce opened 4 years ago

c4f3a0ce commented 4 years ago

This PR

Resolves #74

c4f3a0ce commented 4 years ago

So it seems that it doesn't resolve the problem completely. It is less prominent, but some segfaults still occur (https://travis-ci.org/pytries/datrie/jobs/622241476).

c4f3a0ce commented 4 years ago

Also this falsifying example:

trie = datrie.Trie([chr(i) for i in range(1500)])
trie['ÿ0'] = True
trie['foo'] =  True

'foo' in trie
# True
'ÿ0' in trie                                                                                   
# False

is troubling. Seems related to nil in the alphabet:

trie_without_nil = datrie.Trie([chr(i) for i in range(1, 1500)])
trie_without_nil['ÿ0'] = True

'ÿ0' in trie_without_nil
# True

Which kind of makes sense.

Maybe @thep can shed some light on this?