# New Ticket Created by Allison Randal
# Please include the string: [perl #24683]
# in the subject line of all future correspondence about this issue.
# <URL: http://rt.perl.org:80/rt3/Ticket/Display.html?id=24683 >
This patch updates the following operators and their assignment
counterparts:
_ becomes ~ (concatenation)
& becomes +& ~& (bitwise AND, numeric and string)
| becomes +| ~| (bitwise OR, numeric and string)
~ becomes +^ ~^ (bitwise XOR, numeric and string)
Unary +^ (bitwise negation, a.k.a. ones complement) is not implemented
yet.
I've added two test files, bitwise.t and concat.t, which go in t/op/
(the op/ directory doesn't exist yet).
(My code for bitwise string operators was greatly simplified when Leo
implemented the bitwise_xors, bitwise_ands, and bitwise_ors (string
versions) vtable functions for PerlString. Hip-hip-hooray!)
Allison
Index: languages/perl6/P6C/Addcontext.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/Addcontext.pm,v
retrieving revision 1.21
diff -u -r1.21 Addcontext.pm
--- languages/perl6/P6C/Addcontext.pm 27 Nov 2003 19:43:20 -0000 1.21
+++ languages/perl6/P6C/Addcontext.pm 17 Dec 2003 01:07:07 -0000
@@ -40,13 +40,13 @@
# type => [list-of-ops].
my %opmap =
( # Ops that work differently for different scalar types:
- PerlUndef => [ qw(| & ~ // ..),
+ PerlUndef => [ qw(| & +^ ~^ // ..),
# Unfortunately, these work differently on ints and nums:
qw(+ - * / % **)],
PerlInt => [ qw(<< >>) ],
- PerlString => [ qw(_) ],
+ PerlString => [ qw(~) ],
# NOTE: Actually, according to apo 3, boolean operators
# propagate values in their surrounding context (even though
@@ -900,7 +900,7 @@
@ PerlArray
* PerlArray
$ PerlUndef
- _ PerlString
+ ~ PerlString
? bool
+ PerlNum);
}
Index: languages/perl6/P6C/IMCC.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC.pm,v
retrieving revision 1.30
diff -u -r1.30 IMCC.pm
--- languages/perl6/P6C/IMCC.pm 27 Nov 2003 19:43:20 -0000 1.30
+++ languages/perl6/P6C/IMCC.pm 17 Dec 2003 01:07:11 -0000
@@ -1341,16 +1341,6 @@
use P6C::Util ':all';
use P6C::Context;
-# Create generic code for $a op $b.
-sub simple_binary {
- my $x = shift;
- my $ltmp = $x->l->val;
- my $rtmp = $x->r->val;
- my $dest = newtmp 'PerlUndef';
- my $op = imcc_op($x->op);
- code("\t$dest = $ltmp $op $rtmp\n");
- return $dest;
-}
# '=' assignment op.
sub do_assign {
@@ -1392,12 +1382,14 @@
'>>' => \&simple_binary,
'<<' => \&simple_binary,
- '|' => \&simple_binary,
- '&' => \&simple_binary,
- '~' => \&simple_binary,
+ '+&' => \&simple_binary,
+ '~&' => \&simple_binary_pasm,
+ '+|' => \&simple_binary,
+ '~|' => \&simple_binary_pasm,
+ '+^' => \&simple_binary,
+ '~^' => \&simple_binary_pasm,
-# '_' => \&simple_binary, # PMC concat broken.
- '_' => \&do_concat,
+ '~' => \&do_concat,
'=' => \&do_assign,
'||' => \&do_logor,
'&&' => \&do_logand,
@@ -1413,7 +1405,7 @@
use vars '%op_is_array';
BEGIN {
- my @arrayops = qw(= .. x // ^^ && || _);
+ my @arrayops = qw(= .. x // ^^ && || ~);
push(@arrayops, ',');
@[EMAIL PROTECTED] = (1) x @arrayops;
}
Index: languages/perl6/P6C/Parser.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/Parser.pm,v
retrieving revision 1.28
diff -u -r1.28 Parser.pm
--- languages/perl6/P6C/Parser.pm 27 Nov 2003 19:43:20 -0000 1.28
+++ languages/perl6/P6C/Parser.pm 17 Dec 2003 01:07:13 -0000
@@ -251,22 +251,23 @@
$VCLOSE = qr/<</;
$NAMEPART = qr/[a-zA-Z_][\w_]*/;
$COMPARE = qr{(?:cmp|eq|[gnl]e|[gl]t)\b|<=>|[<>=!]=|<|>};
- $CONTEXT = [EMAIL PROTECTED]&*_?]|\+(?!\+)};
+ $CONTEXT = [EMAIL PROTECTED]&*?]|\+(?!\+)|~(?![~\&\|\^])};
$MULDIV = qr{[\%*x]|/(?!/)};
$MATCH = qr{[=!]~};
$INCR = qr{\+\+|--};
- $PREFIX = qr{ [!~\\] | # logical negation '!', bitwise negation '~',
create a reference '\'
+ $PREFIX = qr{ [!\\] | # logical negation '!', create a reference '\'
+ \+\^ | # unary bitwise XOR (bitwise negation)
\+(?!\+) | # posification '+', but not increment '++'
-(?![->]) # negation '-', but not decrement '--', but not
dereference '->'
}x;
- $ADDSUB = qr{[-+_]};
+ $ADDSUB = qr{[-+~](?![\&\|\^])};
$BITSHIFT = qr{<<|>>};
$LOG_OR = qr{(?:x?or|err)\b};
$LOGOR = qr{\|\||\^\^|//};
- $BITOR = qr{(?:\|(?!\|)|~(?!~))};
- $BITAND = qr{&(?!&)};
+ $BITOR = qr{(?:\|(?!\|)|[~\+][\|\^])};
+ $BITAND = qr{(?:\+\&|~\&)};
$FILETEST = qr{-[rwxoRWXOezsfdlpSbctugkTBMAC]+\b};
- $ASSIGN = qr{(?:!|:|//|&&?|\|\|?|~|\^\^|<<|>>|$ADDSUB|$MULDIV|\*\*)?=};
+ $ASSIGN =
qr{(?:!|:|//|&&?|\|\|?|\+[\&\|\^]|~[\&\|\^]|\^\^|<<|>>|$ADDSUB|$MULDIV|\*\*)?=};
# Used for flushing syntax errors
$FLUSH = qr/\w+|[^\s\w;}#'"]+/;
$NUMPART = qr/(?!_)[\d_]+(?<!_)/;
@@ -523,7 +524,7 @@
muldiv_op: /$MULDIV|$VOPEN$MULDIV$VCLOSE/o
addsub: <leftop: muldiv addsub_op muldiv>
-# addsub_op: '+' | '-' | '_'
+# addsub_op: '+' | '-' | '~'
addsub_op: /$ADDSUB|$VOPEN$ADDSUB$VCLOSE/o
bitshift: <leftop: addsub bitshift_op addsub>
Index: languages/perl6/P6C/IMCC/Binop.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC/Binop.pm,v
retrieving revision 1.14
diff -u -r1.14 Binop.pm
--- languages/perl6/P6C/IMCC/Binop.pm 27 Nov 2003 19:43:22 -0000 1.14
+++ languages/perl6/P6C/IMCC/Binop.pm 17 Dec 2003 01:07:14 -0000
@@ -10,7 +10,7 @@
use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK);
@ISA = qw(Exporter);
@EXPORT_OK = qw(do_pow do_logand do_logor do_defined do_concat do_repeat
- do_range do_smartmatch imcc_op);
+ do_range do_smartmatch imcc_op simple_binary simple_binary_pasm);
%EXPORT_TAGS = (all => [EMAIL PROTECTED]);
sub do_pow ;
@@ -28,14 +28,49 @@
sub sm_expr_num ;
sub sm_expr_str ;
-# Remap operator names from P6 to IMCC.
+# Remap operator symbols from P6 to IMCC.
sub imcc_op {
my $op = shift;
-
return "~~" if ($op eq '^^');
- return "." if ($op eq '_');
+ return "." if ($op eq '~');
+ return "|" if ($op eq '+|');
+ return "&" if ($op eq '+&');
+ return "~" if ($op eq '+^');
+ return $op;
+}
+# Remap operator symbols from P6 to PASM opcodes
+sub pasm_op {
+ my $op = shift;
+ return "bands" if ($op eq '~&');
+ return "bors" if ($op eq '~|');
+ return "bxors" if ($op eq '~^');
return $op;
+}
+
+#
+# Create generic code for $a op $b.
+sub simple_binary {
+ my $x = shift;
+ my $ltmp = $x->l->val;
+ my $rtmp = $x->r->val;
+ my $dest = newtmp 'PerlUndef';
+ my $op = imcc_op($x->op);
+ code("\t$dest = $ltmp $op $rtmp\n");
+ return $dest;
+}
+
+#
+# Some p6 operators correspond to a single PASM opcode but don't
+# have PIR syntax.
+sub simple_binary_pasm {
+ my $x = shift;
+ my $dest = newtmp 'PerlUndef';
+ my $ltmp = $x->l->val;
+ my $rtmp = $x->r->val;
+ my $opcode = pasm_op($x->op);
+ code("\t$opcode $dest, $ltmp, $rtmp\n");
+ return $dest;
}
1;
Index: languages/perl6/P6C/IMCC/hype.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/IMCC/hype.pm,v
retrieving revision 1.5
diff -u -r1.5 hype.pm
--- languages/perl6/P6C/IMCC/hype.pm 27 Nov 2003 19:43:22 -0000 1.5
+++ languages/perl6/P6C/IMCC/hype.pm 17 Dec 2003 01:07:14 -0000
@@ -21,9 +21,9 @@
use vars '%optype';
BEGIN {
- my %opmap = (int => [ qw(>> << | & ~ ^^)],
+ my %opmap = (int => [ qw(>> << +| +& +^ ^^)],
num => [ qw(+ - * / % **)],
- str => [ qw(_) ]);
+ str => [ qw(~ ~| ~& ~^) ]);
while (my ($t, $ops) = each %opmap) {
@[EMAIL PROTECTED] = ($t) x @$ops;
}
@@ -120,7 +120,7 @@
return hype_scalar_array(@_);
} else {
diag "Tried to hyper-operate two scalars";
- return P6C::Binop::simple_binary(@_);
+ return P6C::IMCC::Binop::simple_binary(@_);
}
}
Index: languages/perl6/P6C/Tree/String.pm
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/P6C/Tree/String.pm,v
retrieving revision 1.8
diff -u -r1.8 String.pm
--- languages/perl6/P6C/Tree/String.pm 13 Oct 2003 17:00:52 -0000 1.8
+++ languages/perl6/P6C/Tree/String.pm 17 Dec 2003 01:07:15 -0000
@@ -153,9 +153,10 @@
my ($list) = @_;
my $type = 'PerlString';
if (@$list > 1) {
- my $val = new P6C::Binop op => '_', l => make_node(shift @$list), r =>
make_node(shift @$list);
+ # XXX: hardcoded P6 op, nasty
+ my $val = new P6C::Binop op => '~', l => make_node(shift @$list), r =>
make_node(shift @$list);
while (@$list) {
- $val = new P6C::Binop op => '_', l => $val, r => make_node(shift @$list)
+ $val = new P6C::Binop op => '~', l => $val, r => make_node(shift @$list)
}
return $val;
}
Index: languages/perl6/examples/qsort.p6
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/examples/qsort.p6,v
retrieving revision 1.2
diff -u -r1.2 qsort.p6
--- languages/perl6/examples/qsort.p6 18 Feb 2003 13:25:13 -0000 1.2
+++ languages/perl6/examples/qsort.p6 17 Dec 2003 01:07:15 -0000
@@ -21,8 +21,8 @@
sub main() {
my @a = 1..(@ARGS[0] || 100);
qsort @a, 0, @a - 1;
- print @a ^_ "\n";
+ print @a >>~<< "\n";
@a = reverse @a;
qsort @a, 0, @a - 1;
- print @a ^_ "\n";
+ print @a >>~<< "\n";
}
Index: languages/perl6/t/compiler/aggregates.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/aggregates.t,v
retrieving revision 1.1
diff -u -r1.1 aggregates.t
--- languages/perl6/t/compiler/aggregates.t 13 Oct 2003 17:00:57 -0000 1.1
+++ languages/perl6/t/compiler/aggregates.t 17 Dec 2003 01:07:15 -0000
@@ -9,7 +9,7 @@
my $a = (2,3,4);
my ($b, $c) = (2,3,4);
my ($d, $e, $f) = (5,6);
- print1(@a[0] _ ' ' _ @a[1] _ ' ' _ @a[2]);
+ print1(@a[0] ~ ' ' ~ @a[1] ~ ' ' ~ @a[2]);
print1($a);
print1($b);
print1($c);
@@ -33,9 +33,9 @@
sub main() {
my @a = (1,2,3,4);
my @b = @a[0,2];
- print1(@b[0] _ ', ' _ @b[1]);
- print1(@a[0] _ ', ' _ @a[2]);
- print1(@a[1] _ ', ' _ @a[3]);
+ print1(@b[0] ~ ', ' ~ @b[1]);
+ print1(@a[0] ~ ', ' ~ @a[2]);
+ print1(@a[1] ~ ', ' ~ @a[3]);
my @c = @a;
@a[2] = 5;
@c[0] = 6;
@@ -58,7 +58,7 @@
%x{a} = 'ay?';
%x{b} = 'be!';
%x{$x} = 'twenty-three';
- print1(%x{a} _', ' _%x{$b} _', ' _%x{23});
+ print1(%x{a} ~', ' ~%x{$b} ~', ' ~%x{23});
}
CODE
@@ -75,7 +75,7 @@
%x{b} = 'be!';
%x{$x} = 'twenty-three';
my @x = %x{'b', 'a', $x};
- print1(@x[0] [EMAIL PROTECTED] [EMAIL PROTECTED]);
+ print1(@x[0] [EMAIL PROTECTED] [EMAIL PROTECTED]);
my %y = %x;
%y{a} = 'ay!';
%x{b} = 'be?';
@@ -92,7 +92,7 @@
##############################
output_is(<<'CODE', <<'OUT', "Flattening");
sub foo {
- print1(@_[0]_' '[EMAIL PROTECTED]);
+ print1(@_[0]~' '[EMAIL PROTECTED]);
}
sub main() {
@@ -137,9 +137,9 @@
my @b = @[EMAIL PROTECTED];
my @c = @a[1..3];
my ($d, $e) = @a[1..3];
- print1(@b[0] _ ' ' _ @b[1] _ ' ' _ @b[2]);
- print1(@c[0] _ ' ' _ @c[1] _ ' ' _ @c[2]);
- print1($d _ ' ' _ $e);
+ print1(@b[0] ~ ' ' ~ @b[1] ~ ' ' ~ @b[2]);
+ print1(@c[0] ~ ' ' ~ @c[1] ~ ' ' ~ @c[2]);
+ print1($d ~ ' ' ~ $e);
}
CODE
Index: languages/perl6/t/compiler/basic.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/basic.t,v
retrieving revision 1.2
diff -u -r1.2 basic.t
--- languages/perl6/t/compiler/basic.t 27 Nov 2003 19:43:25 -0000 1.2
+++ languages/perl6/t/compiler/basic.t 17 Dec 2003 01:07:15 -0000
@@ -6,7 +6,7 @@
##############################
output_is(<<'CODE', <<'OUT', "Basic hello.");
sub main() {
- print1("Hello, " _ "world");
+ print1("Hello, " ~ "world");
}
CODE
Hello, world
@@ -37,7 +37,7 @@
print1(2 * 3);
print1(6 / 2);
print1(2 % 3);
- print1(2 _ 3);
+ print1(2 ~ 3);
print1(2 ** 3);
print1(2 ** 3 ** 1);
print1(2 ** 1 ** 3);
@@ -65,7 +65,7 @@
print1 "ok 3" if (--$x == 2);
my $y = $x++;
print1 "ok 4" if ($x == 3 && $y == 2);
- print1 ("ok "_ ($x++ + $y++));
+ print1 ("ok "~ ($x++ + $y++));
print1 "ok 6" if ($x == 4 && $y == 3);
}
CODE
@@ -84,15 +84,15 @@
my $y = $x;
my @z = ($x, $y);
# actually above statement makes next fail -lt
- print1 (++$x _ ' ' _ $y);
+ print1 (++$x ~ ' ' ~ $y);
$x--;
- print ++$x _ ' ' _ $y _ "\n";
- print $x++ _ ' ' _ $y _ "\n";
- print $x _ ' ' _ $y++ _ "\n";
- print $x _ ' ' _ ++$y _ "\n";
- print @z[0]++ _ ' ' _ [EMAIL PROTECTED] _ "\n";
- print $x _ ' ' _ $y _ "\n";
- print @z[0] _ ' ' _ @z[1] _ "\n";
+ print ++$x ~ ' ' ~ $y ~ "\n";
+ print $x++ ~ ' ' ~ $y ~ "\n";
+ print $x ~ ' ' ~ $y++ ~ "\n";
+ print $x ~ ' ' ~ ++$y ~ "\n";
+ print @z[0]++ ~ ' ' ~ [EMAIL PROTECTED] ~ "\n";
+ print $x ~ ' ' ~ $y ~ "\n";
+ print @z[0] ~ ' ' ~ @z[1] ~ "\n";
}
CODE
3 2
@@ -110,9 +110,9 @@
sub main() {
print1(2 << 3);
print1(32 >> 3);
- print1(32 | 3);
- print1(31 & 3);
- print1(10 ~ 12); # 1010 ~ 1100 -> 0110 == 6
+ print1(32 +| 3);
+ print1(31 +& 3);
+ print1(10 +^ 12); # 1010 +^ 1100 -> 0110 == 6
}
CODE
16
@@ -256,19 +256,19 @@
my $a = 3;
if 1 {
my $a = 4;
- if 2 { my $a = 5; print1("a is " _ $a) }
- print1("a is " _ $a);
+ if 2 { my $a = 5; print1("a is " ~ $a) }
+ print1("a is " ~ $a);
}
- print1("a is " _ $a);
+ print1("a is " ~ $a);
if 1 {
my $a = 5;
- print1("a is " _ $a);
+ print1("a is " ~ $a);
}
- print1("a is " _ $a);
+ print1("a is " ~ $a);
if 1 {
$a = 6;
}
- print1("a is " _ $a);
+ print1("a is " ~ $a);
}
CODE
a is 5
Index: languages/perl6/t/compiler/call.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/call.t,v
retrieving revision 1.1
diff -u -r1.1 call.t
--- languages/perl6/t/compiler/call.t 13 Oct 2003 17:00:57 -0000 1.1
+++ languages/perl6/t/compiler/call.t 17 Dec 2003 01:07:16 -0000
@@ -7,7 +7,7 @@
output_is(<<'CODE', <<'OUT', "subroutine call");
sub _fact($tot, $max, $n) {
if $n > $max {
- print1($max _ "! = " _ $tot);
+ print1($max ~ "! = " ~ $tot);
} else {
_fact $tot * $n, $max, $n + 1;
}
@@ -15,7 +15,7 @@
sub fact($n) {
unless 0 <= $n < 20 {
- print1("Sorry, can't take " _ $n _ " factorial");
+ print1("Sorry, can't take " ~ $n ~ " factorial");
} else {
_fact 1, $n, 1
}
@@ -38,7 +38,7 @@
##############################
output_is(<<'CODE', <<'OUT', "no args");
sub noargs() {
- print "ok " _ $i++ _ "\n";
+ print "ok " ~ $i++ ~ "\n";
}
sub main() {
@@ -62,7 +62,7 @@
}
sub noargs() {
- print "ok " _ $i++ _ "\n";
+ print "ok " ~ $i++ ~ "\n";
}
CODE
@@ -288,15 +288,15 @@
}
sub one($x) {
- print1('one ' _$x);
+ print1('one ' ~$x);
}
sub two($x, $y) {
- print1('two ' _$x _' ' _$y);
+ print1('two ' ~$x ~' ' ~$y);
}
sub three($x, $y, $z) {
- print1('three ' _$x _' ' _$y _' ' _$z);
+ print1('three ' ~$x ~' ' ~$y ~' ' ~$z);
}
sub main() {
Index: languages/perl6/t/compiler/exceptions.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/exceptions.t,v
retrieving revision 1.1
diff -u -r1.1 exceptions.t
--- languages/perl6/t/compiler/exceptions.t 13 Oct 2003 17:00:57 -0000 1.1
+++ languages/perl6/t/compiler/exceptions.t 17 Dec 2003 01:07:16 -0000
@@ -18,7 +18,7 @@
die;
CATCH { default { 2 } }
}
- print $x _' ' _$y, "\n";
+ print $x ~' ' ~$y, "\n";
}
CODE
dying
Index: languages/perl6/t/compiler/for.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/for.t,v
retrieving revision 1.1
diff -u -r1.1 for.t
--- languages/perl6/t/compiler/for.t 13 Oct 2003 17:00:57 -0000 1.1
+++ languages/perl6/t/compiler/for.t 17 Dec 2003 01:07:16 -0000
@@ -78,7 +78,7 @@
output_is(<<'CODE', <<'OUT', "For 1;1 -> 2;3");
sub main() {
for 11..20 ; 1..15 -> $a, $b ; $c, $d, $e {
- print1($a _ ' ' _ $c);
+ print1($a ~ ' ' ~ $c);
}
}
Index: languages/perl6/t/compiler/globals.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/globals.t,v
retrieving revision 1.2
diff -u -r1.2 globals.t
--- languages/perl6/t/compiler/globals.t 27 Nov 2003 19:43:25 -0000 1.2
+++ languages/perl6/t/compiler/globals.t 17 Dec 2003 01:07:16 -0000
@@ -6,7 +6,7 @@
##############################
output_is(<<'CODE', <<'OUT', "globals");
sub foo() {
- print $x, " is ", @xs >>_<< ' ', "\n";
+ print $x, " is ", @xs >>~<< ' ', "\n";
$y = 0;
for @xs { $y = $y + $_ }
}
Index: languages/perl6/t/compiler/hyper.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/hyper.t,v
retrieving revision 1.3
diff -u -r1.3 hyper.t
--- languages/perl6/t/compiler/hyper.t 27 Nov 2003 19:43:25 -0000 1.3
+++ languages/perl6/t/compiler/hyper.t 17 Dec 2003 01:07:16 -0000
@@ -6,7 +6,7 @@
##############################
output_is(<<'CODE', <<'OUT', 'Hyper 1');
sub parray(@y) {
- print1('(' _ @y[0] _ ', ' _ @y[1] _ ')');
+ print1('(' ~ @y[0] ~ ', ' ~ @y[1] ~ ')');
}
sub main() {
my @a = (1,2);
@@ -20,7 +20,7 @@
# print1(@a >>*<< @x + @b); # Array math not in 0.0.7
# IMCC clobbers too many registers with this:
# @y = @a >><<<< @a;
-# print1('(' _ @y[0] _ ', ' _ @y[1] _ ')');
+# print1('(' ~ @y[0] ~ ', ' ~ @y[1] ~ ')');
}
CODE
(8, 14)
@@ -51,7 +51,7 @@
##############################
output_is(<<'CODE', <<'OUT', 'Hyper 3');
sub parray(@y) {
- print1('(' _ @y[0] _ ', ' _ @y[1] _ ', ' _ @y[2] _ ')');
+ print1('(' ~ @y[0] ~ ', ' ~ @y[1] ~ ', ' ~ @y[2] ~ ')');
}
sub main() {
@@ -82,17 +82,17 @@
my @a = (1..3);
my @b = (4..9);
my @c = @a >>+<< @b;
- print @c >>_<< ' ',"x\n";
+ print @c >>~<< ' ',"x\n";
@c = @b >>+<< @a;
- print @c >>_<< ' ',"x\n";
+ print @c >>~<< ' ',"x\n";
@b = @b >>+<< @a;
- print @b >>_<< ' ',"x\n";
+ print @b >>~<< ' ',"x\n";
@b = (4..9);
@b >>+=<< @a;
- print @b >>_<< ' ',"x\n";
+ print @b >>~<< ' ',"x\n";
@b = (4..9);
@a >>+=<< @b;
- print @a >>_<< ' ',"x\n";
+ print @a >>~<< ' ',"x\n";
}
CODE
5 7 9 7 8 9 x
@@ -109,30 +109,30 @@
my @c;
@c = @a;
@c >>+=<< @b;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @b;
@c >>+=<< @a;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @a;
@c >>*=<< @b;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @a;
@c >>**=<< @b;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @a;
@c >>/=<< @b;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @b;
@c >>%=<< @a;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
@c = @b;
@c >>-=<< @a;
-print @c >>_<< ' ',"x\n";
+print @c >>~<< ' ',"x\n";
CODE
/7 9 4 x
7 9 4 x
Index: languages/perl6/t/compiler/qsort.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/qsort.t,v
retrieving revision 1.2
diff -u -r1.2 qsort.t
--- languages/perl6/t/compiler/qsort.t 27 Nov 2003 19:43:25 -0000 1.2
+++ languages/perl6/t/compiler/qsort.t 17 Dec 2003 01:07:16 -0000
@@ -27,10 +27,10 @@
sub main() {
my @a = 1..10;
qsort @a, 0, @a - 1;
- print @a >>_<< "\n";
+ print @a >>~<< "\n";
@a = (10,9,8,7,6,5,4,3,2,1);
qsort @a, 0, @a - 1;
- print @a >>_<< "\n";
+ print @a >>~<< "\n";
}
CODE
10
Index: languages/perl6/t/compiler/string.t
===================================================================
RCS file: /cvs/public/parrot/languages/perl6/t/compiler/string.t,v
retrieving revision 1.1
diff -u -r1.1 string.t
--- languages/perl6/t/compiler/string.t 13 Oct 2003 17:00:57 -0000 1.1
+++ languages/perl6/t/compiler/string.t 17 Dec 2003 01:07:16 -0000
@@ -12,7 +12,7 @@
# qq + interpolation
print(qq|$speech $action $person\n"But you speak like a fool."\n|);
# obviously refering to those folks who think Perl6 is a "bad thing." :)
- print "\"pass " _ 'test"' _ "\n"; # backslash quotes + spacing
+ print "\"pass " ~ 'test"' ~ "\n"; # backslash quotes + spacing
}
CODE
"You have not seen, so I forgive your jest," said Gimli.