From: <ejo...@cs...> - 2000-06-30 17:07:14
|
> We really shouldn't let you near assert. We're logic programmers and > you're a database programmer. Notice that you are asserting (yeah, > yeah, it's using tries, but it's still adding to a static data > structure) into a trie (using trie_intern) while you are reading > through that trie (using trie_interned). That means that the > trie_interned call has laid down a choice point pointing into that > trie, and then your trie_intern is changing the trie so that those > pointers are no longer valid. This is *not allowed*. I know we > should have figured out a way to tell users that they can't do this. > Maybe we should disable the functions trie_interned and trie_intern? What is the reason that trie_intern and trie_interned currently exist? (What is the history and what are they being used for now?) Can we get the same effect using some other, perhaps "more standard," mechanism (like trie asserts) ? If so, then removing them, at least from the users' view, seems reasonable. (Then, as with other things, if they still insist on using them, then they get what they get.) -Ernie |