|
|
c1beb602a7
|
A .fln let is always flat, and flan convert writes flat lets, renaming a shadowed name instead of nesting
|
2026-09-25 23:01:11 +07:00 |
|
|
|
0e26af2107
|
A macro body counts as run in order only when nothing outside its templates depends on how the body splits into arguments, a let whose longer scope would reach a macro naming it stays in a do: block, and converted programs with shadowed names and macro bodies print what their paren originals print
|
2026-09-25 23:00:27 +07:00 |
|
|
|
93e614e239
|
A frame that prints shows its globals, live prelude shadowing matches a rebuild, flan run cleans up and dies with flan, and a long socket path works from Emacs
|
2026-09-25 22:59:50 +07:00 |
|
|
|
bdda16a461
|
flan run's program dies with flan, and a program killed by a signal ends flan run with 128 plus its number
|
2026-09-25 22:57:02 +07:00 |
|
|
|
69ac194ba7
|
An editor socket path too long to connect to is linked at a short path the Emacs client computes the same way
|
2026-09-25 22:54:44 +07:00 |
|
|
|
6583392504
|
A prelude body moved by one live shadowing is compiled again when a later shadowing moves a call inside it
|
2026-09-25 22:51:02 +07:00 |
|
|
|
e18b28be3e
|
Master is merged into the flat-let lane
|
2026-09-25 22:49:39 +07:00 |
|
|
|
eb08f1300d
|
dev-parity keeps its pointer global named beside the prints, since a pointer prints without reading it
|
2026-09-25 22:40:04 +07:00 |
|
|
|
55ab1a98ae
|
A macro whose definition splices its body into a do, and comment, count as bodies run in order where the .fln printer writes a let flat, and a struct-pattern let renames and flattens like a plain one
|
2026-09-25 22:39:50 +07:00 |
|
|
|
a14e633a21
|
A pointer's element type can be cast and a slice made from a pointer and a count with slice-from
|
2026-09-25 22:35:34 +07:00 |
|
|
|
a39d96149d
|
slice-from-ptr is refused with the slice-from call to write, and the pointer cast's const rule is documented as covering the outer pointer only
|
2026-09-25 22:35:24 +07:00 |
|
|
|
ccdadeeb6e
|
A mark or a step spliced into a program that defines its own pause or step-point calls the prelude's
|
2026-09-25 22:34:28 +07:00 |
|
|
|
70b9040512
|
type-of answers a dyn value's kind as a keyword, and a class cannot be named after a built-in kind
|
2026-09-25 22:29:26 +07:00 |
|
|
|
d07c7b4e2c
|
A prelude function shadowed live keeps the prelude's own calls on the prelude's body, as a rebuild does
|
2026-09-25 22:28:58 +07:00 |
|
|
|
35aa5a8c0f
|
A refused dyn view of a global names its own defining form as the fix, and every dyn fix is spelled in the syntax the code was written in
|
2026-09-25 22:27:36 +07:00 |
|
|
|
c41d27ec45
|
A frame whose slots are all the compiler's own is compared against the slot count its record carries, so a frame that prints keeps its globals and locals
|
2026-09-25 22:26:11 +07:00 |
|
|
|
4b1e722854
|
slice-from makes a slice from a pointer and any integer count, and ((Ptr U) p) casts a pointer's element type without dropping const
|
2026-09-25 22:24:11 +07:00 |
|
|
|
285bb1047f
|
The half-write test reports a session that closes under a question as a failure instead of ending test_dev
|
2026-09-25 22:24:08 +07:00 |
|
|
|
0b80c1956f
|
A let in .fln is always flat and a line indented under one is refused, the printer renames a let's name a later statement means otherwise or puts the let in a do: block, and a one-argument and/or prints as its argument
|
2026-09-25 22:23:37 +07:00 |
|
|
|
e0f71bba9c
|
A unix socket path too long for sun_path is bound and reached through its directory, so flan dev runs under any TMPDIR and -s path
|
2026-09-25 22:18:52 +07:00 |
|
|
|
e80411d283
|
type-of answers a value's kind as a keyword or an instance's class name, and a class named like a kind is refused.
|
2026-09-25 22:18:36 +07:00 |
|
|
|
a1e5e39dba
|
Master's changes are merged into the dyn printing lane, with its converter fixture
|
2026-09-25 22:11:04 +07:00 |
|
|
|
d16fe79b79
|
A refused dyn view of a parameter names its declaration as the fix
|
2026-09-25 22:09:44 +07:00 |
|
|
|
c3d36b5108
|
The inspector reads memory directly, a trapped read shows as trapped without a break, and requests take effect in the order the client sent them
|
2026-09-25 22:01:53 +07:00 |
|
|
|
4f060bb648
|
Dyn and typed containers print as [1 2 3] and {:a 1}, a refused dyn view names the value and a dyn fix in the file's own syntax, and a dyn function whose body gives no value says so by name
|
2026-09-25 22:01:40 +07:00 |
|
|
|
c9b556a539
|
A restart is taken only after every job queued before it was accepted has run, and a choice waiting for an outer break survives a nested one, so a fix loaded just before retry is the body the retry runs.
|
2026-09-25 22:01:08 +07:00 |
|
|
|
af6e00bc2a
|
= compares bools, a match over a bool takes true and false, and a match over a dyn takes keyword arms
|
2026-09-25 22:00:51 +07:00 |
|
|
|
1cfe97548a
|
test/syntax/algorithms.fln is the converter's fixture again
|
2026-09-25 22:00:44 +07:00 |
|
|
|
d8ece682d3
|
Merge master
|
2026-09-25 21:51:08 +07:00 |
|
|
|
e81191d770
|
A bool returned from C reads as its low bit on --x86 as on LLVM, and the where-and fix and the x-1 hint follow the code's own syntax rather than its file name
|
2026-09-25 21:50:56 +07:00 |
|
|
|
18581a452c
|
= and != compare bools, a match over a bool takes true and false arms, a match over a dyn takes keyword arms, and where predicates joined with and are refused with the comma or vector form as the fix
|
2026-09-25 21:35:31 +07:00 |
|
|
|
94134da25a
|
Dyn containers print without a space after the bracket, queued
|
2026-09-25 21:32:46 +07:00 |
|
|
|
d991e1986c
|
Flat lets and one-argument and/or in the .fln printer are queued
|
2026-09-25 21:27:50 +07:00 |
|
|
|
d77d541360
|
A value that traps or faults while the inspector reads it shows as #<trapped: NAME> with no break pushed, a restart already accepted is taken before queued reads run, and a fault in the inspector's read names the read.
|
2026-09-25 21:27:24 +07:00 |
|
|
|
ab5fe36a48
|
A frame address stored into a global's field, array or Vec element, or pushed or put into a global container is refused with a fix that names no wrong type, and the sanitizer sweep builds at -O0 so a read of a returned frame reports
|
2026-09-25 21:18:48 +07:00 |
|
|
|
bd70dfa913
|
Merge branch 'master' into worktree-agent-a9ad2e8b56d1fbd10
|
2026-09-25 21:18:18 +07:00 |
|
|
|
4fa11f6360
|
Merge master
|
2026-09-25 21:11:31 +07:00 |
|
|
|
3001aadff3
|
.fln files open in flan-fln-mode, which evaluates, moves over, indents and edits their statements, clauses and top-level forms
|
2026-09-25 21:07:16 +07:00 |
|
|
|
76b2ab3113
|
A duplicate literal arm is one whose value equals an earlier arm's at the scrutinee's type, and a literal no dyn holds is refused with a pattern fix
|
2026-09-25 21:01:15 +07:00 |
|
|
|
4d3688a519
|
Merge master into the .fln mode lane; a .fln arm sends its match whenever its value uses any name the pattern has, C-c C-s steps a .fln top-level form, and a comment block directly above a form is part of its text objects
|
2026-09-25 20:53:48 +07:00 |
|
|
|
111ee66a4b
|
A match arm can be a number, char or string literal compared with =, over a number, a string or a dyn, with a _ arm required
|
2026-09-25 20:51:24 +07:00 |
|
|
|
a6ccce0e67
|
Every store of a frame address into a global outside main is refused, fn and handler bodies and restart clauses are checked as frames of their own, and the suggested clone keeps the slice's bounds
|
2026-09-25 20:50:17 +07:00 |
|
|
|
c6a3259a62
|
A function that returns or stores into a global an address or slice of its own frame is refused, a dev free-all poisons any arena's released bytes and ASan sees them released, and @sanitize checks stack use after return
|
2026-09-25 20:40:21 +07:00 |
|
|
|
f1bdcc8840
|
Editor code cut out mid-line carries :indent, the column its statement starts at, so the reader accepts its wrapped lines as the file does and reports every location where it is in the buffer
|
2026-09-25 20:35:33 +07:00 |
|
|
|
36c2d14c28
|
The inspector's reader prints a generic struct instance as (Pair i32 {…}) through Render.head, as the compiled renderer does.
|
2026-09-25 20:33:31 +07:00 |
|
|
|
72c35ff05c
|
A dyn value the inspector reads is rendered on the program's own thread, so one that traps or faults is a nested break and the daemon keeps answering.
|
2026-09-25 20:24:34 +07:00 |
|
|
|
f6384fdf38
|
Merge master into the generics lane
|
2026-09-25 20:03:34 +07:00 |
|
|
|
ff8b61e44c
|
A self-containing or runaway generic struct and a where clause over a length are each one error among the file's others, and a literal that does not fit a variable a typed field decided names that field
|
2026-09-25 19:57:58 +07:00 |
|
|
|
ae23787c04
|
The inspector reads a stopped program's memory through the compiled layouts, so locals, inspect, at, condition and globals build no module, and the inspector reads a generic instance's type arguments.
|
2026-09-25 19:57:39 +07:00 |
|
|
|
89e4f53895
|
Places are evaluated once, enums have a predicate, CFn values live in structs, and a program's names cannot break the prelude
|
2026-09-25 17:12:56 +07:00 |
|