Priority union (operator .P.) fails in very simple cases (attached). The defining expression from Karttunen does not fail (attached).
http://www.cis.upenn.edu/~karttunen/pto/node7.html
HFST info version: 0.1
HFST packaging: hfst 3.8.3
HFST version: 3.8.3
HFST long version: 300080002
HFST configuration revision: $Revision: 4409 $
OpenFst supported
SFST supported
foma supported
Unicode support: no (hfst)
Linux c306 2.6.32-504.12.2.el6.x86_64 #1 SMP Wed Mar 11 22:03:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
The other attachment.
Oh yes, here's the output from the two test scripts where the expected and observed output can be seen.
It appears that this bug also breaks everything for estonian FST in giellatekno as we use priority union to describe exceptions (and most important exceptions tend to occur on most frequent words in a language..). It used to work at some point, so it is some kind of regression.
So, +1 and to restress it -- it is a showstopping bug for estonian FST.
Also, I put together a testcase that is somewhat more verbose than Jussi's original. At some point I thought that it is related to diracritic flags but it is not. At the moment it seems that it is rather related to epsilons and perhaps negation (or subtraction of networks that contain epsilons)
Fixed in r4593.