open a range of files - segfault

2013-05-22 Thread Stephan Schiffels

Hi,

this code crashes with a segfault. I need help to understand what 
might be wrong with it.


import std.array;
import std.algorithm;

void main() {
  auto names = [file1.txt, file2.txt, file3.txt];  // let 
these files exist

  auto files = names.map!(f = File(f, r))().array();
}

Thanks,

Stephan


Re: open a range of files - segfault

2013-05-22 Thread bearophile

Stephan Schiffels:

this code crashes with a segfault. I need help to understand 
what might be wrong with it.


import std.array;
import std.algorithm;

void main() {
  auto names = [file1.txt, file2.txt, file3.txt];  // let 
these files exist

  auto files = names.map!(f = File(f, r))().array();
}


If I use the latest 2.063beta5 compiler, and I also import 
std.stdio, then I see no crash on Windows32.


Bye,
bearophile


Re: open a range of files - segfault

2013-05-22 Thread John Colvin
On Wednesday, 22 May 2013 at 08:38:14 UTC, Stephan Schiffels 
wrote:

Hi,

this code crashes with a segfault. I need help to understand 
what might be wrong with it.


import std.array;
import std.algorithm;

void main() {
  auto names = [file1.txt, file2.txt, file3.txt];  // let 
these files exist

  auto files = names.map!(f = File(f, r))().array();
}

Thanks,

Stephan


A quick gdb run shows that it's segfaulting at the exit of the 
program, when the GC runs its final full collection.


Re: open a range of files - segfault

2013-05-22 Thread John Colvin

On Wednesday, 22 May 2013 at 11:07:39 UTC, bearophile wrote:

Stephan Schiffels:

this code crashes with a segfault. I need help to understand 
what might be wrong with it.


import std.array;
import std.algorithm;

void main() {
 auto names = [file1.txt, file2.txt, file3.txt];  // let 
these files exist

 auto files = names.map!(f = File(f, r))().array();
}


If I use the latest 2.063beta5 compiler, and I also import 
std.stdio, then I see no crash on Windows32.


Bye,
bearophile


With git master on linux x64 I get a segfault, see my other
comment.


Re: open a range of files - segfault

2013-05-22 Thread Stephan Schiffels

On Wednesday, 22 May 2013 at 11:09:49 UTC, John Colvin wrote:

On Wednesday, 22 May 2013 at 11:07:39 UTC, bearophile wrote:

Stephan Schiffels:

this code crashes with a segfault. I need help to understand 
what might be wrong with it.


import std.array;
import std.algorithm;

void main() {
auto names = [file1.txt, file2.txt, file3.txt];  // let 
these files exist

auto files = names.map!(f = File(f, r))().array();
}


If I use the latest 2.063beta5 compiler, and I also import 
std.stdio, then I see no crash on Windows32.


Bye,
bearophile


With git master on linux x64 I get a segfault, see my other
comment.


OK, thanks for confirming. I updated to the latest git master and 
still get a segfault. I'll file a bug report.


Stephan