changeset 1695:385a1b799a74

Handle recursive RPC handlers
author Adam Chlipala <adam@chlipala.net>
date Sun, 11 Mar 2012 21:20:09 -0400
parents 7b4abecadc38
children 177547450bb9
files src/rpcify.sml tests/selfRpc.ur
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/rpcify.sml	Sat Mar 10 13:35:02 2012 -0500
+++ b/src/rpcify.sml	Sun Mar 11 21:20:09 2012 -0400
@@ -142,7 +142,7 @@
                                               decl = fn x => x}
                               st d
             in
-                (#export_decls st @ [d],
+                (d :: #export_decls st,
                  {exported = #exported st,
                   export_decls = []})
             end
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/selfRpc.ur	Sun Mar 11 21:20:09 2012 -0400
@@ -0,0 +1,7 @@
+fun test () =
+    k <- source <xml/>;
+    return <xml><button onclick={r <- rpc (test ()); set k r}/></xml>
+
+fun main () : transaction page =
+    h <- test ();
+    return <xml><body>{h}</body></xml>