The raylib half of the sweep, and the let the note named
This commit is contained in:
parent
3b91afd47b
commit
b34a7bbf11
6
FIX.org
6
FIX.org
@ -2629,6 +2629,12 @@ what was true when they were written.
|
|||||||
pure addition: widening.flan's own rows. Not one existing program's
|
pure addition: widening.flan's own rows. Not one existing program's
|
||||||
diagnostics, output or exit status moved.
|
diagnostics, output or exit status moved.
|
||||||
|
|
||||||
|
The thirteen test programs that import ~vendor:raylib~ were not run either,
|
||||||
|
for the same reason, and got the same treatment as examples/ below:
|
||||||
|
~check~'s diagnostics are identical on both sides, LLVM ~emit~ is
|
||||||
|
byte-identical, and the x86 difference is the prelude-line strings and
|
||||||
|
nothing else.
|
||||||
|
|
||||||
examples/ were *not run*. They link raylib and every one of them opens a
|
examples/ were *not run*. They link raylib and every one of them opens a
|
||||||
real window on the author's desktop, so the comparison there is ~check~'s
|
real window on the author's desktop, so the comparison there is ~check~'s
|
||||||
exit status and diagnostics plus a byte-diff of ~emit~ and ~emit --x86~.
|
exit status and diagnostics plus a byte-diff of ~emit~ and ~emit --x86~.
|
||||||
|
|||||||
@ -1003,6 +1003,12 @@ let () =
|
|||||||
arithmetic at u64 rather than defaulting the 1 to an i32. *)
|
arithmetic at u64 rather than defaulting the 1 to an i32. *)
|
||||||
accepts "a literal still takes the other operand's type"
|
accepts "a literal still takes the other operand's type"
|
||||||
"(defconst fnv u64 14695981039346656037) (defn f [] u64 (+ fnv 1))";
|
"(defconst fnv u64 14695981039346656037) (defn f [] u64 (+ fnv 1))";
|
||||||
|
(* The form DISCUSS.org's note named: an unannotated let of a u64 constant.
|
||||||
|
It binds a u64 and nothing about widening reaches it — a let with no type
|
||||||
|
has no expectation to widen against, and the constant is what it says. *)
|
||||||
|
accepts "an unannotated let of a u64 constant still binds a u64"
|
||||||
|
"(defconst fnv u64 14695981039346656037) \
|
||||||
|
(defn f [] u64 (let [h fnv] (* h 2)))";
|
||||||
(* Shifts are the carve-out: the value's type decides and the count widens
|
(* Shifts are the carve-out: the value's type decides and the count widens
|
||||||
to it, never the reverse, because the result's width and the poison check
|
to it, never the reverse, because the result's width and the poison check
|
||||||
both belong to the value. *)
|
both belong to the value. *)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user