Joseph Ferano
0c03550999
Evaluating a def assigns, because that is what defparameter means
...
The author edited (def colors [4 u32] [...]) in his running game, pressed
C-c C-c, and the colours did not change — the same complaint def was built
to answer, one step further in.
The reading behind it was that a re-evaluated def is a promise about the
next re-run, so the session republished the lifted global/<n> and stopped;
nothing called it. That is wrong for the reason the form is named after: def
is Common Lisp's defparameter, and evaluating a defparameter assigns. The
difference from defvar is not "one takes effect at restart", it is "one
takes effect, the other does not touch the value at all".
So a def now does both. The storage takes the new value at the next frame
boundary, carried by the thunk a redefinition module already has — one
Set per re-evaluated def, in the same flan_reload_call the class
registrations use, run after the bodies are published and on the game
thread. And the lifted initialiser is still republished, so the next re-run
runs the edited one; dev-rerun.flan pins that half unchanged.
A brand-new def gets its initialiser run too, which needed one thing from
each backend: a lifted global/<n> asked for by name is neither a sibling nor
one of the target's own lifted clauses, so it had no cell, and a dev call
goes through a cell. Both now give an unknown one a slot of the module's
own, filled from the registry by the installer.
An initialiser that signals leaves the old value alone — the value is
computed whole before it is stored — and offers abandon-evaluation like any
other thunk. A retype is refused first, by the pass that names both types.
defonce is untouched, which is its whole contract; defconst was already the
immediate one, through consts.
2026-09-21 11:03:30 +07:00
..
2026-09-19 06:41:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 20:10:39 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:59:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-20 20:17:17 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:19:33 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-17 19:03:27 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 14:47:54 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 15:36:13 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 11:03:30 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 20:10:39 +07:00
2026-09-13 17:55:00 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:30:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 23:12:42 +07:00
2026-09-18 13:47:42 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 08:09:53 +07:00
2026-09-19 05:55:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 13:54:07 +07:00
2026-09-20 15:36:27 +07:00
2026-09-19 06:40:53 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:52:47 +07:00
2026-09-20 10:36:05 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:46:48 +07:00
2026-09-19 06:06:44 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-20 19:30:04 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 09:11:34 +07:00
2026-09-12 14:47:54 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-12 22:44:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:59:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:15:58 +07:00
2026-09-13 15:23:37 +07:00
2026-09-13 14:49:11 +07:00
2026-09-18 12:16:05 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:21:02 +07:00
2026-09-20 20:17:17 +07:00
2026-09-21 09:51:35 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 10:01:18 +07:00
2026-09-21 09:59:33 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 18:02:59 +07:00
2026-09-12 22:00:13 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 18:18:24 +07:00
2026-09-12 23:18:28 +07:00
2026-09-20 18:23:22 +07:00
2026-09-21 07:12:04 +07:00
2026-09-19 05:21:02 +07:00
2026-09-19 05:21:02 +07:00
2026-09-12 16:09:27 +07:00
2026-09-12 16:34:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 23:06:40 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 16:46:30 +07:00
2026-09-12 16:46:30 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 16:46:30 +07:00
2026-09-20 21:00:22 +07:00
2026-09-20 21:00:22 +07:00
2026-09-11 20:11:01 +07:00
2026-09-13 15:40:08 +07:00
2026-09-13 17:54:36 +07:00
2026-09-13 15:40:08 +07:00
2026-09-13 15:40:08 +07:00
2026-09-20 18:18:24 +07:00
2026-09-20 23:12:42 +07:00
2026-09-12 10:40:47 +07:00
2026-09-12 05:32:25 +07:00
2026-09-11 20:11:01 +07:00
2026-09-11 20:11:01 +07:00
2026-09-12 05:32:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:19:33 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-21 07:59:48 +07:00
2026-09-12 16:09:48 +07:00
2026-09-21 07:12:04 +07:00
2026-09-13 09:32:58 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:30:57 +07:00
2026-09-21 07:12:04 +07:00
2026-09-17 21:49:40 +07:00
2026-09-21 07:12:04 +07:00
2026-09-20 18:18:20 +07:00
2026-09-20 18:18:20 +07:00
2026-09-13 18:00:35 +07:00
2026-09-13 18:00:35 +07:00
2026-09-12 05:32:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 09:51:35 +07:00
2026-09-12 05:32:25 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:38:24 +07:00
2026-09-21 09:59:33 +07:00
2026-09-20 07:20:27 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 18:12:45 +07:00
2026-09-20 23:12:42 +07:00
2026-09-20 11:53:37 +07:00
2026-09-17 22:55:30 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 23:18:28 +07:00
2026-09-12 11:15:58 +07:00
2026-09-21 07:12:04 +07:00
2026-09-21 07:12:04 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-18 12:16:05 +07:00
2026-09-12 11:07:57 +07:00
2026-09-12 11:07:57 +07:00
2026-09-12 11:12:49 +07:00
2026-09-12 11:07:57 +07:00
2026-09-21 09:51:35 +07:00
2026-09-20 23:12:42 +07:00
2026-09-20 23:12:42 +07:00
2026-09-21 07:12:04 +07:00