|
|
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 |
|
|
|
181f7da037
|
Merge master into the dyn fold lane.
# Conflicts:
# lib/check.ml
|
2026-09-26 16:16:25 +07:00 |
|
|
|
97e89c8d40
|
min and max take a dyn in any position, picking numbers by value and chars by code point in the dyn runtime and trapping at the form on anything else.
|
2026-09-26 16:15:52 +07:00 |
|
|
|
8afa054349
|
Merge master into the .fln optionals lane.
|
2026-09-26 15:52:00 +07:00 |
|
|
|
33203bd3c5
|
Merge master into the typed char lane
# Conflicts:
# TODO.org
# lib/check.ml
|
2026-09-26 15:04:23 +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 |
|
|
|
92fbeb4fc9
|
println prints a char as the character itself, and a char inside a value, in the inspector or at the REPL prints as its literal.
|
2026-09-26 13:59:32 +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 |
|
|
|
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 |
|
|
|
f35a2b240a
|
Merge master into the dyn char lane
|
2026-09-26 12:51:41 +07:00 |
|
|
|
659f4d8c6c
|
Merge branch 'master' into worktree-agent-a26dff0627201f77b
|
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 |
|
|
|
36655025c0
|
Master is merged into the when, get and if let lane again.
|
2026-09-26 12:23: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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
d519ca81dd
|
Merge master into the views lane
|
2026-09-26 09:29:15 +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 |
|
|
|
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 |
|
|
|
605eb97e75
|
A dyn value's .field and [:key] read as get and assign as put.
|
2026-09-26 05:52:56 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
a13c2f9ec3
|
The Map header mirror the collector reads is checked against flan_rt.c's, array key pairs cannot share a name, and a program holding only a Map of dyn sets up the collector
|
2026-09-25 15:52:57 +07:00 |
|
|
|
6e29c19097
|
The collector walks a Map's full slots, so a Map may hold closures and dyn values and keeps them alive
|
2026-09-25 15:31:50 +07:00 |
|
|
|
a41e43cbba
|
(slice d ...) over a dyn text answers a text, in the three spellings the typed slice has
|
2026-09-25 15:19:39 +07:00 |
|
|
|
5a78cdd202
|
Merge master
|
2026-09-25 13:36:54 +07:00 |
|
|
|
f3d969618d
|
A class slot can carry a type, and set writes a declared slot
|
2026-09-25 13:32:16 +07:00 |
|
|
|
53880eb685
|
A class slot's type names its own package's class first, an int widens into a float slot exactly when it round-trips, and a constructor's refusal names the call that was wrong
|
2026-09-25 13:29:30 +07:00 |
|
|
|
639ff1859c
|
Aborting an expression that trapped in the park abandons it by a jump back to the poll that called it, and the session stays
|
2026-09-25 13:28:16 +07:00 |
|
|
|
3e09a1f722
|
Merge branch 'master' into worktree-agent-ac750a5e83cab251b
|
2026-09-25 13:18:42 +07:00 |
|
|
|
9aeee9d676
|
Merge branch 'master' into worktree-agent-a6ffe579d55d1892b
|
2026-09-25 13:16:58 +07:00 |
|
|
|
16427f8d07
|
A class slot may be a class or an Option, an int widens into a float slot when exact, a gained typed slot starts at its zero, and a migration never re-enters itself
|
2026-09-25 12:55:25 +07:00 |
|
|
|
c6cb018b9f
|
Only a closure that outlives its frame takes a collector environment, and the collector reads a Vec's elements only through a block it knows is live
|
2026-09-25 12:12:25 +07:00 |
|
|
|
e0af3c9b1d
|
A method of update-instance-for-redefined-class runs on each instance as it migrates, and one that signals offers migrate-by-name
|
2026-09-25 11:55:40 +07:00 |
|
|
|
3892f1ed34
|
Merge master
|
2026-09-25 11:50:29 +07:00 |
|
|
|
2682214499
|
A defclass slot may declare a type that every store into it checks, and set writes a declared slot
|
2026-09-25 11:40:08 +07:00 |
|
|
|
3cb6cebdbe
|
(- x) negates a typed number, a type variable and a dyn, and a float's negation of zero is -0.0
|
2026-09-25 11:37:56 +07:00 |
|
|
|
389e93ff09
|
A capturing fn's environment belongs to the collector, so a closure may outlive the frame that made it
|
2026-09-25 11:13:57 +07:00 |
|