@ciao-lang/ts-ciao-interface
Version:
Simple Ciao interface for node.
17 lines • 7.67 kB
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>Byrd box tracing model — Run-time Checking, Testing, and Profiling for Ciao</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">☰</span></a><div id="sidebar" class="lpdoc-sidebar"><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="traces.html">↑</a><a class="lpdoc-navbutton" href="traces.html">←</a><a class="lpdoc-navbutton" href="ciaodbg_ref_manrefs.html">→</a><a class="lpdoc-navbutton" href="ciaodbg_ref_mansearch.html">🔍</a></span><span><a href="ciaodbg_ref_manfulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href="ciaodbg_ref_man.html">Run-time Checking, Testing, and Profiling for Ciao</a> »<br/> </li><li><a href="traces.html">Byrd box tracing model (library(tracing))</a> »<br/> </li><li><a href=""><strong>Byrd box tracing model</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>Byrd box tracing model</h1><a class="lpdoc-idx-anchor" href="ciaodbg_ref_mansearch.html#byrd"></a>
<strong>Author(s):</strong> <a class="lpdoc-idx-anchor" id="Francisco Bueno" href="ciaodbg_ref_mansearch.html#Francisco Bueno">Francisco Bueno</a>.<p>
This module can be used to spy predicates in a program. Spying means here to display messages at the call, exit, fail, and redo ports of goals for the predicate spied.<p>In order to spy a predicate using this module a program expansion has to be performed on the program module defining the predicate. This is achieved by the <tt>byrdbox</tt> package.<p>This library is a programming exercise in Ciao expansion packages. It is mainly intended as an auxiliary library for <tt>library(tracing)</tt>.<p>Please note that this is not a replacement for the standard debugger (and which can also be embedded in executables), since it has more limited functionality.<br/><div id="Usage and interface"><h2>Usage and interface</h2><div class="lpdoc-cartouche"><ul><li><strong>Library usage:</strong><br/><tt>:- use_package(byrdbox).</tt> <p>in the program module defining the code to be spied; or<p><tt>:- use_module(library(byrdbox/byrd)).</tt> <p>to call the predicates exported by this module.<li><strong>Exports:</strong><br/><ul class="lpdoc-itemize-minus"><li><em>Predicates:</em><br/><a class="lpdoc-idx-anchor" id="0" href="traces.html#spy/1"><tt>spy/1</tt></a>, <a class="lpdoc-idx-anchor" id="1" href="traces.html#nospy/1"><tt>nospy/1</tt></a>, <a class="lpdoc-idx-anchor" id="2" href="#trace/1"><tt>trace/1</tt></a>, <a class="lpdoc-idx-anchor" id="3" href="#trace0/1"><tt>trace0/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="spy/1" href="ciaodbg_ref_mansearch.html#spy/1">spy/1</a></div><div class="lpdoc-deftext"><span class="lpdoc-usage-decl"><tt>spy(M:F/A)</tt>
</span><p>Turns spying of predicate <tt>F/A</tt> in module <tt>M</tt> on. Declarations of the form <tt>spy(F/A)</tt> (where <tt>M</tt> is implicitly taken as the module where the declaration appears) can also be used, as long as the <tt>byrdbox</tt> package is included.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="nospy/1" href="ciaodbg_ref_mansearch.html#nospy/1">nospy/1</a></div><div class="lpdoc-deftext"><span class="lpdoc-usage-decl"><tt>nospy(M:F/A)</tt>
</span><p>Turns spying of predicate <tt>F/A</tt> in module <tt>M</tt> off.</div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="trace/1" href="ciaodbg_ref_mansearch.html#trace/1">trace/1</a></div><div class="lpdoc-deftext"><span class="lpdoc-usage-decl"><tt>trace(Goal)</tt>
</span><p>Displays messages at the ports of <a class="lpdoc-idx-anchor" id="4" href="ciaodbg_ref_mansearch.html#Goal"><tt>Goal</tt></a>, as long as spying is on for its predicate.
<em>Meta-predicate</em> with arguments: <tt>trace(goal)</tt>.<br/></div></div><p>
<div><div class="lpdoc-defname"><span class="lpdoc-predtag">PREDICATE</span><a class="lpdoc-idx-anchor" id="trace0/1" href="ciaodbg_ref_mansearch.html#trace0/1">trace0/1</a></div><div class="lpdoc-deftext"><span class="lpdoc-usage-decl"><tt>trace0(Goal)</tt>
</span><p>Displays messages at the ports of <a class="lpdoc-idx-anchor" id="5" href="ciaodbg_ref_mansearch.html#Goal"><tt>Goal</tt></a>.
<em>Meta-predicate</em> with arguments: <tt>trace0(goal)</tt>.<br/></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>System library modules:</em><br/><a class="lpdoc-idx-anchor" id="6" href="ciaodbg_ref_mansearch.html#datafacts_rt"><tt>datafacts_rt</tt></a>, <a class="lpdoc-idx-anchor" id="7" href="ciaodbg_ref_mansearch.html#messages"><tt>messages</tt></a>.
<li><em>Internal (engine) modules:</em><br/><a class="lpdoc-idx-anchor" id="8" href="ciaodbg_ref_mansearch.html#term_basic"><tt>term_basic</tt></a>, <a class="lpdoc-idx-anchor" id="9" href="ciaodbg_ref_mansearch.html#arithmetic"><tt>arithmetic</tt></a>, <a class="lpdoc-idx-anchor" id="10" href="ciaodbg_ref_mansearch.html#atomic_basic"><tt>atomic_basic</tt></a>, <a class="lpdoc-idx-anchor" id="11" href="ciaodbg_ref_mansearch.html#basiccontrol"><tt>basiccontrol</tt></a>, <a class="lpdoc-idx-anchor" id="12" href="ciaodbg_ref_mansearch.html#exceptions"><tt>exceptions</tt></a>, <a class="lpdoc-idx-anchor" id="13" href="ciaodbg_ref_mansearch.html#term_compare"><tt>term_compare</tt></a>, <a class="lpdoc-idx-anchor" id="14" href="ciaodbg_ref_mansearch.html#term_typing"><tt>term_typing</tt></a>, <a class="lpdoc-idx-anchor" id="15" href="ciaodbg_ref_mansearch.html#debugger_support"><tt>debugger_support</tt></a>, <a class="lpdoc-idx-anchor" id="16" href="ciaodbg_ref_mansearch.html#basic_props"><tt>basic_props</tt></a>, <a class="lpdoc-idx-anchor" id="17" href="ciaodbg_ref_mansearch.html#hiord_rt"><tt>hiord_rt</tt></a>, <a class="lpdoc-idx-anchor" id="18" href="ciaodbg_ref_mansearch.html#internals"><tt>internals</tt></a>.
<li><em>Packages:</em><br/><a class="lpdoc-idx-anchor" id="19" href="ciaodbg_ref_mansearch.html#prelude"><tt>prelude</tt></a>, <a class="lpdoc-idx-anchor" id="20" href="ciaodbg_ref_mansearch.html#initial"><tt>initial</tt></a>, <a class="lpdoc-idx-anchor" id="21" href="ciaodbg_ref_mansearch.html#condcomp"><tt>condcomp</tt></a>, <a class="lpdoc-idx-anchor" id="22" href="ciaodbg_ref_mansearch.html#assertions"><tt>assertions</tt></a>, <a class="lpdoc-idx-anchor" id="23" href="ciaodbg_ref_mansearch.html#assertions/assertions_basic"><tt>assertions/assertions_basic</tt></a>, <a class="lpdoc-idx-anchor" id="24" href="ciaodbg_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>