Skip to content

Commit

Permalink
First batch of moving to uint
Browse files Browse the repository at this point in the history
Not for performance, but for code clarity and intent.  Also removed
some deadcode and other cleanup
  • Loading branch information
lizmat committed Feb 12, 2022
1 parent ceaa38f commit 4d61a58
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 64 deletions.
100 changes: 48 additions & 52 deletions src/core.c/native_array.pm6
Expand Up @@ -98,13 +98,13 @@ my class array does Iterable does Positional {

role strarray[::T] does Positional[T] is array_type(T) {
#- start of generated part of strarray role -----------------------------------
#- Generated on 2022-02-12T13:24:30+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- Generated on 2022-02-12T14:20:07+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- PLEASE DON'T CHANGE ANYTHING BELOW THIS LINE

multi method grep(strarray:D: Str:D $needle, :$k, :$kv, :$p, :$v --> Seq:D) {
my int $i = -1;
my int $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);

if $k {
nqp::while(
Expand Down Expand Up @@ -137,7 +137,6 @@ my class array does Iterable does Positional {
);
}
else {
my int $found;
nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
nqp::if(
Expand All @@ -150,16 +149,16 @@ my class array does Iterable does Positional {
}

multi method first(strarray:D: Str:D $needle, :$k, :$kv, :$p, :$v) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems)
&& nqp::isne_s(nqp::atpos_s(self,$i),$needle),
nqp::null()
);

nqp::iseq_i($i,nqp::elems(self))
nqp::iseq_i($i,$elems)
?? Nil
!! $k
?? $i
Expand All @@ -171,8 +170,8 @@ my class array does Iterable does Positional {
}

multi method unique(strarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -188,8 +187,8 @@ my class array does Iterable does Positional {
}

multi method repeated(strarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -209,7 +208,7 @@ my class array does Iterable does Positional {
if nqp::elems(self) -> int $elems {
my $result := nqp::create(array[self.of]);
my str $last = nqp::push_s($result,nqp::atpos_s(self,0));
my int $i;
my uint $i;

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
Expand Down Expand Up @@ -709,13 +708,13 @@ my class array does Iterable does Positional {

role intarray[::T] does Positional[T] is array_type(T) {
#- start of generated part of intarray role -----------------------------------
#- Generated on 2022-02-12T13:24:30+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- Generated on 2022-02-12T14:20:07+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- PLEASE DON'T CHANGE ANYTHING BELOW THIS LINE

multi method grep(intarray:D: Int:D $needle, :$k, :$kv, :$p, :$v --> Seq:D) {
my int $i = -1;
my int $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);

if $k {
nqp::while(
Expand Down Expand Up @@ -748,7 +747,6 @@ my class array does Iterable does Positional {
);
}
else {
my int $found;
nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
nqp::if(
Expand All @@ -761,16 +759,16 @@ my class array does Iterable does Positional {
}

multi method first(intarray:D: Int:D $needle, :$k, :$kv, :$p, :$v) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems)
&& nqp::isne_i(nqp::atpos_i(self,$i),$needle),
nqp::null()
);

nqp::iseq_i($i,nqp::elems(self))
nqp::iseq_i($i,$elems)
?? Nil
!! $k
?? $i
Expand All @@ -782,8 +780,8 @@ my class array does Iterable does Positional {
}

multi method unique(intarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -799,8 +797,8 @@ my class array does Iterable does Positional {
}

multi method repeated(intarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -820,7 +818,7 @@ my class array does Iterable does Positional {
if nqp::elems(self) -> int $elems {
my $result := nqp::create(array[self.of]);
my int $last = nqp::push_i($result,nqp::atpos_i(self,0));
my int $i;
my uint $i;

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
Expand Down Expand Up @@ -1362,13 +1360,13 @@ my class array does Iterable does Positional {

role uintarray[::T] does Positional[T] is array_type(T) {
#- start of generated part of uintarray role -----------------------------------
#- Generated on 2022-02-12T13:24:30+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- Generated on 2022-02-12T14:20:07+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- PLEASE DON'T CHANGE ANYTHING BELOW THIS LINE

multi method grep(uintarray:D: Int:D $needle, :$k, :$kv, :$p, :$v --> Seq:D) {
my int $i = -1;
my int $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);

if $k {
nqp::while(
Expand Down Expand Up @@ -1401,7 +1399,6 @@ my class array does Iterable does Positional {
);
}
else {
my int $found;
nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
nqp::if(
Expand All @@ -1414,16 +1411,16 @@ my class array does Iterable does Positional {
}

multi method first(uintarray:D: Int:D $needle, :$k, :$kv, :$p, :$v) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems)
&& nqp::isne_i(nqp::atpos_u(self,$i),$needle),
nqp::null()
);

nqp::iseq_i($i,nqp::elems(self))
nqp::iseq_i($i,$elems)
?? Nil
!! $k
?? $i
Expand All @@ -1435,8 +1432,8 @@ my class array does Iterable does Positional {
}

multi method unique(uintarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -1452,8 +1449,8 @@ my class array does Iterable does Positional {
}

multi method repeated(uintarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -1473,7 +1470,7 @@ my class array does Iterable does Positional {
if nqp::elems(self) -> int $elems {
my $result := nqp::create(array[self.of]);
my uint $last = nqp::push_i($result,nqp::atpos_u(self,0));
my int $i;
my uint $i;

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
Expand Down Expand Up @@ -2015,13 +2012,13 @@ my class array does Iterable does Positional {

role numarray[::T] does Positional[T] is array_type(T) {
#- start of generated part of numarray role -----------------------------------
#- Generated on 2022-02-12T13:24:30+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- Generated on 2022-02-12T14:20:07+01:00 by ./tools/build/makeNATIVE_ARRAY.raku
#- PLEASE DON'T CHANGE ANYTHING BELOW THIS LINE

multi method grep(numarray:D: Num:D $needle, :$k, :$kv, :$p, :$v --> Seq:D) {
my int $i = -1;
my int $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(IterationBuffer);

if $k {
nqp::while(
Expand Down Expand Up @@ -2054,7 +2051,6 @@ my class array does Iterable does Positional {
);
}
else {
my int $found;
nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
nqp::if(
Expand All @@ -2067,16 +2063,16 @@ my class array does Iterable does Positional {
}

multi method first(numarray:D: Num:D $needle, :$k, :$kv, :$p, :$v) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems)
&& nqp::isne_n(nqp::atpos_n(self,$i),$needle),
nqp::null()
);

nqp::iseq_i($i,nqp::elems(self))
nqp::iseq_i($i,$elems)
?? Nil
!! $k
?? $i
Expand All @@ -2088,8 +2084,8 @@ my class array does Iterable does Positional {
}

multi method unique(numarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -2105,8 +2101,8 @@ my class array does Iterable does Positional {
}

multi method repeated(numarray:D:) {
my int $i = -1;
my int $elems = nqp::elems(self);
my uint $i = -1;
my uint $elems = nqp::elems(self);
my $result := nqp::create(array[self.of]);
my $seen := nqp::hash;

Expand All @@ -2126,7 +2122,7 @@ my class array does Iterable does Positional {
if nqp::elems(self) -> int $elems {
my $result := nqp::create(array[self.of]);
my num $last = nqp::push_n($result,nqp::atpos_n(self,0));
my int $i;
my uint $i;

nqp::while(
nqp::islt_i(($i = nqp::add_i($i,1)),$elems),
Expand Down

0 comments on commit 4d61a58

Please sign in to comment.