@@ -0,0 +1,36 @@
1+# UF Grant: Loom pointer compression
2+
3+This project makes it possible to at least double the maximum addressible loom size, taking advantage of object allocation alignment to make use of one-or-more additional bits in our 29-bit (30-bits possible) loom-offset references.
4+
5+## Deliverables
6+
7+- an updated allocator (`u3a_walloc()`) that ensures at least 8-byte (2-word) alignment for all allocations
8+- an updated de/reference api that compresses pointer-to-offset (`u3a_to_off()`) and decompresses offset-to-pointer (`u3a_to_ptr()`)
9+- a migration from the old to new heap layout (`u3m_pack()`, but enforcing new alignment invariants)
10+
11+## User Stories
12+
13+- moar nouns
14+
15+## Prequisites
16+
17+- proficiency in C
18+- familiarity with custom allocators, bit-twiddling, &c
19+
20+## Educational Outcomes for the Apprentice
21+
22+The apprentice will learn about:
23+
24+- vere/u3
25+- the loom and road system
26+- our allocator
27+
28+## Responsibilities of the Mentor
29+
30+- technical direction
31+- code review
32+- release plan
33+
34+## Duration and Compensation
35+
36+Expected duration is two months.