A dyn negation of a non-number is refused by name, and a prelude function shadowed in a live session is a recorded gap
This commit is contained in:
parent
5c0698d749
commit
bf0a939093
5
TODO.org
5
TODO.org
@ -1514,6 +1514,11 @@ are a dyn vector. Rules out the first element typing the rest.
|
||||
|
||||
* Dev loop
|
||||
|
||||
** TODO A prelude function shadowed live is reached by the prelude's own calls
|
||||
A defn of a prelude function's name sent to a running =flan dev= installs into the
|
||||
host's cell for that name, so the prelude's calls compiled into the host follow it;
|
||||
a rebuild gives them the prelude's again, as =Check.shadow_prelude= intends.
|
||||
|
||||
** DONE The dev loop, step 1: the reload primitive
|
||||
A list of top-level forms is recompiled and installed into a running process, and
|
||||
call sites compiled before those forms existed follow them through an indirection
|
||||
|
||||
@ -985,6 +985,8 @@ static void refuse(const char *what) {
|
||||
if (strcmp(what, "add") == 0) (void)FDYN_add(flan_dyn_from_i64(3), t);
|
||||
else if (strcmp(what, "sub") == 0)
|
||||
(void)FDYN_sub(flan_dyn_nil(), flan_dyn_from_i64(1));
|
||||
else if (strcmp(what, "neg") == 0)
|
||||
(void)flan_dyn_neg(t, NULL, 0);
|
||||
else if (strcmp(what, "mul") == 0)
|
||||
(void)FDYN_mul(flan_dyn_from_bool(1), flan_dyn_from_i64(2));
|
||||
else if (strcmp(what, "div") == 0)
|
||||
|
||||
@ -205,6 +205,7 @@ let () =
|
||||
let refusals =
|
||||
[ ("add", "dyn +: int and text");
|
||||
("sub", "dyn -: nil and int");
|
||||
("neg", "dyn -: text, and it takes a number");
|
||||
("mul", "dyn *: bool and int");
|
||||
("div", "dyn /: vec and int");
|
||||
("rem", "dyn %: int and nil");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user