From 00b38549f57691d45669c51519c8ef434e4047f7 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 2 Feb 2020 22:52:17 -0700 Subject: [PATCH] enable cross-query memoization in the tabling library --- src/prolog/lib/tabling/table_link_manager.pl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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. -- 2.54.0