From: Mark Thom Date: Mon, 3 Feb 2020 05:52:17 +0000 (-0700) Subject: enable cross-query memoization in the tabling library X-Git-Tag: v0.8.118~16 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=00b38549f57691d45669c51519c8ef434e4047f7;p=scryer-prolog.git enable cross-query memoization in the tabling library --- diff --git a/src/prolog/lib/tabling/table_link_manager.pl b/src/prolog/lib/tabling/table_link_manager.pl index 90e498af..30a5bc6b 100644 --- a/src/prolog/lib/tabling/table_link_manager.pl +++ b/src/prolog/lib/tabling/table_link_manager.pl @@ -73,9 +73,9 @@ put_new_trie_table_link :- ( bb_get(trie_table_link_initialized, _) -> true ; trie_new(Trie), - bb_b_put(trie_table_link, TrieFlag), - bb_b_put(trie_table_link_initialized, []), - put_atts(TrieFlag, trie_table_link(Trie)) + put_atts(TrieFlag, trie_table_link(Trie)), + bb_put(trie_table_link, TrieFlag), + bb_put(trie_table_link_initialized, []) ). get_trie_table_link(Trie) :- @@ -104,7 +104,9 @@ p_existing_table(Variant, TableIdentifier) :- p_link_variant_identifier(Variant, TableIdentifier) :- get_trie_table_link(Trie), variant_canonical_representation(Variant, CanonicalRepresentation), - trie_insert_succeed(Trie, CanonicalRepresentation, TableIdentifier). + trie_insert_succeed(Trie, CanonicalRepresentation, TableIdentifier), + put_atts(TrieFlag, trie_table_link(Trie)), + bb_put(trie_table_link, TrieFlag). % Returns a list of existing table identifiers. % Rather costly.