Today I implemented elsif
and else
blocks in Punie. Fairly straightforward. One interesting tidbit: the logic for translating conditionals down to PIR is actually simpler if you reverse it. So this bit of Perl 1 code:
if (1) { print "is true\n"; } elsif (2) { print "else is true\n"; } else { print "is false\n"; }
unless 1 goto is_false # if print "is true\n" goto end_if is_false:
unless 2 goto else_is_false # elsif print "else is true\n" goto end_elsif else_is_false:
# else print "is false\n" end_elsif: end_if:
if 1 goto is_true if 2 goto else_is_true # else print "is false\n" goto end_if else_is_true: # elsif print "else is true\n" goto end_if is_true: print "is true\n" end_if:
unless
gives me a control flow more similar to the if
of a high-level language. It's because the actual meaning is reversed: HLL if
means "if X is true do the following chunk of code" while the assembly if
means "if X is true skip over the following chunk of code to label Y".
Is it possible, given the lack of spec for perl 6, etc; that mere perl 5 and CPAN loving mortals such as myself, can get an idea of how far along perl 6 is?
I recommend a perl 6 progress bar (or multiple progress bars, one for pugs, one for...). The progress bar has an end point, has tick marks (milestones) and a slider at a particular tick mark.
I realize how corporate sounding and non-open-source all this insistence on definition is (I report daily at 8:30 a.m. to the same desk and job, and have deadlines, and try to meet them, so sue me), but I am asking for this in desperation : can you guys please release an intermediate version that works? Can you (unimaginable?) write a spec?
Apologies if this is the wrong forum. Should I post this to any perl6 mailing list/group?