[pure-lang-svn] SF.net SVN: pure-lang:[653] pure/trunk
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-08-28 11:38:39
|
Revision: 653 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=653&view=rev Author: agraef Date: 2008-08-28 11:38:47 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Add interface to sentries. Modified Paths: -------------- pure/trunk/ChangeLog pure/trunk/lib/primitives.pure Modified: pure/trunk/ChangeLog =================================================================== --- pure/trunk/ChangeLog 2008-08-28 11:27:46 UTC (rev 652) +++ pure/trunk/ChangeLog 2008-08-28 11:38:47 UTC (rev 653) @@ -1,5 +1,7 @@ 2008-08-28 Albert Graef <Dr....@t-...> + * lib/primitives.pure: Add interface to sentries (see below). + * runtime.cc/h: Added sentries -- expression "guards" which are applied to the target expression when it is garbage-collected. Only sentries on applications and pointer objects are supported Modified: pure/trunk/lib/primitives.pure =================================================================== --- pure/trunk/lib/primitives.pure 2008-08-28 11:27:46 UTC (rev 652) +++ pure/trunk/lib/primitives.pure 2008-08-28 11:38:47 UTC (rev 653) @@ -23,6 +23,17 @@ extern void pure_throw(expr*) = throw; // IMPURE! +/* Sentries. These are expression "guards" which are applied to the target + expression when it is garbage-collected. The sentry function places a + sentry at an expression (and returns the modified expression), clear_sentry + removes, get_sentry returns it. NOTE: In the current implementation + sentries can only be placed at applications and pointer objects. The sentry + itself can be any type of object (but usually it's a function). */ + +extern expr* pure_sentry(expr*,expr*) = sentry; // IMPURE! +extern expr* pure_clear_sentry(expr*) = clear_sentry; // IMPURE! +extern expr* pure_get_sentry(expr*) = get_sentry; + /* Syntactic equality. */ extern bool same(expr* x, expr* y); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |