2024-07-18 08:39 AEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0000360mercuryFeature Requestpublic2014-09-18 20:57
Assigned Tozs 
StatusclosedResolutionnot fixable 
Product Version 
Target VersionFixed in Version 
Summary0000360: minimal_model tabling of semidet procedures
DescriptionThe attached program is a version of the Happy Numbers task from RosettaCode,
<http://rosettacode.org/wiki/Happy_numbers>. It attempts to use minimal_model tabling
to avoid the explicit caching that the existing version uses. That doesn't work since minimal_model
tabling and semidet predicates are not supported. Can this restriction be lifted? In the meantime,
the reference manual section on tabling should make mention of the restriction.
TagsNo tags attached.
Attached Files




zs (developer)

No, minimal model evaluation cannot be applied to model_semi procedures (or model_det, for that matter). Its current implementation inherently relies on the predicate having its stack frame on the nondet stack, because it works by manipulating that stack. Giving a model_det or model_semi procedure a frame on the nondet stack would violate invariants that say that such procedures do not touch the nondet stack.


zs (developer)

Clarification to the documentation committed sep 18.

-Issue History
Date Modified Username Field Change
2014-09-15 14:54 juliensf New Issue
2014-09-15 14:54 juliensf File Added: happy_mm.m
2014-09-16 13:45 zs Note Added: 0000789
2014-09-18 20:57 zs Note Added: 0000790
2014-09-18 20:57 zs Status new => closed
2014-09-18 20:57 zs Assigned To => zs
2014-09-18 20:57 zs Resolution open => not fixable
+Issue History