UNPKG

@ciao-lang/ts-ciao-interface

Version:

Simple Ciao interface for node.

27 lines 11.3 kB
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>Intermodular entry policy &mdash; The CiaoPP Program Processor v1.5</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">&#9776;</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="ciao-logo_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="intermod.html">&#x2191;</a><a class="lpdoc-navbutton" href="intermod_punit.html">&#x2190;</a><a class="lpdoc-navbutton" href="intermod_success.html">&#x2192;</a><a class="lpdoc-navbutton" href="ciaopp_ref_mansearch.html">&#x1F50D;</a></span><span><a href="ciaopp_ref_manfulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="ciaopp_ref_man.html">The CiaoPP Program Processor</a> &raquo;<br/> </li><li><a href="part_internals.html">PART IV - CiaoPP Internals</a> &raquo;<br/> </li><li><a href="intermod.html">Modular driver</a> &raquo;<br/> </li><li><a href=""><strong>Intermodular entry policy</strong></a></li></ul><hr></hr><em>ON THIS PAGE</em><ul><li><a href="#Usage and interface">Usage and interface</a></li><li><a href="#Documentation on exports">Documentation on exports</a></li><li><a href="#Documentation on imports">Documentation on imports</a></li></ul></div><div class="lpdoc-main"><div id=""><h1>Intermodular entry policy</h1><a class="lpdoc-idx-anchor" href="ciaopp_ref_mansearch.html#intermod_entry"></a> This module provides the entry policy algorithms for modular analysis. The entry policy is determined by the <a class="lpdoc-idx-anchor" id="0" href="ciaopp_ref_mansearch.html#entry_policy"><tt>entry_policy</tt></a> preprocessing flag.<br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/><tt>:- use_module(ciaopp(plai/intermod_entry)).</tt><li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Predicates:</em><br/><a class="lpdoc-idx-anchor" id="1" href="#check_curr_entry_id/1"><tt>check_curr_entry_id/1</tt></a>, <a class="lpdoc-idx-anchor" id="2" href="#curr_entry_id/1"><tt>curr_entry_id/1</tt></a>, <a class="lpdoc-idx-anchor" id="3" href="#get_entry_info/3"><tt>get_entry_info/3</tt></a>, <a class="lpdoc-idx-anchor" id="4" href="#intermod_entry_point/7"><tt>intermod_entry_point/7</tt></a>, <a class="lpdoc-idx-anchor" id="5" href="#add_entries_to_registry/1"><tt>add_entries_to_registry/1</tt></a>. </ul></ul></div></div><div id="Documentation on exports"><h2>Documentation on exports</h2><div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="check_curr_entry_id/1" href="ciaopp_ref_mansearch.html#check_curr_entry_id/1">check_curr_entry_id/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>check_curr_entry_id(Id)</tt> </span><p>Checks that <span class="lpdoc-var">Id</span> was an entry of the last fixpoint analysis.</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="6" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">Id</span> is currently a term which is not a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="curr_entry_id/1" href="ciaopp_ref_mansearch.html#curr_entry_id/1">curr_entry_id/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>curr_entry_id(Id)</tt> </span><p>Enumerates the <span class="lpdoc-var">Id</span>s of the entries of the last fixpoint analysis.</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="get_entry_info/3" href="ciaopp_ref_mansearch.html#get_entry_info/3">get_entry_info/3</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>get_entry_info(AbsInt,Sg,Proj)</tt> </span><p>Provides on backtracking entry abstract substitutions for the current module in the global level of intermodular analysis. In the case of manual scheduling, this predicate should be called for every module in the program unit. In the case of automatic scheduling, this predicate should only be called with top-level(U).</p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="7" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">AbsInt</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="8" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Sg</span> is a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="9" href="ciaopp_ref_mansearch.html#var/1"><tt>var/1</tt></a>)</span><span><span class="lpdoc-var">Proj</span> is a free variable. </span> </ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="intermod_entry_point/7" href="ciaopp_ref_mansearch.html#intermod_entry_point/7">intermod_entry_point/7</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><p>User-specified entry points for intermodular analysis. I.e., according to the policy defined</p><ul class="lpdoc-itemize-minus"></ul></div></div><p> <div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="add_entries_to_registry/1" href="ciaopp_ref_mansearch.html#add_entries_to_registry/1">add_entries_to_registry/1</a></div><div class="lpdoc-deftext"><p><span class="lpdoc-usage-header">Usage:</span><span class="lpdoc-usage-decl"><tt>add_entries_to_registry(AbsInt)</tt> </span><p></p><ul class="lpdoc-itemize-minus"><li><em>The following properties should hold at call time:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="10" href="ciaopp_ref_mansearch.html#nonvar/1"><tt>nonvar/1</tt></a>)</span><span><span class="lpdoc-var">AbsInt</span> is currently a term which is not a free variable. </span><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="11" href="basic_props.html#atm/1"><tt>atm/1</tt></a>)</span><span><span class="lpdoc-var">AbsInt</span> is an atom. </span> <li><em>The following properties should hold globally:</em><br/><span class="lpdoc-on-right"> (<a class="lpdoc-idx-anchor" id="12" href="native_props_nfdet_doc.html#not_fails/1"><tt>not_fails/1</tt></a>)</span><span>All the calls of the form <span class="lpdoc-var">add_entries_to_registry(AbsInt)</span> do not fail. </span> </ul></div></div><p> </div><div id="Documentation on imports"><h2>Documentation on imports</h2>This module has the following direct dependencies:<ul class="lpdoc-itemize-minus"><li><em>Application modules:</em><br/><a class="lpdoc-idx-anchor" id="13" href="ciaopp_ref_mansearch.html#intermod_ops"><tt>intermod_ops</tt></a>, <a class="lpdoc-idx-anchor" id="14" href="preprocess_flags.html"><tt>preprocess_flags</tt></a>, <a class="lpdoc-idx-anchor" id="15" href="domains.html"><tt>domains</tt></a>, <a class="lpdoc-idx-anchor" id="16" href="ciaopp_ref_mansearch.html#transform"><tt>transform</tt></a>, <a class="lpdoc-idx-anchor" id="17" href="apply_assertions.html"><tt>apply_assertions</tt></a>, <a class="lpdoc-idx-anchor" id="18" href="intermod_db.html"><tt>intermod_db</tt></a>. <li><em>System library modules:</em><br/><a class="lpdoc-idx-anchor" id="19" href="ciaopp_ref_mansearch.html#native_props"><tt>native_props</tt></a>, <a class="lpdoc-idx-anchor" id="20" href="ciaopp_ref_mansearch.html#datafacts_rt"><tt>datafacts_rt</tt></a>, <a class="lpdoc-idx-anchor" id="21" href="ciaopp_ref_mansearch.html#lists"><tt>lists</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="ciaopp_ref_mansearch.html#terms_vars"><tt>terms_vars</tt></a>, <a class="lpdoc-idx-anchor" id="23" href="ciaopp_ref_mansearch.html#counters"><tt>counters</tt></a>, <a class="lpdoc-idx-anchor" id="24" href="ciaopp_ref_mansearch.html#vndict"><tt>vndict</tt></a>, <a class="lpdoc-idx-anchor" id="25" href="p_unit.html"><tt>p_unit</tt></a>, <a class="lpdoc-idx-anchor" id="26" href="program_keys.html"><tt>program_keys</tt></a>, <a class="lpdoc-idx-anchor" id="27" href="ciaopp_ref_mansearch.html#p_unit_db"><tt>p_unit_db</tt></a>, <a class="lpdoc-idx-anchor" id="28" href="ciaopp_ref_mansearch.html#assrt_lib"><tt>assrt_lib</tt></a>. <li><em>Internal (engine) modules:</em><br/><a class="lpdoc-idx-anchor" id="29" href="ciaopp_ref_mansearch.html#term_basic"><tt>term_basic</tt></a>, <a class="lpdoc-idx-anchor" id="30" href="ciaopp_ref_mansearch.html#arithmetic"><tt>arithmetic</tt></a>, <a class="lpdoc-idx-anchor" id="31" href="ciaopp_ref_mansearch.html#atomic_basic"><tt>atomic_basic</tt></a>, <a class="lpdoc-idx-anchor" id="32" href="ciaopp_ref_mansearch.html#basiccontrol"><tt>basiccontrol</tt></a>, <a class="lpdoc-idx-anchor" id="33" href="ciaopp_ref_mansearch.html#exceptions"><tt>exceptions</tt></a>, <a class="lpdoc-idx-anchor" id="34" href="ciaopp_ref_mansearch.html#term_compare"><tt>term_compare</tt></a>, <a class="lpdoc-idx-anchor" id="35" href="ciaopp_ref_mansearch.html#term_typing"><tt>term_typing</tt></a>, <a class="lpdoc-idx-anchor" id="36" href="ciaopp_ref_mansearch.html#debugger_support"><tt>debugger_support</tt></a>, <a class="lpdoc-idx-anchor" id="37" href="basic_props.html"><tt>basic_props</tt></a>, <a class="lpdoc-idx-anchor" id="38" href="ciaopp_ref_mansearch.html#hiord_rt"><tt>hiord_rt</tt></a>. <li><em>Packages:</em><br/><a class="lpdoc-idx-anchor" id="39" href="ciaopp_ref_mansearch.html#prelude"><tt>prelude</tt></a>, <a class="lpdoc-idx-anchor" id="40" href="ciaopp_ref_mansearch.html#initial"><tt>initial</tt></a>, <a class="lpdoc-idx-anchor" id="41" href="ciaopp_ref_mansearch.html#condcomp"><tt>condcomp</tt></a>, <a class="lpdoc-idx-anchor" id="42" href="assertions_doc.html"><tt>assertions</tt></a>, <a class="lpdoc-idx-anchor" id="43" href="ciaopp_ref_mansearch.html#assertions/assertions_basic"><tt>assertions/assertions_basic</tt></a>, <a class="lpdoc-idx-anchor" id="44" href="ciaopp_ref_mansearch.html#isomodes"><tt>isomodes</tt></a>, <a class="lpdoc-idx-anchor" id="45" href="ciaopp_ref_mansearch.html#nativeprops"><tt>nativeprops</tt></a>, <a class="lpdoc-idx-anchor" id="46" href="ciaopp_ref_mansearch.html#datafacts"><tt>datafacts</tt></a>. </ul></div></div><div class="lpdoc-footer">Generated with LPdoc using Ciao</div></div><div class="lpdoc-clearer"></div></div></body></html>