|
|
fd8620516c
|
A char literal is a typed char unless typed code wants a number, and a char compares, hashes, converts with (i32 c) and a checked (char n), and crosses into dyn as a dyn char.
|
2026-09-26 13:49:02 +07:00 |
|
|
|
c24b19e7b1
|
Merge master into the dyn char lane
|
2026-09-26 13:09:28 +07:00 |
|
|
|
d980251632
|
A text's ASCII check is its char count against its length, so pinning a text never changes how it counts, and a char writes through a dyn view where its code point fits.
|
2026-09-26 13:01:33 +07:00 |
|
|
|
4a7df449aa
|
bytes->string copies the Vec's bytes into a new String, a String's character walk stops at its position and never reads past its length, and a builder's block is a String in the leak report.
|
2026-09-26 13:00:13 +07:00 |
|
|
|
e5fd44920e
|
Merge branch 'master' into worktree-agent-a26dff0627201f77b
|
2026-09-26 12:55:06 +07:00 |
|
|
|
5d41a2d424
|
A dyn vec or map moved into typed storage takes a char where its code point fits, and a whole float in a trap's sentence reads as 2.0.
|
2026-09-26 12:54:08 +07:00 |
|
|
|
f35a2b240a
|
Merge master into the dyn char lane
|
2026-09-26 12:51:41 +07:00 |
|
|
|
28d4c0f8dc
|
A number literal takes its type from its uses inside the function, an unconstrained float literal is an f64, and a dyn use asks for the dyn width.
|
2026-09-26 12:41:54 +07:00 |
|
|
|
659f4d8c6c
|
Merge branch 'master' into worktree-agent-a26dff0627201f77b
|
2026-09-26 12:29:59 +07:00 |
|
|
|
ef87bdb3b3
|
A prelude text builder checks its own String as a backstop, and a direct call checks the text it passes first, at the caller's line.
|
2026-09-26 12:29:59 +07:00 |
|
|
|
9c47d3bacc
|
A dyn goes into every integer width range-checked, a char where its code point fits, and the trap names the width and what it found.
|
2026-09-26 12:27:40 +07:00 |
|
|
|
bfdd971baa
|
A String compares equal to a String or a str by its bytes, and a prelude builder's String is checked at the caller's line.
|
2026-09-26 12:22:17 +07:00 |
|
|
|
d5437c3f22
|
A non-ASCII char literal is refused where a byte is wanted, a dyn int or char goes into an i32 range-checked, a cast on a dyn char gives its code point, and C1 controls print as \uXXXX.
|
2026-09-26 12:15:04 +07:00 |
|
|
|
78e25dfa48
|
A str from dyn text is pinned once per temp stamp and is a poisoned temp copy in a dev build, a float past f32's range and a map key a struct lacks trap, and a struct's refusal names what the value is.
|
2026-09-26 12:09:25 +07:00 |
|
|
|
5cc661d6ab
|
Merge branch 'master' into worktree-agent-a26dff0627201f77b
|
2026-09-26 12:07:11 +07:00 |
|
|
|
db67ab19b4
|
String is owned, growable, always-valid UTF-8 text over a (Vec u8), and the prelude's text builders return it.
|
2026-09-26 12:07:11 +07:00 |
|
|
|
66ea0b3abe
|
Merge branch 'master' into worktree-agent-ab88d16e8e6fbfe15
|
2026-09-26 12:05:38 +07:00 |
|
|
|
0ed3ce93e2
|
Every char prints as a spelling that reads back as it, with a name or Clojure's \uXXXX for each control character.
|
2026-09-26 11:54:03 +07:00 |
|
|
|
6d8ced2ba3
|
A dyn text becomes a str as its own bytes, a dyn view becomes its own storage, and a dyn vec or map becomes a checked copy in a [const T], a fixed array or a struct, while a writable [T] is never a copy.
|
2026-09-26 11:48:01 +07:00 |
|
|
|
c7fb0e5422
|
Literal locals fed through do, let and if arms share one type without extra rounds, a chain past the rounds names the local to annotate, a restart's conversion fix shows the argument as written, and a name's lookup is answered from the last one under the same scope
|
2026-09-26 11:14:15 +07:00 |
|
|
|
1d09f2fd3d
|
Merge master into the dyn char lane
|
2026-09-26 11:11:42 +07:00 |
|
|
|
71f2b0b9b6
|
Dyn has a char that prints as its literal, dyn text counts characters, and chars and text convert between a text and a vec of chars.
|
2026-09-26 11:11:42 +07:00 |
|
|
|
c4452fc500
|
Merge master into the bit operators lane
|
2026-09-26 11:04:32 +07:00 |
|
|
|
4188c47b76
|
A dev build's self-equality scan starts by bumping a stamp rather than clearing its table, so one large scan leaves later ones as cheap as their own size.
|
2026-09-26 10:52:59 +07:00 |
|
|
|
473bf0a2b7
|
The bit operators are && || ^^ ~~ in .fln at Python's precedence, take integers only on typed and dyn values, and popcount, leading-zeros, trailing-zeros and the rotations exist on both backends.
|
2026-09-26 10:49:54 +07:00 |
|
|
|
23663c4773
|
An unconstrained float literal is an f64, literal locals settle by merging the locals that feed each other, and a restart refused for a number type writes the conversion
|
2026-09-26 10:45:46 +07:00 |
|
|
|
9644b8a616
|
A dev build's self-equality scan walks each container once, a free finds its block by the keyed probe, a registry listing waits out a growth, and a view's crossing and scalar read take fewer instructions.
|
2026-09-26 10:41:12 +07:00 |
|
|
|
0a05d83b3b
|
A release build's dyn view carries no dev record, the dev registry grows instead of dropping notes, a container compared with itself still traps on a stale view inside it, has-key? traps at its site, and a trap clears the walk site it leaves.
|
2026-09-26 10:13:01 +07:00 |
|
|
|
207f5d7bad
|
Merge master
|
2026-09-26 09:59:00 +07:00 |
|
|
|
497c9f470f
|
A dyn view's record is collected with it, a dev build ties a view of a stack address to its owning frame and finds a heap block through an address index, and a view's traps name the field, the operation and the site.
|
2026-09-26 09:54:45 +07:00 |
|
|
|
5f1b9b9e7e
|
An unconstrained float literal is an f32, and an integer literal meeting a float literal meets it at the float
|
2026-09-26 09:49:51 +07:00 |
|
|
|
7991e00e76
|
A struct's dyn view takes .field and [:k], read and assigned, and a get on it traps at its own site.
|
2026-09-26 09:32:49 +07:00 |
|
|
|
697c016231
|
Merge master
|
2026-09-26 09:29:40 +07:00 |
|
|
|
d519ca81dd
|
Merge master into the views lane
|
2026-09-26 09:29:15 +07:00 |
|
|
|
749b4aeb84
|
A float element of a dyn view takes an int it holds exactly and traps on one it does not.
|
2026-09-26 06:22:26 +07:00 |
|
|
|
5177586848
|
A number or character literal bound by let or loop takes its type from its uses in the function
|
2026-09-26 06:22:25 +07:00 |
|
|
|
e79d9c0d07
|
Merge master into the views lane
|
2026-09-26 06:18:31 +07:00 |
|
|
|
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 |
|
|
|
2dbc8539e5
|
Merge branch 'master' into worktree-agent-af3c12884ed5f2255
|
2026-09-26 06:09:13 +07:00 |
|
|
|
4eefd25df9
|
A class instance refuses a key its class does not declare, read or written, through get, put, .field and [:key].
|
2026-09-26 06:02:51 +07:00 |
|
|
|
1022b7c7f9
|
Merge branch 'master' into worktree-agent-af3c12884ed5f2255
|
2026-09-26 05:54:17 +07:00 |
|
|
|
605eb97e75
|
A dyn value's .field and [:key] read as get and assign as put.
|
2026-09-26 05:52:56 +07:00 |
|
|
|
895828992e
|
Merge branch 'master' into worktree-agent-ae8e466a60e7cf35a
|
2026-09-26 05:44:39 +07:00 |
|
|
|
72c73117d6
|
A .fln file writes a type alias as type Row = Vec(i32), and flan check prints nothing for a file that checks unless given --defs.
|
2026-09-26 05:39:59 +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 |
|