blob: 1237b7fca0ee098a7aee1085f8b3d766a2bca6de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
use std
type blob = struct
x : int[10]
;;
const main = {
var i, j
var a : blob#[10000]
for j = 0; j < 100; j++
/* alloc forwards, dealloc forwards */
for i = 0; i < a.len; i++
a[i] = std.alloc()
;;
for i = 0; i < a.len; i++
std.free(a[i])
;;
/* alloc forwards, dealloc backwards */
for i = 0; i < a.len; i++
a[i] = std.alloc()
;;
for i = a.len; i > 0; i--
std.free(a[i - 1])
;;
/* alloc forwards, dealloc randomly */
for i = 0; i < a.len; i++
a[i] = std.alloc()
;;
shuffle(a[:])
for i = a.len; i > 0; i--
std.free(a[i - 1])
;;
;;
}
const shuffle = {a
var t
var rng
var i, j
rng = std.mksrng(123)
for i = 0; i < a.len - 1; i++
j = std.rngrand(rng, i, a.len)
t = a[j]
a[j] = a[i]
a[i] = t
;;
}
|