4 sessions · one clock · 0 votes

Implement a memory allocator in C11

4 sessions from the same published task, on one clock. Scrub to any moment and compare what existed, or open a pane to read its full trajectory.

claude-code
opencode
pi
antigravity
0 votes · scrub before you decide
file writeshellreasoningerror / retrymessageread / searchsubagentplantool call
claude-codeclaude-opus-4-8view session

Implement a memory allocator in C11 in this directory. Files: alloc.c, alloc.h (my_malloc, my_free, my_calloc, my_realloc managing a 1 MiB static byte arena — first-fit free list with block splitting and coalescing of adjacent free blocks on free, 16-byte alignment, per-block canaries with a my_heap_check() validator that walks the heap, and my_stats() reporting bytes in use, free block count, and largest free block), tests.c (a deterministic seeded stress test: 100k mixed malloc/free/realloc ops mirrored against a shadow table, filling each allocation with a pattern and verifying it before free; fragmentation scenario tests proving coalescing recovers the largest block; a canary-violation detection test), Makefile (clang -std=c11 -Wall -Wextra -fsanitize=address,undefined). Build with make, run the tests, and fix failures until everything passes clean.

Makefile
1CC := clang
2CFLAGS := -std=c11 -Wall -Wextra -fsanitize=address,undefined -g -O1
3LDFLAGS := -fsanitize=address,undefined
4
5OBJ := alloc.o tests.o
6
7.PHONY: all run clean
8
9all: tests
10
11tests: $(OBJ)
12 $(CC) $(LDFLAGS) -o $@ $(OBJ)
13
14alloc.o: alloc.c alloc.h
15 $(CC) $(CFLAGS) -c alloc.c -o $@
16
17tests.o: tests.c alloc.h
18 $(CC) $(CFLAGS) -c tests.c -o $@
19
20run: tests
21 ASAN_OPTIONS=detect_leaks=1 UBSAN_OPTIONS=halt_on_error=1 ./tests
22
23clean:
24 rm -f tests $(OBJ)
25
steps
51
duration
12m 49s
errors
10
files
4
session 6da6e019-501read this session →
session rating0
opencodegpt-5.5view session

"Implement a memory allocator in C11 in this directory. Files: alloc.c, alloc.h (my_malloc, my_free, my_calloc, my_realloc managing a 1 MiB static byte arena — first-fit free list with block splitting and coalescing of adjacent free blocks on free, 16-byte alignment, per-block canaries with a my_heap_check() validator that walks the heap, and my_stats() reporting bytes in use, free block count, and largest free block), tests.c (a deterministic seeded stress test: 100k mixed malloc/free/realloc ops mirrored against a shadow table, filling each allocation with a pattern and verifying it before free; fragmentation scenario tests proving coalescing recovers the largest block; a canary-violation detection test), Makefile (clang -std=c11 -Wall -Wextra -fsanitize=address,undefined). Build with make, run the tests, and fix failures until everything passes clean."

Makefile
1CC := clang
2CFLAGS := -std=c11 -Wall -Wextra -fsanitize=address,undefined -g
3LDFLAGS := -fsanitize=address,undefined
4
5.PHONY: all test clean
6
7all: tests
8
9tests: alloc.o tests.o
10 $(CC) $(LDFLAGS) -o $@ alloc.o tests.o
11
12alloc.o: alloc.c alloc.h
13 $(CC) $(CFLAGS) -c alloc.c
14
15tests.o: tests.c alloc.h
16 $(CC) $(CFLAGS) -c tests.c
17
18test: tests
19 ./tests
20
21clean:
22 rm -f tests *.o
23
steps
45
duration
2m 20s
errors
0
files
4
session a5c0bade-919read this session →
session rating0
pigpt-5.5 · mediumview session

Implement a memory allocator in C11 in this directory. Files: alloc.c, alloc.h (my_malloc, my_free, my_calloc, my_realloc managing a 1 MiB static byte arena — first-fit free list with block splitting and coalescing of adjacent free blocks on free, 16-byte alignment, per-block canaries with a my_heap_check() validator that walks the heap, and my_stats() reporting bytes in use, free block count, and largest free block), tests.c (a deterministic seeded stress test: 100k mixed malloc/free/realloc ops mirrored against a shadow table, filling each allocation with a pattern and verifying it before free; fragmentation scenario tests proving coalescing recovers the largest block; a canary-violation detection test), Makefile (clang -std=c11 -Wall -Wextra -fsanitize=address,undefined). Build with make, run the tests, and fix failures until everything passes clean.

Makefile
1CC := clang
2CFLAGS := -std=c11 -Wall -Wextra -fsanitize=address,undefined -g -O1
3LDFLAGS := -fsanitize=address,undefined
4
5.PHONY: all test clean
6
7all: tests
8
9tests: tests.o alloc.o
10 $(CC) $(LDFLAGS) -o $@ $^
11
12%.o: %.c alloc.h
13 $(CC) $(CFLAGS) -c $< -o $@
14
15test: tests
16 ./tests
17
18clean:
19 rm -f tests *.o
20
steps
44
duration
2m 36s
errors
4
files
4
session 8a65b7eb-a82read this session →
session rating0
antigravitygeminiview session

Implement a memory allocator in C11 in this directory. Files: alloc.c, alloc.h (my_malloc, my_free, my_calloc, my_realloc managing a 1 MiB static byte arena — first-fit free list with block splitting and coalescing of adjacent free blocks on free, 16-byte alignment, per-block canaries with a my_heap_check() validator that walks the heap, and my_stats() reporting bytes in use, free block count, and largest free block), tests.c (a deterministic seeded stress test: 100k mixed malloc/free/realloc ops mirrored against a shadow table, filling each allocation with a pattern and verifying it before free; fragmentation scenario tests proving coalescing recovers the largest block; a canary-violation detection test), Makefile (clang -std=c11 -Wall -Wextra -fsanitize=address,undefined). Build with make, run the tests, and fix failures until everything passes clean.

Makefile
1CC = clang
2CFLAGS = -std=c11 -Wall -Wextra -fsanitize=address,undefined -g
3
4SRCS = alloc.c tests.c
5OBJS = $(SRCS:.c=.o)
6TARGET = test_runner
7
8all: test
9
10test: $(TARGET)
11 ./$(TARGET)
12
13$(TARGET): $(OBJS)
14 $(CC) $(CFLAGS) $(OBJS) -o $(TARGET)
15
16%.o: %.c alloc.h
17 $(CC) $(CFLAGS) -c $< -o $@
18
19clean:
20 rm -f $(OBJS) $(TARGET)
21
22.PHONY: all test clean
23
steps
20
duration
49s
errors
0
files
4
session b2e47f91-007read this session →
session rating0
claude-codeopencodepiantigravity
steps51454420
tool calls1916168
duration12m 49s2m 20s2m 36s49s
tokens out154k6k2k
reasoning~195~2k
compactions0000
subagents0000
errors10040
files4444

Token and context figures come from the harness's own per-turn reporting; sessions captured before telemetry landed show a dash. Reasoning marked ~ is estimated from the transcript's thinking text where the harness doesn't report it separately.

Verdict

Pairwise picks on the outputs above, from the current Arena tally.

0 votes
claude-code
opencode
pi
antigravity
qualifying picks feed the leaderboard →
What voters said they were judging

Arena picks do not collect a reason or judging criterion, so no qualitative verdict is inferred here. The bars report only the current comparison tally.