Author: Brian Dickens
Message: Avoid situations of leaking void-containing blocks to userspace
See also https://github.com/metaeducation/ren-c/issues/526
void cells are not legal in arrays that are seen by the user. This
addresses three ways voids could accidentally leak.
VALUES-OF on an ANY-CONTEXT! which had a void variable would create an
array with a void in it. This is mitigated by failing if this is the
case. Depending on the intention of those using VALUES-OF there may
be other refinements or policies, but this just stops the crash.
MAKE BLOCK! on a variadic argument could create a block with voids in
it if the variadic was
<opt>. This adds a type check and error for
that case, while permitting MAKE BLOCK! on non-
If an error occurred during a variadic call to the evaluator which
was acting as the equivalent of R3-Alpha’s APPLY/ONLY, voids were
allowed in the va_list. An error or debug trace could potentially
create a WHERE array which contained voids. This substitutes a
placeholder word (
--void--) for that.
Also corrects a longstanding bug in object molding which would show
&void. The intention was that the absence of a value in the second
block but presence in the first (spec) would indicate the field is
The binaries below are only available for a couple of weeks or so after commit date.
0.2.40 OSX x64
0.3.40 Win64 x86
0.4.4 Linux32 x86
0.4.40 Linux64 x86