1543 Commits

Author SHA1 Message Date
c1b21edaf4 The break loop's typed-value walk prints arrays and slices as [1 2 3], matching evaluation 2026-09-25 22:18:45 +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
8aaf33589e type-of is queued 2026-09-25 22:04:28 +07:00
5adabd9f3c Dyn text is immutable and counts characters, str counts bytes 2026-09-25 22:03:26 +07:00
85283c2e87 Any typed container crosses into dyn as a view 2026-09-25 22:02:04 +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
cf8fea9b3c docs/BUILT.md says a restart is taken after the jobs queued before it. 2026-09-25 22:01:15 +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
cecbec6c71 A slice from a C pointer and a pointer cast are queued 2026-09-25 22:00:13 +07:00
cc45b8a55d Dyn has a character type 2026-09-25 21:57:37 +07:00
2dec18b87f The typed text types are str and String 2026-09-25 21:54:26 +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
7bc04cc434 Flan is dyn unless annotated 2026-09-25 21:43:21 +07:00
c3a05d7447 The site says a match over a bool needs no _ arm 2026-09-25 21:37:44 +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
d574031609 Keyword arms over a dyn and = on bool are queued 2026-09-25 21:23:50 +07:00
d4f24adbc8 A function cannot return or store in a global the address of its own frame, and a dev build poisons every arena's bytes on free-all 2026-09-25 21:19:13 +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
5c044a7b40 id and ad on a comment that belongs to no form find no object 2026-09-25 21:05:02 +07:00
095701b29b A negated name counts as the name an arm's pattern binds, and a comment belongs to the form or block whose column it sits at 2026-09-25 21:02:19 +07:00
fcd32c21c5 A match arm can be a number, char or string literal 2026-09-25 21:01:40 +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
9e09375d7b Merge branch 'master' into worktree-agent-a6088ba602da36c5e
# Conflicts:
#	TODO.org
2026-09-25 20:58:42 +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
db7f703c0e ML-style patterns are held as a future direction 2026-09-25 20:33:26 +07:00
25911d7c9d Nested ML-style patterns are wanted 2026-09-25 20:31:57 +07:00
e7d82cb640 A match arm can match a number or string literal, queued 2026-09-25 20:30:31 +07:00
c3ba4c9e08 A wrapped condition or arm value is sent whole and reads as it does in the file, an arm whose value uses nothing its pattern binds sends that value, a match arm is a clause object, and dad on the last form takes the blank lines before it 2026-09-25 20:29:06 +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
267e84bada In a .fln buffer numbers are coloured, a colon is not part of a name, TAB keeps a line at a valid column, evil line objects take their newline, and C-x C-e and C-u C-c C-c understand match arms, conditions, clauses and comments 2026-09-25 20:14:51 +07:00
5d3a0fc316 Inferring a closure return and recompiling a _ caller after its callee changes wait behind .fln 2026-09-25 20:14:22 +07:00
241ea67fbb A struct can be generic over types and lengths, and an error in a generic names the call that made it 2026-09-25 20:03:49 +07:00
f6384fdf38 Merge master into the generics lane 2026-09-25 20:03:34 +07:00
df00848910 A struct value's printed head comes from Render.head, which every renderer shares 2026-09-25 20:00:51 +07:00