|
|
5712d4bdc0
|
A bool operand of a bit operator is refused with its and, or or not hint in a whole-file check, whichever operand it is.
|
2026-09-26 11:04:32 +07:00 |
|
|
|
c4452fc500
|
Merge master into the bit operators lane
|
2026-09-26 11:04:32 +07:00 |
|
|
|
75fe42d310
|
A dev build's views are checked in constant time per lookup, the dev registry grows instead of dropping notes, and a release crossing into dyn carries no dev record.
|
2026-09-26 10:57:35 +07:00 |
|
|
|
a546bde112
|
Merge master
|
2026-09-26 10:56:30 +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 |
|
|
|
17a7afb297
|
The .fln reader takes loop and recur as names wherever the Lisp loop's spellings are not written, and the convert refusal lists its lines in a sentence of their own.
|
2026-09-26 10:43:10 +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 |
|
|
|
63dc853121
|
A binding whose value is a block ends its let's bindings, a tab between let and its name is refused, and only a binding-shaped line under a let gets the alignment advice
|
2026-09-26 10:39:05 +07:00 |
|
|
|
b5380b4750
|
Merge master
|
2026-09-26 10:33:04 +07:00 |
|
|
|
fc463cf320
|
The .fln reader refuses loop and recur, flan convert refuses a .flan file that uses them, and every loop outside recur.flan is a while or until.
|
2026-09-26 10:31:53 +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 |
|
|
|
0e9d647aca
|
A let's binding lines must line up with its first name, may name an operator word in parentheses, are refused clearly after a block value, and at the top level may be a typed name alone
|
2026-09-26 09:56:54 +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 |
|
|
|
163c224d0d
|
Merge master
|
2026-09-26 09:49:41 +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 |
|
|
|
36156c9de9
|
A dyn value takes .field and [:key] as get and put, and a class instance refuses a slot it does not have
|
2026-09-26 09:28:25 +07:00 |
|
|
|
12cd4feff0
|
A .fln let takes more bindings on the lines indented under it, a top-level one more globals, and flan convert writes runs of short bindings that way
|
2026-09-26 06:26:36 +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 |
|
|
|
f39612bc7c
|
Code a request sends without :syntax is read in its file's syntax, or the program's when it names none, and a dotted dyn name points to its accessor.
|
2026-09-26 06:21:07 +07:00 |
|
|
|
f91ed8ad27
|
Indices in .fln separate like a vector's elements, by spaces between single values or by commas
|
2026-09-26 06:19:59 +07:00 |
|
|
|
e79d9c0d07
|
Merge master into the views lane
|
2026-09-26 06:18:31 +07:00 |
|
|
|
6e006fce27
|
not is a prefix word in .fln, looser than comparisons and tighter than and, with not(x) still a call
|
2026-09-26 06:18:11 +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 |
|
|
|
b1404727b6
|
A lambda with a block prints wherever it is last in its brackets, an element after a block lambda is refused as not last, and TAB offers no column of a block whose brackets have closed
|
2026-09-26 06:09:47 +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 |
|
|
|
6f6e01db06
|
A bare def is answered with the let to write, and a generic missing its arrow is refused at the end of its line.
|
2026-09-26 05:54:01 +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 |
|
|
|
702ebdc9c5
|
In a .fln file a top-level let is a global and def is refused, while a let in a block or an evaluated expression stays local.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
cde4f2ab1b
|
A .fln file writes classes and methods as class, generic, multi and method headers, and flan convert prints them so.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
905a4c53be
|
A struct or union fits on one line, struct Pt(x: i32, y: i32), and flan convert writes that form when it fits.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
de0c8791f3
|
A variable named like a header or clause word, data = 3 or on += 1, is read and printed as an assignment.
|
2026-09-26 05:39:59 +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 |
|
|
|
1a97dfff77
|
A .fln file writes a condition's parent as struct DiskFull :parent IoError, a macro as macro repeat(i, n, & body) and a loop as loop x = a, y = b, and flan convert prints them so.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
34ef99d1f2
|
A block lambda in code cut mid-line reads against its line's start, an arm or else value ending in => takes its block, and a missing comma between indices shows the indexed spelling
|
2026-09-26 05:37:22 +07:00 |
|
|
|
b92e91bcaa
|
A parameter, local or field may be named str or any other type name when a type follows it, and a type-named parameter with no type after it is refused with both fixes.
|
2026-09-26 05:27:23 +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 |
|
|
|
3c962197f4
|
A .fln lambda's body follows =>, and a lambda's block may sit inside a call's brackets as its last argument
|
2026-09-26 05:17:31 +07:00 |
|
|
|
6c32383539
|
Typed lambdas bind a generic's CFn variables, a local shadows an enum of its name, the lambda-in-brackets fix is the typed let that compiles, an else deeper than a one-line if or after else-if is refused by name, a block if takes a one-line else, and messages spell every type in the code's syntax
|
2026-09-26 00:36:21 +07:00 |
|
|
|
fff1c0b9c3
|
Merge master: return-type inference beside the syntax-following type spellings
|
2026-09-26 00:27:59 +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 |
|