What steps will reproduce the problem?
1. New Soar instance
2. Execute: "watch-wmes -a -t both * foo *"
3. Execute: "watch --wmes"
4. Step
What is the expected output? What do you see instead?
Expected: nothing (nothing is added/removed from working memory that matches
the pattern * ^foo *)
Instead: =>WM: for all WMEs in the new substate
Notes:
The reason for this behavior is that the passes_wme_filtering function (in
print.cpp) has its contents commented out (along with a dependent function,
wme_filter_component_match), with just a return TRUE at the end. The result is
that there is no filtering - if you enable the appropriate watch ("watch
--wmes") then you see all deltas fly past you.
This is true as far back as May 13, 2005 (r1321). Assuming there are no filters
defined, the function, as written, would have exited just as fast, so it's not
really a performance issue. Either the command should be removed or this code
uncommented [and checked for correctness].
As a side note, our documentation is lacking: the command says it applies "when
watching wmes" (which means, in code-speak, that you have to enable the watch
--wmes option). I honestly only got that when I looked at the source code.
Original issue reported on code.google.com by nate.der...@gmail.com on 19 Feb 2012 at 5:46
Original issue reported on code.google.com by
nate.der...@gmail.com
on 19 Feb 2012 at 5:46