Chimezie Ogbuji's FuXi reasoner. NON-FUNCTIONING, RETAINED FOR ARCHIVAL PURPOSES. For working code plus version and associated support requirements see:
See my post at https://groups.google.com/forum/#!topic/fuxi-discussion/43arTZCbSPo for more context and demo. This hash rewrite lets hash() do the mixing of the values instead of ever using +, which should perform faster and avoid the original bug. However, this will make some things that hashed the same before now have different hash values (and vice versa, in even rarer cases).
Using hash results to test equality is a bad practice in the first place, but I don't know the code well enough to fix that. It SEEMS like eq should be comparing the incoming 'items' values, after whatever canonicalization (sorting, ignore bnodes, etc) is supposed to happen.
See my post at https://groups.google.com/forum/#!topic/fuxi-discussion/43arTZCbSPo for more context and demo. This hash rewrite lets hash() do the mixing of the values instead of ever using +, which should perform faster and avoid the original bug. However, this will make some things that hashed the same before now have different hash values (and vice versa, in even rarer cases).
Using hash results to test equality is a bad practice in the first place, but I don't know the code well enough to fix that. It SEEMS like eq should be comparing the incoming 'items' values, after whatever canonicalization (sorting, ignore bnodes, etc) is supposed to happen.