« Return to Thread: Ann: SWI-Prolog 5.6.54

Ann: SWI-Prolog 5.6.54

by Jan Wielemaker :: Rate this Message:

Reply to Author | View in Thread

Hi,

I've replaced 5.6.53 with 5.6.54.  There are just two changes:

        * Portability to big-endian machines (PPC, SPARC, many RISC processors)
        * Fixed CHR, which relied on undocumented `features' of
        previous hash_term/2.

        Enjoy --- Jan

P.s. Hash values are now platform independent.  Both 32/64 bit and
        big/little endian.  String hashing on little-endian machines is
        a lot (2x) faster though.  Fortunately there are not that many programs
        where string hashing takes a significant part of the CPU time.

P.s. Tom, you can of course get the old behaviour using

                hash(Term, Hash) :-
                        (   integer(Term)
                        ->  Hash = Term
                        ;   hash_term(Term, Hash)
                        ).

        I think the new implementation is better as it guarantees proper
        distribution when hashing integers that have some pattern.

P.s. I think hash_term/2 should be called term_hash/2.  Cf. term_variables
        and argument order.  I'm a bit reluctant to change it though.


------------
For further info, please visit http://www.swi-prolog.org/

To unsubscribe, send a plaintext mail with "unsubscribe prolog <e-mail>"
in its body to majordomo@...

 « Return to Thread: Ann: SWI-Prolog 5.6.54