-
cd34c3fea9
A union recurses through a pointer, and not by value
Joseph Ferano
2026-09-12 17:02:59 +07:00
-
d5901e809b
What a union is, and every decision the spec did not settle
Joseph Ferano
2026-09-12 17:00:47 +07:00
-
f3f973d775
A second fingerprint for the globals a body names, and the header caches at both levels
Joseph Ferano
2026-09-12 17:00:20 +07:00
-
-
36c3e5a56d
The globals a frame names, checked the way its slots already were
Joseph Ferano
2026-09-12 16:58:34 +07:00
-
6c026cb32e
uninit on a union, and .field on one, are both refused
Joseph Ferano
2026-09-12 16:57:56 +07:00
-
ee15745718
What a union has to do, and what it must refuse
Joseph Ferano
2026-09-12 16:56:31 +07:00
-
135a780f3d
A watch window, an address-rooted inspector, and structural typing that is just layout
Joseph Ferano
2026-09-12 16:53:43 +07:00
-
03f7609201
The structural printer reads only the case in hand
Joseph Ferano
2026-09-12 16:53:26 +07:00
-
df1a43d3ac
The header cost was never on the redefinition path, and here is the split
Joseph Ferano
2026-09-12 16:53:23 +07:00
-
7ff6c27964
An import cycle is refused and named, and packages are ordered dependencies first
Joseph Ferano
2026-09-12 16:49:29 +07:00
-
-
-
-
77ee428d4b
The alias-clash test was claiming which line the message names
Joseph Ferano
2026-09-12 16:48:51 +07:00
-
675241e226
Union values: a tag, a blob, and a case laid over it
Joseph Ferano
2026-09-12 16:48:43 +07:00
-
-
-
dc73b63446
Say that a ring is refused, since the last note said the opposite
Joseph Ferano
2026-09-12 16:47:06 +07:00
-
c604911ecb
A ring of imports is refused by name, not swallowed
Joseph Ferano
2026-09-12 16:46:30 +07:00
-
-
03e8a1fd1b
A Map, open-addressed and Robin Hood, over the type-erased runtime
Joseph Ferano
2026-09-12 16:35:01 +07:00
-
-
ea24461107
Cover a dev build and a map that leaves its let
Joseph Ferano
2026-09-12 16:34:25 +07:00
-
b2059520ab
Say what the Map is, what it cost, and where it loses
Joseph Ferano
2026-09-12 16:29:27 +07:00
-
6b34dc85c8
The lookup was 35ns and is 18ns, and a profile said where every time
Joseph Ferano
2026-09-12 16:26:39 +07:00
-
3325c41fb7
The globals a stopped stack touches, in a section of their own
Joseph Ferano
2026-09-12 16:23:31 +07:00
-
-
635d12782d
The globals a stopped stack reaches, in one section and not under a frame
Joseph Ferano
2026-09-12 16:20:00 +07:00
-
b239d2ae59
Read raylib's header instead of trusting the transcription
Joseph Ferano
2026-09-12 16:20:54 +07:00
-
-
-
-
2179627593
The break buffer opens itself, and a breakpoint is not called a failure
Joseph Ferano
2026-09-12 15:35:08 +07:00
-
0f3b633449
The printed struct moves to the dot, with the reader that parses it
Joseph Ferano
2026-09-12 15:29:34 +07:00
-
a0610cecd5
A number in the inspector reads in the two bases it was written in
Joseph Ferano
2026-09-12 15:06:49 +07:00
-
5ad429d69f
Indentation ported from clojure-mode, and #_ discards a form
Joseph Ferano
2026-09-12 16:18:57 +07:00
-
-
9d6784f2cd
Write down what was read, what was refused, and what it cost
Joseph Ferano
2026-09-12 16:17:30 +07:00
-
64342c406e
The manual says how a form is indented, and NEXT loses what landed
Joseph Ferano
2026-09-12 16:15:37 +07:00
-
6c28529838
An acceptance case for bindings nobody wrote
Joseph Ferano
2026-09-12 16:13:28 +07:00
-
7a0301ff1b
Errors want spans and notes before they want volume, and jank shows how
Joseph Ferano
2026-09-12 16:13:17 +07:00
-
c9e9d93a91
#_ discards the next form, so commenting one out is not paren counting
Joseph Ferano
2026-09-12 15:03:33 +07:00
-
e12e3e11c5
A table for the importer, against a header that does not move
Joseph Ferano
2026-09-12 16:09:48 +07:00
-
c45447a6d4
The Map's tests join the suite, and the epoch trap covers its half
Joseph Ferano
2026-09-12 16:09:27 +07:00
-
0d549a6b6e
Indentation is ported from clojure-mode, which has the shapes Flan uses
Joseph Ferano
2026-09-12 15:01:11 +07:00
-
1bc5161ee2
StorageExhausted holds over the Map's four allocating operations
Joseph Ferano
2026-09-12 16:04:59 +07:00
-
ef7650ec99
A kebab collision takes every name in its group down
Joseph Ferano
2026-09-12 16:02:16 +07:00
-
1fb208a991
The header is checked at build time, not only by a tool
Joseph Ferano
2026-09-12 15:59:35 +07:00
-
4a78e50375
A package can name the headers it binds, and the import is nearly free
Joseph Ferano
2026-09-12 15:29:07 +07:00
-
19aa10158a
Read the header instead of trusting the transcription
Joseph Ferano
2026-09-12 15:15:01 +07:00
-
-
-
cd0f0a486e
array takes the count and the type; the directory keeps naming the module
Joseph Ferano
2026-09-12 16:00:33 +07:00
-
-
e0aedadd74
maps.flan, and a move refusal that names the type it is about
Joseph Ferano
2026-09-12 15:59:19 +07:00
-
008eec0ad5
A Flan program can reach the Map now
Joseph Ferano
2026-09-12 15:33:06 +07:00
-
66a542277f
The Map runtime, and the compiler scaffolding it needs
Joseph Ferano
2026-09-12 15:20:53 +07:00
-
-
380924e553
Labelled break, and the reason one error per compile is the real gap
Joseph Ferano
2026-09-12 15:26:25 +07:00
-
9e6c655116
A let has the function's extent, so a defer may be written in one
Joseph Ferano
2026-09-12 15:18:39 +07:00
-
-
8aac059485
Convert the snippets that landed after the sweep, but not the printer's own output
Joseph Ferano
2026-09-12 15:08:49 +07:00
-
6d54a4390e
A field label is a dot, and the colon belongs to keys
Joseph Ferano
2026-09-12 15:04:07 +07:00
-
-
73fb16bfa3
Two comments the sweep could not reach, and a handoff note that was wrong
Joseph Ferano
2026-09-12 15:03:35 +07:00
-
e992491799
The colon belongs to keys; the prose, the page and the sweep agree now
Joseph Ferano
2026-09-12 15:00:34 +07:00
-
cb757868b4
Keep the printed struct a colon; it is a wire format Emacs reads back
Joseph Ferano
2026-09-12 14:55:47 +07:00
-
c598169155
Folding a frame is a display operation when there is nothing to ask
Joseph Ferano
2026-09-12 14:54:53 +07:00
-
e041b2f26c
A let has the function's extent, so a defer may be written in one
Joseph Ferano
2026-09-12 14:54:52 +07:00
-
28fb034beb
The slot fingerprint was emitted and never read back
Joseph Ferano
2026-09-12 14:52:22 +07:00
-
-
8e47356592
A field label is a dot now, and the colon is refused where one was
Joseph Ferano
2026-09-12 14:51:57 +07:00
-
4e6b3f6183
A frame with no slots still has a body, and the note spoke for it
Joseph Ferano
2026-09-12 14:51:24 +07:00
-
b5d7a6e45f
Say what the fingerprint is for, and correct the note that guessed
Joseph Ferano
2026-09-12 14:48:45 +07:00
-
9a820d86cd
Sweep every field label from the colon spelling to the dot
Joseph Ferano
2026-09-12 14:47:54 +07:00
-
-
a380f6f2fe
Unions and macros go ahead of Handle; generics wait for a customer
Joseph Ferano
2026-09-12 14:47:27 +07:00
-
-
-
10b736f23e
The slot fingerprint was emitted and never read
Joseph Ferano
2026-09-12 14:47:26 +07:00
-
-
9669ff23d0
The next batch, ordered, with what runs in parallel
Joseph Ferano
2026-09-12 14:34:59 +07:00
-
a1827adb66
defer stays the answer; drop is deferred and the shim can count what leaks
Joseph Ferano
2026-09-12 14:31:15 +07:00
-
a3fccf440c
Handle is the gate on classes, and the allocator just made it buildable
Joseph Ferano
2026-09-12 14:08:20 +07:00
-
03692c35b5
clojure-mode is the reference to port from, not an ancestor to inherit
Joseph Ferano
2026-09-12 14:06:38 +07:00
-
f2d80ce8c0
Borrow clojure-mode's binding alignment without inheriting its assumptions
Joseph Ferano
2026-09-12 14:05:40 +07:00
-
394b656a68
Indentation falls through to Emacs Lisp inside a binding vector
Joseph Ferano
2026-09-12 14:04:10 +07:00
-
693661c4dd
Reading a header need not mean linking libclang
Joseph Ferano
2026-09-12 14:01:12 +07:00
-
99db8ce73f
A JS backend is for web apps, which makes object mapping the right shape
Joseph Ferano
2026-09-12 13:58:29 +07:00
-
c49286ca01
Structural identity is not implicit conversion, and writability decides the layout question
Joseph Ferano
2026-09-12 13:56:24 +07:00
-
95b4f1173b
Structural typing is a front-end question, except for field order, which is layout
Joseph Ferano
2026-09-12 13:53:44 +07:00
-
a8a032e340
Three roles want three words, and two of them want the same dependency tracking
Joseph Ferano
2026-09-12 13:51:40 +07:00
-
f1223cde2e
-O0 follows the source and -O2 need not, and what SBCL gets for owning its code
Joseph Ferano
2026-09-12 13:41:34 +07:00
-
b97a3dbbf1
The inspector walks expressions, which is why it cannot see a frame
Joseph Ferano
2026-09-12 13:36:34 +07:00
-
f4f61ae8c9
Two questions became decisions, so they move to what is left
Joseph Ferano
2026-09-12 13:30:15 +07:00
-
244f83fe53
Globals are program state, so they get a section rather than a frame
Joseph Ferano
2026-09-12 13:27:27 +07:00
-
f231f62f52
Globals go per frame; watching is its own question
Joseph Ferano
2026-09-12 13:26:38 +07:00
-
ce9ea2f268
Nine questions asked and not answered, with what is already known about each
Joseph Ferano
2026-09-12 13:04:38 +07:00
-
8d56bd0ced
TAB folds a frame, which is what the header always said it did
Joseph Ferano
2026-09-12 12:31:16 +07:00
-
3439dec5b1
Being on the frame line is not the same as having no locals
Joseph Ferano
2026-09-12 12:30:51 +07:00
-
4857db1fc4
A breakpoint, which is only error under a restart-case
Joseph Ferano
2026-09-12 12:25:08 +07:00
-
81d46c342e
The stack section draws the frames it was written for
Joseph Ferano
2026-09-12 12:16:30 +07:00
-
bdb3f105f2
sand.flan builds for the browser, with its brush baked in
Joseph Ferano
2026-09-12 12:09:54 +07:00
-
-
c0bf4ac34c
Say where sand.flan lands for the browser, and how to open it
Joseph Ferano
2026-09-12 12:09:08 +07:00
-
a0e485f5fb
A shadow stack, a backtrace, and a stopped frame's locals
Joseph Ferano
2026-09-12 12:08:06 +07:00
-
-
53d49570ec
A slot fingerprint per frame, which does not yet catch what it is for
Joseph Ferano
2026-09-12 12:07:33 +07:00
-
ce346dd972
sand.flan opens in a browser: the sheet is embedded and the agent is a stub
Joseph Ferano
2026-09-12 12:07:16 +07:00
-
5badf6658b
The colon belongs to keys, and Map follows Odin rather than Clojure
Joseph Ferano
2026-09-12 12:07:06 +07:00
-
-
-
0ff4ce56a5
The locals of a stopped frame, read where they live
Joseph Ferano
2026-09-12 12:00:29 +07:00
-
eb98c5859a
Files baked in at compile time, and read and written at run time
Joseph Ferano
2026-09-12 11:51:16 +07:00
-
-
54c38d0654
The files slurp.flan writes are output, not sources
Joseph Ferano
2026-09-12 11:50:22 +07:00
-
2a5632bca1
Guard the whole embed read, not only the open
Joseph Ferano
2026-09-12 11:50:06 +07:00
-
6ce4282337
A frame per call in a dev build, and a stopped program can say where it is
Joseph Ferano
2026-09-12 11:49:25 +07:00
-
-
-
9ab247badf
Say why the embed is a constant and why barf refuses rather than lies
Joseph Ferano
2026-09-12 11:45:41 +07:00
-
fe85ecd246
The three ways an embed is written wrong, each said at the right moment
Joseph Ferano
2026-09-12 11:43:34 +07:00
-
fff4f5d985
One source, two outcomes: barf is refused on the web and says so
Joseph Ferano
2026-09-12 11:41:24 +07:00
-
f88ce56073
slurp reads a whole file, barf writes one, and failure is a condition
Joseph Ferano
2026-09-12 11:38:24 +07:00
-
1d7f5e1c85
Assets are baked in at compile time, one file or one whole directory
Joseph Ferano
2026-09-12 11:36:01 +07:00
-
-
ce59f90707
An allocator, an arena, and a Vec that signals when storage runs out
Joseph Ferano
2026-09-12 11:22:57 +07:00
-
-
67c9268907
Reach the two paths a new type can die on, and stop println consuming a Vec
Joseph Ferano
2026-09-12 11:20:56 +07:00
-
c6f276cbff
Say what the two one-line refusal programs are refusing, and why
Joseph Ferano
2026-09-12 11:15:58 +07:00
-
92ca8c9774
Strike steps 1 to 3, and say in BUILT.md why the built thing is that shape
Joseph Ferano
2026-09-12 11:15:22 +07:00
-
5aa6c16209
Ownership is not transitive yet, so refuse the three shapes that assume it is
Joseph Ferano
2026-09-12 11:12:49 +07:00