<HTML> <HEAD> <!-- Created by texi2html 1.56k + clip patches and <A href="http://www.clip.dia.fi.upm.es/Software">lpdoc</A> from ciao.texi on 28 January 2007 --> <LINK rel="stylesheet" href="ciao.css" type="text/css"> <TITLE>The Ciao Prolog System - Run-time checking of assertions</TITLE> </HEAD> <BODY> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_64.html">previous</A>, <A HREF="ciao_66.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. <P><HR><P> <H1><A NAME="SEC288" HREF="ciao_toc.html#TOC288">Run-time checking of assertions</A></H1> <P> <A NAME="IDX4256"></A> <P> <STRONG>Author(s):</STRONG> German Puebla. <P> <STRONG>Version:</STRONG> 1.10#7 (2006/4/26, 19:22:13 CEST) <P> <STRONG>Version of last change:</STRONG> 1.9#283 (2004/2/13, 15:39:33 CET) <P> This library package allows the use of run-time checks for the assertions introduced in a program. <P> The recommended way of performing <A NAME="IDX4257"></A> <A NAME="IDX4258"></A> <EM>run-time checks</EM> of predicate assertions in a program is via the Ciao preprocessor (see <CODE>ciaopp</CODE> manual), which performs the required program transformation. However, this package can also be used to perform checking of program-point assertions. <UL> <LI><A HREF="ciao_65.html#SEC289">Usage and interface (rtchecks)</A> <LI><A HREF="ciao_65.html#SEC290">Documentation on exports (rtchecks)</A> <LI><A HREF="ciao_65.html#SEC291">Documentation on internals (rtchecks)</A> <LI><A HREF="ciao_65.html#SEC292">Known bugs and planned improvements (rtchecks)</A> </UL> <H2><A NAME="SEC289" HREF="ciao_toc.html#TOC289">Usage and interface (<CODE>rtchecks</CODE>)</A></H2> <div class="cartouche"> <UL> <LI><STRONG>Library usage:</STRONG> <CODE>:- use_package(rtchecks).</CODE> or <CODE>:- module(...,...,[rtchecks]).</CODE> <LI><STRONG>Exports:</STRONG> <UL> <LI><EM>Regular Types:</EM> <A NAME="IDX4259"></A> <CODE>expr/1</CODE>. </UL> <LI><STRONG>Other modules used:</STRONG> <UL> <LI><EM>System library modules:</EM> <A NAME="IDX4260"></A> <CODE>rtchecks/rtchecks_sys</CODE>. </UL> </UL> </div class="cartouche"> <H2><A NAME="SEC290" HREF="ciao_toc.html#TOC290">Documentation on exports (<CODE>rtchecks</CODE>)</A></H2> <P> <A NAME="IDX4261"></A> <A NAME="IDX4262"></A> <DL> <DT><span class="define">REGTYPE:</span> <B>expr/1:</B> <DD><A NAME="IDX4263"></A> <P> <STRONG>Usage:</STRONG> <UL> <LI><EM>Description:</EM> A property formula. </UL> </DL> <H2><A NAME="SEC291" HREF="ciao_toc.html#TOC291">Documentation on internals (<CODE>rtchecks</CODE>)</A></H2> <P> <A NAME="IDX4264"></A> <A NAME="IDX4265"></A> <DL> <DT><span class="define">PREDICATE:</span> <B>check/1:</B> <DD><A NAME="IDX4266"></A> <P> <CODE>check(Property)</CODE> <P> Checks whether the property defined by <CODE>Property</CODE> holds. Otherwise, a warning message is issued. It corresponds to a program-point <A NAME="IDX4267"></A> check assertion (see section <A HREF="ciao_59.html#SEC266">The Ciao assertion package</A>). <P> <STRONG>Usage:</STRONG> <CODE>check(Property)</CODE> <UL> <LI><EM>The following properties should hold at call time:</EM> A property formula. (<CODE>user(... /rtchecks_doc):expr/1</CODE>) </UL> </DL> <H2><A NAME="SEC292" HREF="ciao_toc.html#TOC292">Known bugs and planned improvements (<CODE>rtchecks</CODE>)</A></H2> <UL> <LI> All the code in this package is included in the user program when it is used, ant there is a lot of it! A module should be used instead. <LI> <CODE>check/1</CODE> uses lists instead of "proper" properties. </UL> <P><HR><P> Go to the <A HREF="ciao_1.html">first</A>, <A HREF="ciao_64.html">previous</A>, <A HREF="ciao_66.html">next</A>, <A HREF="ciao_241.html">last</A> section, <A HREF="ciao_toc.html">table of contents</A>. </BODY> </HTML>