|
|
7953376e4e
|
Any typed container of numbers, bools, str, structs, arrays, slices or Vecs crosses into dyn as a view from any storage, and a dev build traps on a view whose frame returned or whose block was released.
|
2026-09-26 06:10:11 +07:00 |
|
|
|
267db2cd91
|
The typed read-only text type is spelled str, and string is refused with that fix.
|
2026-09-26 05:22:24 +07:00 |
|
|
|
40eb57a5b6
|
A dyn opened in any value position of an operand or an arm makes it meet as a dyn, found by the one walk of value positions the frame-escape check also uses
|
2026-09-26 00:09:42 +07:00 |
|
|
|
263214e639
|
A dyn opened by an expectation is marked where it is opened, so a bool or an Option beside a dyn stays a dyn, and an operand refused at a type is not asked again, so nested sums and matches check in linear time
|
2026-09-25 23:43:14 +07:00 |
|
|
|
2135f6d37f
|
Merge branch 'master' into worktree-agent-a46233a32d1912c78
|
2026-09-25 23:27:55 +07:00 |
|
|
|
3e504deb6f
|
An arm is checked at the other arm's type first and meets it at the join only when refused there, so every program master accepts keeps its type and value while arms still meet in either order
|
2026-09-25 23:10:16 +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 |
|
|
|
319a3c78c4
|
Merge branch 'master' into worktree-agent-a46233a32d1912c78
|
2026-09-25 22:40:48 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
47cc213b42
|
Return types read off the body and the converter's latest fixtures live together
|
2026-09-25 22:14:32 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
bb800903d8
|
Return types read off the body and frame-escape refusals live together
|
2026-09-25 21:49:14 +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 |
|
|
|
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 |
|
|
|
ed7258c80f
|
An abandoned check puts back everything it wrote into the environment, an else arm refused on its own terms is not blamed for the then arm's type, and a match's arms meet at the same join as an if's
|
2026-09-25 21:26:56 +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 |
|
|
|
0fc258c434
|
Merge branch 'master' into worktree-agent-a46233a32d1912c78
|
2026-09-25 21:11:17 +07:00 |
|
|
|
69eb11ce9b
|
Return types read off the body and generic structs live together
|
2026-09-25 20:51:38 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
ad40123b25
|
Master's error recovery and return types read off the body live together, and two ways out of an inferred body that cannot share a type are refused with both named
|
2026-09-25 19:58:31 +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 |
|
|
|
d6e6a5dc0c
|
A program's global named as a prelude function or global shadows it for the file, with the shadowing warning a defn gets
|
2026-09-25 17:12:05 +07:00 |
|
|
|
ff88b9dad6
|
A defn whose return slot is _ (or a .fln fn with no arrow) takes its return type from its own body, recursion through such functions is refused by name, and a stale caller of one is told which line changed its type
|
2026-09-25 17:09:13 +07:00 |
|
|
|
7bcf9e5054
|
A dev build refuses (free s) on a slice over a Vec's or a Map's storage, and says a formatted number's text is released by free-temp
|
2026-09-25 17:04:52 +07:00 |
|
|
|
4c336687ef
|
Master's error recovery is merged, and the refusal memos are consulted only where a refusal is raised
|
2026-09-25 17:03:32 +07:00 |
|
|
|
2f321fd061
|
Merge master into the generics lane
|
2026-09-25 17:03:13 +07:00 |
|
|
|
7c1cbd3a9f
|
Merge branch 'master' into worktree-agent-a9288676abb278ffb
|
2026-09-25 17:00:08 +07:00 |
|
|
|
9d0d42e467
|
A generic struct's copy prints as (Pair i32 {...}), crosses to C behind a pointer, names each use that made it when refused, settles literal fields at the wider type, and is laid out by stores and restarts that first name it
|
2026-09-25 16:59:11 +07:00 |
|
|
|
2c8bd61a20
|
(free s) hands a slice (bytes s) or (clone xs) made back to the context allocator or a named one, a dev build traps on the wrong allocator, and a sliced array literal lives for its whole function on x86
|
2026-09-25 16:48:09 +07:00 |
|
|
|
43c7494d54
|
A Vec or Map field grown through a struct parameter taken by value is warned at the parameter, naming the field path and the (Ptr ...) that reaches the caller's
|
2026-09-25 16:40:39 +07:00 |
|
|
|
00fd022330
|
A call through a null CFn parks a dev program in the break loop with NullCall named and continue takeable, on LLVM and x86
|
2026-09-25 16:37:05 +07:00 |
|
|
|
83dc716133
|
A program's or a session's defn named as a macro shadows the macro for its calls, with the shadowing warning a prelude function gets
|
2026-09-25 16:32:49 +07:00 |
|
|
|
020392b064
|
Merge branch 'master' into worktree-agent-a55c4be9d199b8eb4
|
2026-09-25 16:22:58 +07:00 |
|
|
|
7b3e7f0efa
|
A program's global or type cannot change what the prelude means: a type variable wins over a global in a type position, prelude signatures pair against prelude types, and a global or type spelled like a built-in type is refused
|
2026-09-25 16:22:27 +07:00 |
|
|
|
8eac6734f0
|
Merge branch 'master' into worktree-agent-a37bbb17fdd22924a
|
2026-09-25 16:15:40 +07:00 |
|