-Dereferencing a pointer x must only occur at the safe start of the
+Dereferencing a pointer x must only occur at the safe start of the
"then" part of an `if` statement whose test condition consists only of
the expression `valid x`. The safe start of a block is the set of
statements preceding and including the first assignment statement or
`free`. (This is on the [admittedly somewhat pessimistic] assumption
-that any assignment could invalidate x.) (
*New in 1.1 *: the safe start
+that any assignment could invalidate x.) (New in 1.1: the safe start
must precede the first `free` statement, to prevent creation of dangling
aliased pointers. Thanks Gregor!) To simplify implementation, we limit x
to a simple variable name rather than a full expression. (This too is
And finally, yes, I realize how little this proves. Long live loopholes.
- 16:19:38 <Gregor> We implement this without a GC by stuffing most of a GC into the free function, thereby making it just as slow as a GC'd language with none of the advantages!
- 16:25:29 <Gregor> So yes, although you have managed to fit my requirements, I am wildly underwhelmed :P
+ 16:19:38 <Gregor> We implement this without a GC by stuffing most of a
+ GC into the free function, thereby making it just as
+ slow as a GC'd language with none of the advantages!
+ 16:25:29 <Gregor> So yes, although you have managed to fit my
+ requirements, I am wildly underwhelmed :P
another, less contentious name (such as "Microsoft Windows 7") may need
to be chosen for this language.
- 17:52:08 <alise> cpressey: I request that all harm is done to animals in the making of this production.
+ 17:52:08 <alise> cpressey: I request that all harm is done to animals
+ in the making of this production.
*In which we reveal the outline of a grand plan for a blockbuster sequel
to Eightebed which will never materialize*
-- To be titled
*Eightebed: Ascension * or *Eightebed: Generations *. At
+- To be titled Eightebed: Ascension or Eightebed: Generations. At
least, title should have one of those bad-ass colons in it. Possibly
*Eightebed: Eightebed *.
+ Eightebed: Eightebed.
- To support functions, analysis of arbitrary expressions as the
condition in an `if valid`, pointers to unnamed types, structures
which contain other structures, and all that other boring stuff that
giving all programs the power of UNMATCHED PROPHETIC SNEEZING.
- To be co-authored with Frank Zappa (note: turns out Mr. Zappa is
dead. Maybe Tipper Gore instead? Yes, that should work.)
~~To include a garbage collector. ~~
+- To include a garbage collector.