[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.
|