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
|
* 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
|
** DONE The dev loop, step 1: the reload primitive
|
||||||
A list of top-level forms is recompiled and installed into a running process, and
|
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
|
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);
|
if (strcmp(what, "add") == 0) (void)FDYN_add(flan_dyn_from_i64(3), t);
|
||||||
else if (strcmp(what, "sub") == 0)
|
else if (strcmp(what, "sub") == 0)
|
||||||
(void)FDYN_sub(flan_dyn_nil(), flan_dyn_from_i64(1));
|
(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)
|
else if (strcmp(what, "mul") == 0)
|
||||||
(void)FDYN_mul(flan_dyn_from_bool(1), flan_dyn_from_i64(2));
|
(void)FDYN_mul(flan_dyn_from_bool(1), flan_dyn_from_i64(2));
|
||||||
else if (strcmp(what, "div") == 0)
|
else if (strcmp(what, "div") == 0)
|
||||||
|
|||||||
@ -205,6 +205,7 @@ let () =
|
|||||||
let refusals =
|
let refusals =
|
||||||
[ ("add", "dyn +: int and text");
|
[ ("add", "dyn +: int and text");
|
||||||
("sub", "dyn -: nil and int");
|
("sub", "dyn -: nil and int");
|
||||||
|
("neg", "dyn -: text, and it takes a number");
|
||||||
("mul", "dyn *: bool and int");
|
("mul", "dyn *: bool and int");
|
||||||
("div", "dyn /: vec and int");
|
("div", "dyn /: vec and int");
|
||||||
("rem", "dyn %: int and nil");
|
("rem", "dyn %: int and nil");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user