]> Repositorios git - scryer-prolog.git/commit
ENHANCED: use a fast test for the expected case of chars in atom_chars/2 etc.
authorMarkus Triska <[email protected]>
Thu, 24 Apr 2025 16:19:05 +0000 (18:19 +0200)
committerMarkus Triska <[email protected]>
Thu, 24 Apr 2025 16:26:15 +0000 (18:26 +0200)
commit063b9432cc6db5457b10529cf95f624fdad48d25
tree1e82fd1a8a47f80d1717948a0d6cf1b844a74963
parent21df0c65807367a019a750d034b866fbc9fc802c
ENHANCED: use a fast test for the expected case of chars in atom_chars/2 etc.

Suggested by Oleg Finkelstein, thank you a lot!

Example, before this change:

    ?- t+\(length(As, 1_000_000), maplist(=(a), As), time(atom_chars(A, As))).
       % CPU time: 0.693s, 7_000_041 inferences
       true.

Now:

    ?- t+\(length(As, 1_000_000), maplist(=(a), As), time(atom_chars(A, As))).
       % CPU time: 0.080s, 40 inferences
       true.

This also partially ameliorates #2907.
src/lib/builtins.pl