Mercurial > urweb
view lib/ur/option.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 | 36428d853c97 |
children |
line wrap: on
line source
datatype t = datatype Basis.option val monad = mkMonad {Return = @@Some, Bind = fn [a] [b] (m1 : t a) (m2 : a -> t b) => case m1 of None => None | Some v => m2 v} fun eq [a] (_ : eq a) = mkEq (fn x y => case (x, y) of (None, None) => True | (Some x, Some y) => x = y | _ => False) fun ord [a] (_ : ord a) = mkOrd {Lt = fn x y => case (x, y) of (None, Some _) => True | (Some x, Some y) => x < y | _ => False, Le = fn x y => case (x, y) of (None, _) => True | (Some x, Some y) => x <= y | _ => False} fun isNone [a] x = case x of None => True | Some _ => False fun isSome [a] x = case x of None => False | Some _ => True fun mp [a] [b] f x = case x of None => None | Some y => Some (f y) fun bind [a] [b] f x = case x of None => None | Some y => f y fun get [a] (x : a) (o : option a) = case o of None => x | Some v => v fun unsafeGet [a] (o : option a) = case o of None => error <xml>Option.unsafeGet: encountered None</xml> | Some v => v