|
|
6c2f7c34c7
|
An eval or load reply carries the compiler's warnings, which Emacs marks at their sites and counts in the echo line, and a load says each warning once.
|
2026-09-26 19:20:40 +07:00 |
|
|
|
08ecba92f6
|
The checker warns at a call through which a function calls itself on every path, so it never returns.
|
2026-09-26 18:55:49 +07:00 |
|
|
|
5274f83f88
|
One fn form holds all of a name's arities, and evaluating it replaces them all.
|
2026-09-26 18:30:11 +07:00 |
|
|
|
1215db7d26
|
Merge master into the arity lane.
|
2026-09-26 18:29:54 +07:00 |
|
|
|
2010655d60
|
The vendor libraries, examples and sand are written in .fln.
|
2026-09-26 18:24:54 +07:00 |
|
|
|
8d198f88c9
|
A condition can bind what it tests with as, inside and chains too, and the bound name is read-only in the program and in the debugger.
|
2026-09-26 18:21:00 +07:00 |
|
|
|
d6c33928f5
|
A name an as bound is refused as itself when assigned, in the program and in a stopped frame alike.
|
2026-09-26 18:16:13 +07:00 |
|
|
|
c1018d87c5
|
Every reference to the removed .flan files is updated, generated.fln's stale banner line is regenerated, and the ported .fln files read like handwritten Flan.
|
2026-09-26 18:13:56 +07:00 |
|
|
|
7d2da19c0c
|
A fn form's arities are one definition by an id the form is given, and a caller of a removed arity stops on StaleCall and is compiled again whenever its call checks.
|
2026-09-26 18:08:41 +07:00 |
|
|
|
fd6510e0b5
|
Merge branch 'master' into worktree-agent-afbb9bcfd4d47bb1b
# Conflicts:
# lib/check.ml
|
2026-09-26 18:06:56 +07:00 |
|
|
|
8333ba017d
|
A literal local read as a typed array's element takes that element's type, and the Option str refusal test names str.
|
2026-09-26 18:06:29 +07:00 |
|
|
|
b8e68a48f7
|
A literal local read at T? takes T, None may come first in an if, an Option around an array of Options takes a literal, and a literal refused at T? names the Option.
|
2026-09-26 17:45:44 +07:00 |
|
|
|
d14cffa23a
|
(the dyn <literal>) beside nil traps at run time, and a dyn opened at f64 or bool traps at its site.
|
2026-09-26 17:44:27 +07:00 |
|
|
|
dd719766ee
|
A fn's arities are one form, fn f with a (params) -> R line per arity, and evaluating it replaces every arity at once.
|
2026-09-26 17:35:18 +07:00 |
|
|
|
4d85cefbe2
|
A bare nil in a typed fold is refused in every position while a dyn holding nil traps, a fold operand asked on its own terms records no literal-local use, and a wide literal at dyn says it has no dyn value.
|
2026-09-26 17:18:29 +07:00 |
|
|
|
cb60df1dc0
|
A T is wrapped in Some wherever a T? is wanted, one level at a time and never unwrapped back.
|
2026-09-26 17:11:12 +07:00 |
|
|
|
179156b105
|
A function name has one version per arity, and a call picks the version by its number of arguments.
|
2026-09-26 17:08:15 +07:00 |
|
|
|
7dcef05df3
|
A u64 past the largest i64 traps where it crosses into dyn, a dyn nil past a fold's first pair traps at run time, and an is-numeric $t boxes beside a dyn.
|
2026-09-26 16:47:28 +07:00 |
|
|
|
adfab2d482
|
A narrowed name keeps its assignability, a local whose address is taken or that a fn assigns is not narrowed, a trailing ? tests a whole chain, and the optional refusals name the test to write.
|
2026-09-26 16:08:16 +07:00 |
|
|
|
8afa054349
|
Merge master into the .fln optionals lane.
|
2026-09-26 15:52:00 +07:00 |
|
|
|
6c6b5a60cb
|
?? continues a line, a chain or an unwrap is no place to assign, nested marks and a ? on a value say what to write, a lowercase type takes ?, and a predicate reads as a word with its name beside it.
|
2026-09-26 15:36:49 +07:00 |
|
|
|
7361830938
|
A char minus a char takes the integer width its site wants, a chain of + or - folds left step by step, and a char plus a u64 is checked unsigned.
|
2026-09-26 15:23:34 +07:00 |
|
|
|
33203bd3c5
|
Merge master into the typed char lane
# Conflicts:
# TODO.org
# lib/check.ml
|
2026-09-26 15:04:23 +07:00 |
|
|
|
37c4f2ee10
|
A char plus or minus an integer is a char checked to be a scalar value, a char minus a char is their distance, and dyn chars do the same.
|
2026-09-26 14:55:00 +07:00 |
|
|
|
178c129c97
|
A .fln name carries no ? or !, and .fln has T?, x ?? d, x!, if let over a plain name and a?.b chaining.
|
2026-09-26 14:54:58 +07:00 |
|
|
|
7db1a81d1f
|
Builtins, prelude, vendor and raylib predicates are named with is- or has- and no name carries a ? or !.
|
2026-09-26 14:34:36 +07:00 |
|
|
|
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 |
|
|
|
5038c5954a
|
get on a String is refused as at is, a dyn get's trap names get, a kept else-less form beside a number is blamed at itself in arithmetic and comparisons, and a kept if-let chain with no final else gives an Option.
|
2026-09-26 13:40:16 +07:00 |
|
|
|
b545584de8
|
Master is merged into the when, get and if let lane, and dyn get over text counts characters through at's own body.
|
2026-09-26 13:17:57 +07:00 |
|
|
|
c24b19e7b1
|
Merge master into the dyn char lane
|
2026-09-26 13:09:28 +07:00 |
|
|
|
1b588df6b5
|
Master is merged into the when, get and if let lane after the review fixes.
|
2026-09-26 13:09:24 +07:00 |
|
|
|
79430aca77
|
A lambda's last form is checked at the return its position wants, a call's arguments and a kept cond with no else keep a when as an Option, a when used as an arithmetic operand is blamed itself, elif let reads and prints as a nested if-let, and dyn get over text or a vec runs at's own runtime body.
|
2026-09-26 13:09:21 +07:00 |
|
|
|
e5fd44920e
|
Merge branch 'master' into worktree-agent-a26dff0627201f77b
|
2026-09-26 12:55:06 +07:00 |
|
|
|
a3899f3ecb
|
Master is merged into the when, get and if let lane for the review fixes.
|
2026-09-26 12:53:34 +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 |
|
|
|
36655025c0
|
Master is merged into the when, get and if let lane again.
|
2026-09-26 12:23:17 +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 |
|
|
|
62fd7b19bc
|
Master is merged into the when, get and if let lane.
|
2026-09-26 12:13:55 +07:00 |
|
|
|
5ee433a38f
|
A kept when answers an Option, get is a checked lookup over arrays, slices, Vecs and dyn, and if let reads as a two-arm match in both syntaxes.
|
2026-09-26 12:12:48 +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 |
|
|
|
ca9e28860a
|
A dyn value into a written type has a checker row that compiles.
|
2026-09-26 11:52:13 +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 |
|
|
|
bcdb6250a9
|
A bit operator's operand of any shape that answers a bool gets the and, or or not hint, found by a check that is thrown away.
|
2026-09-26 11:46:32 +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 |
|