Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

error initializing large array on Windows (64-bit) #6273

Open
p6rt opened this issue May 26, 2017 · 6 comments
Open

error initializing large array on Windows (64-bit) #6273

p6rt opened this issue May 26, 2017 · 6 comments

Comments

@p6rt
Copy link

p6rt commented May 26, 2017

Migrated from rt.perl.org#131375 (status was 'open')

Searchable as RT131375$

@p6rt
Copy link
Author

p6rt commented May 26, 2017

From @mscha

The following script​:

  #!/usr/bin/env perl6

  use v6.c;

  sub MAIN(Int $n = 20_000_000)
  {
  say "Starting...";
  my int @​a = 1..$n;
  say "Array initialized.";
  sleep 10;
  }

fails on my Windows machine​:

  Unable to allocate an array of 20000000 elements

This is a Windows 10 64-bit machine, running the official 64-bit Rakudo
Star 2017.04.3 build.

The machine has 16 GB of memory, and at the moment, 48% is in use.
When I run the script with n = 15 million, I can see in the task manager
that it's using 162.7 MB, which is not excessive. (Memory used jumps
from 42% to 43%.)

The same script on my Linux server (with a self-built Rakudo Star
2017.04) runs fine, I've tested it up to one billion.

@p6rt
Copy link
Author

p6rt commented May 27, 2017

From @zoffixznet

On Fri, 26 May 2017 11​:58​:50 -0700, perl6@​mscha.org wrote​:

The following script​:

 \#\!/usr/bin/env perl6

 use v6\.c;

 sub MAIN\(Int $n = 20\_000\_000\)
 \{
     say "Starting\.\.\.";
     my int @​a = 1\.\.$n;
     say "Array initialized\.";
     sleep 10;
 \}

fails on my Windows machine​:

 Unable to allocate an array of 20000000 elements

This is a Windows 10 64-bit machine, running the official 64-bit Rakudo
Star 2017.04.3 build.

The machine has 16 GB of memory, and at the moment, 48% is in use.
When I run the script with n = 15 million, I can see in the task manager
that it's using 162.7 MB, which is not excessive. (Memory used jumps
from 42% to 43%.)

The same script on my Linux server (with a self-built Rakudo Star
2017.04) runs fine, I've tested it up to one billion.

Confirmed on 2017.04.3-293-ga7c23aa Rakudo on Win10 Pro. Crashes almost instantly. Task manager tells me I still have 6.4GB of free memory.

Tried in command prompt run as administrator as well; same issue.

The same script works fine on 2017.05-132-gc5398c8 in a Bodhi Linux 4GB RAM VM running inside that Win10 and uses 229MB of RAM​:

$ /usr/bin/time ./perl6 foo.p6
Starting...
Array initialized.
0.40user 0.04system 0​:10.45elapsed 4%CPU (0avgtext+0avgdata 229196maxresident)k
0inputs+0outputs (0major+13244minor)pagefaults 0swaps

@p6rt
Copy link
Author

p6rt commented May 27, 2017

The RT System itself - Status changed from 'new' to 'open'

@p6rt
Copy link
Author

p6rt commented Aug 24, 2017

From @zoffixznet

The problem still exists on 2017.07 Rakudo Star, on 64-bit Win7

@p6rt
Copy link
Author

p6rt commented Aug 24, 2017

@p6rt
Copy link
Author

p6rt commented Aug 25, 2017

From @dogbert17

On Thu, 24 Aug 2017 08​:14​:07 -0700, ugexe@​cpan.org wrote​:

Largest I can initialize is 16777216.

https://stackoverflow.com/questions/12596695/why-does-a-float-
variable-stop-incrementing-at-16777216-in-c

Should be fixed with commit MoarVM/MoarVM@f9b65a9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant