Import Upstream version 20180207
[hcoop/debian/mlton.git] / regression / weak.2.sml
CommitLineData
7f918cf1
CE
1structure Weak = MLton.Weak
2
3val x = (13, ref 5)
4val wx = Weak.new x
5fun isAlive () = isSome (Weak.get wx)
6val _ = MLton.GC.collect ()
7val _ = print (Bool.toString (isAlive ()) ^ "\n")
8
9(*
10fun 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
16val x = (13, ref (Vector.tabulate (10, fn n => ref (List.tabulate (n, fn i => i))),
17 4,
18 5))
19val wx = Weak.new x
20fun isAlive () = isSome (Weak.get wx)
21val _ = MLton.GC.collect ()
22val _ = print (Bool.toString (isAlive ()) ^ "\n")
23val s1 = sum x
24*)