Message from discussion
Removing two-arg ne
Newsgroups: perl.perl6.internals
Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!nntp.perl.org
Return-Path: <s...@amnh.org>
Mailing-List: contact perl6-internals-h...@perl.org; run by ezmlm
Delivered-To: mailing list perl6-intern...@perl.org
X-Authentication-Warning: egg.amnh.org: scog owned process doing -bs
Date: Thu, 10 Oct 2002 12:06:54 -0400 (EDT)
To: Dan Sugalski <d...@sidhe.org>
cc: Steve Fink <st...@fink.com>, <perl6-intern...@perl.org>
Subject: [PATCH] Removing two-arg ne
In-Reply-To: <a05111b02b9ca65fd928b@[63.120.19.221]>
Message-ID: <Pine.GSO.4.43.0210101155360.17996-100000@egg.amnh.org>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-SMTPD: qpsmtpd/0.11, http://develooper.com/code/qpsmtpd/
Approved: n...@nntp.perl.org
From: s...@amnh.org (Simon Glover)
References: <a05111b02b9ca65fd928b@[63.120.19.221]>
Lines: 196
On Wed, 9 Oct 2002, Dan Sugalski wrote:
> At 7:42 PM -0700 10/8/02, Steve Fink wrote:
> >Thanks, applied.
> >
> >Who came up with the idea of two-argument ne, anyway? That's kind of
> >bizarre.
>
>
> Definitely bizarre. I think I'd rather not have it, it doesn't make much sense.
Easily done. Patch below removes the ops, plus the relevent tests from
integer.t and number.t
Simon
--- core.ops.old Thu Oct 10 11:57:08 2002
+++ core.ops Thu Oct 10 11:57:29 2002
@@ -902,14 +902,6 @@ op eq (in PMC, in PMC, inconst INT) {
########################################
-=item B<ne>(in INT, in INT)
-
-=item B<ne>(in NUM, in NUM)
-
-=item B<ne>(in STR, in STR)
-
-=item B<ne>(in PMC, in PMC)
-
=item B<ne>(in INT, in INT, inconst INT)
=item B<ne>(in NUM, in NUM, inconst INT)
@@ -920,38 +912,8 @@ op eq (in PMC, in PMC, inconst INT) {
Branch if $1 is not equal to $2.
-Return address is popped off the call stack if no address is supplied.
-
=cut
-inline op ne (in INT, in INT) {
- if ($1 != $2) {
- goto POP();
- }
- goto NEXT();
-}
-
-inline op ne (in NUM, in NUM) {
- if ($1 != $2) {
- goto POP();
- }
- goto NEXT();
-}
-
-op ne (in STR, in STR) {
- if (string_compare (interpreter, $1, $2) != 0) {
- goto POP();
- }
- goto NEXT();
-}
-
-op ne (in PMC, in PMC) {
- if (! $1->vtable->is_equal(interpreter, $1, $2)) {
- goto POP();
- }
- goto NEXT();
-}
-
inline op ne(in INT, in INT, inconst INT) {
if ($1 != $2) {
goto OFFSET($3);
--- t/op/integer.t.old Thu Oct 10 11:58:24 2002
+++ t/op/integer.t Thu Oct 10 12:00:56 2002
@@ -1,6 +1,6 @@
#! perl -w
-use Parrot::Test tests => 39;
+use Parrot::Test tests => 38;
output_is(<<CODE, <<OUTPUT, "set_i_ic");
# XXX: Need a test for writing outside the set of available
@@ -520,47 +520,6 @@ ok 1
ok 2
OUTPUT
-output_is(<<CODE, <<OUTPUT, "ne ic, i (pop label off stack)");
-
- set I0, 12
- set I1, 10
-
- print "start\\n"
- bsr BR1
- print "done 1\\n"
- bsr BR2
- print "done 2\\n"
- bsr BR3
- print "done 3\\n"
- bsr BR4
- print "Shouldn't get here\\n"
-
- end
-
-BR1: ne I0, 10
- print "bad "
- ret
-
-BR2: ne 10, 12
- print "10 is 12! "
- ret
-
-BR3: ne I0, I1
- print "10 is 12, even when in I reg "
- ret
-
-BR4: ne 12, 12
- print "done 4\\n"
- end
-
-CODE
-start
-done 1
-done 2
-done 3
-done 4
-OUTPUT
-
output_is(<<CODE, <<OUTPUT, "lt_i_ic");
set I0, 2147483647
set I1, -2147483648
--- t/op/number.t.old Thu Oct 10 11:58:35 2002
+++ t/op/number.t Thu Oct 10 12:01:45 2002
@@ -1,6 +1,6 @@
#! perl -w
-use Parrot::Test tests => 34;
+use Parrot::Test tests => 33;
use Test::More;
output_is(<<CODE, <<OUTPUT, "set_n_nc");
@@ -491,50 +491,6 @@ ok 1
ok 2
OUTPUT
-output_is(<<'CODE', <<OUTPUT, "ne_n");
- set N0, 1.234567
- set N1, -1.234567
-
- bsr BR1
- print "ok 1\n"
- bsr BR2
- print "ok 2\n"
- bsr BR3
- print "ok 3\n"
- bsr BR4
- print "ok 4\n"
- bsr BR5
- print "Shouldn't get here\n"
- end
-
-BR1: ne N0, N1
- print "not ok 1\n"
- ret
-
-BR2: ne 2.54, N0
- print "not ok 2\n"
- ret
-
-BR3: ne N0, 0.00
- print "not ok 3\n"
- ret
-
-BR4: ne 1.0, 2.0
- print "not ok 4\n"
- ret
-
-BR5: ne N0, N0
- print "ok 5\n"
- end
-
-CODE
-ok 1
-ok 2
-ok 3
-ok 4
-ok 5
-OUTPUT
-
output_is(<<CODE, <<OUTPUT, "lt_n_ic");
set N0, 1000.0
set N1, 500.0