Michael Kifer writes:
> The following
>
> p(X) :- p(Y).
> ?- p(a).
>
> exits with
> Heap and local stack are clobbered
> Exiting XSB abnormally...
>
> In theory, this should loop. Is it possible to catch this kind of things
> and give a hint msg to the user?
I compiled that single clause, loaded it, and asked that query. It
has been running for 4:07 (well, 8:27 now) with 50% CPU utilization
(on my dual core) with no change in memory usage. (This is cygwn.) I
don't know why you should be getting the clobbered message. That
clause should be compiled to take no memory at all. Are you possibly
interpreting it, i.e., is it dynamic code? Ahh, yes. I tried
asserting that clause and indeed I get the clobbered message. I'll
look into why that happens.
If I understand what you mean, you're suggesting that assert look at
each clause being asserted and check to see if it is of some form, and
give a warning if it is? Sounds difficult, error-prone and costly for
minimal payback.
-David
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
|