1567 Commits

Author SHA1 Message Date
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
41273c9d22 Dyn and typed containers print without a space after the bracket, and a value that cannot cross into dyn gets a fix that compiles 2026-09-25 22:27:53 +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
24761dcf54 rl/update-texture-colors remains, as a one-line defn over the pointer cast 2026-09-25 22:27:21 +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
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
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
2b35085358 flan run removes its executable and work directory when it is sent SIGTERM or SIGHUP, and the one-shot commands' empty work directory is gone from TODO.org since the exit handler already removes it 2026-09-25 22:10:07 +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