Backport from sid to buster
[hcoop/debian/mlton.git] / regression / weak.2.sml
1 structure Weak = MLton.Weak
2
3 val x = (13, ref 5)
4 val wx = Weak.new x
5 fun isAlive () = isSome (Weak.get wx)
6 val _ = MLton.GC.collect ()
7 val _ = print (Bool.toString (isAlive ()) ^ "\n")
8
9 (*
10 fun sum (x : int * (int list ref vector * int * int) ref) =
11 #1 x +
12 #2 (! (#2 x)) +
13 #3 (! (#2 x)) +
14 Vector.foldr (fn (lr,s) => List.foldr (op +) s (!lr)) 0 (#1 (! (#2 x)))
15
16 val x = (13, ref (Vector.tabulate (10, fn n => ref (List.tabulate (n, fn i => i))),
17 4,
18 5))
19 val wx = Weak.new x
20 fun isAlive () = isSome (Weak.get wx)
21 val _ = MLton.GC.collect ()
22 val _ = print (Bool.toString (isAlive ()) ^ "\n")
23 val s1 = sum x
24 *)