Landin library reference source

compiler/tests/fixtures/runtime/library-shared-mem/main.ldn

1import core/mem
2
3exercise: () -> (ok: bool) ! mem.out_of_memory =
4    ok = false
5    mut backing: [32]u8 = zeroed
6    mut state := mem.arena_over_unchecked(addr backing[0], 32)
7    address := try mem.allocate(state, usize(4), usize(1))
8    address.val = 42
9    return when address.val <> 42
10    _ = mem.allocate(state, usize(64), usize(1)) else (problem)
11        _ = problem
12        ok = mem.arena_used(state) == 4
13        return
14    end
15end exercise
16
17public main: () -> (code: i32) =
18    code = 1
19    ok := exercise() else false
20    if ok then
21        code = 42
22    end if
23end main