view tests/tryRpc.ur @ 1892:907a82a44f01

Add missing inter-library dependencies This is needed, at least on recent Ubuntu, to fix these linker errors when compiling any Ur/Web application: liburweb.so: undefined reference to `lround' liburweb.so: undefined reference to `ceil' liburweb.so: undefined reference to `RAND_bytes' liburweb.so: undefined reference to `DES_fcrypt' liburweb.so: undefined reference to `SHA256_Init' liburweb.so: undefined reference to `SHA256_Final' liburweb.so: undefined reference to `SHA256_Update' Signed-off-by: Anders Kaseorg <andersk@mit.edu> --- src/c/Makefile.am | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
author Anders Kaseorg <andersk@mit.edu>
date Thu, 21 Nov 2013 14:32:11 -0500
parents e15234fbb163
children
line wrap: on
line source
fun isBeppo (s : string) : transaction string =
    case s of
        "Beppo" => return "Yup, that's him!"
      | "Mephisto" => error <xml>Great googely moogely!</xml>
      | _ => return "Who's that?"

fun listOf (n : int) =
    if n < 0 then
        error <xml>Negative!</xml>
    else if n = 0 then
        return []
    else
        ls <- listOf (n - 1);
        return (n :: ls)

fun length ls =
    case ls of
        [] => 0
      | _ :: ls' => 1 + length ls'

fun main () : transaction page =
    s <- source "";
    ns <- source "";
    return <xml><body>
      <ctextbox source={s}/>
      <button value="rpc" onclick={fn _ => v <- get s;
                                      r <- rpc (isBeppo v);
                                      alert r}/>
      <button value="tryRpc" onclick={fn _ => v <- get s;
                                         r <- tryRpc (isBeppo v);
                                         case r of
                                             None => alert "Faaaaaailure."
                                           | Some r => alert ("Success: " ^ r)}/>

      <hr/>

      <ctextbox source={ns}/>
      <button value="rpc" onclick={fn _ => v <- get ns;
                                      r <- rpc (listOf (readError v));
                                      alert (show (length r))}/>
      <button value="tryRpc" onclick={fn _ => v <- get ns;
                                         r <- tryRpc (listOf (readError v));
                                         case r of
                                             None => alert "Faaaaaailure."
                                           | Some r => alert ("Success: " ^ show (length r))}/>
    </body></xml>