Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #495 from skids/glr
Add temporary short-circuits to "array" preventing some test hangs.
  • Loading branch information
lizmat committed Aug 16, 2015
2 parents 919ef9d + 8450fbb commit 76b71ca
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/core/Array.pm
Expand Up @@ -470,12 +470,12 @@ my class Array { # declared in BOOTSTRAP
my int $ipos = $pos;
my $todo := nqp::getattr(self, List, '$!todo');
$todo.reify-at-least($ipos + 1) if $todo.DEFINITE;
nqp::bindpos(nqp::getattr(self, List, '$!items'), $ipos, bindval)
nqp::bindpos(nqp::getattr(self, List, '$!reified'), $ipos, bindval)
}
multi method BIND-POS(int $pos, TValue \bindval) is rw {
my $todo := nqp::getattr(self, List, '$!todo');
$todo.reify-at-least($pos + 1) if $todo.DEFINITE;
nqp::bindpos(nqp::getattr(self, List, '$!items'), $pos, bindval)
nqp::bindpos(nqp::getattr(self, List, '$!reified'), $pos, bindval)
}
multi method perl(::?CLASS:D \SELF:) {
my $args = self.map({ ($_ // TValue).perl(:arglist) }).join(', ');
Expand Down
10 changes: 7 additions & 3 deletions src/core/native_array.pm
Expand Up @@ -476,9 +476,13 @@ class array does Iterable is repr('VMArray') {
# XXX GLR will infinite survive?
multi method infinite(array:D:) { False }

method eager() { self }
method flat() { self }
method list() { self }
# XXX GLR temporary backfill to prevent some loops
# method eager() { self }
# method flat() { self }
# method list() { self }
method eager() { nqp::die('XXX native array iterators need re-implementing') }
method flat() { nqp::die('XXX native array iterators need re-implementing') }
method list() { nqp::die('XXX native array iterators need re-implementing') }

multi method gist(array:D:) {
self.map(-> $elem {
Expand Down

0 comments on commit 76b71ca

Please sign in to comment.