Thread overview
MmFile : Is this std.mmFile BUG?
Aug 26, 2015
Junichi Nakata
Aug 26, 2015
Alex Parrill
Aug 26, 2015
rsw0x
Aug 27, 2015
Junichi Nakata
Sep 01, 2015
Vladimir Panteleev
August 26, 2015
Hi, all.
I have a question.
When 'testdic' file does' t exist, something  wrong.

---
import std.mmFile;

int main() {
  auto x = new MmFile("testdic",MmFile.Mode.readWrite,0,null);
  return 0;
}

---
OSX 10.10.3 ,
DMD64 D Compiler v2.069-devel-d0327d9

After testdic file (size=0) was made, Segmentation Fault: 11 .

I don't know whether this code is typical use.
Is this Phobos BUG? or BY DESIGN?

August 26, 2015
On Wednesday, 26 August 2015 at 15:49:23 UTC, Junichi Nakata wrote:
> Hi, all.
> I have a question.
> When 'testdic' file does' t exist, something  wrong.
>
> ---
> import std.mmFile;
>
> int main() {
>   auto x = new MmFile("testdic",MmFile.Mode.readWrite,0,null);
>   return 0;
> }
>
> ---
> OSX 10.10.3 ,
> DMD64 D Compiler v2.069-devel-d0327d9
>
> After testdic file (size=0) was made, Segmentation Fault: 11 .
>
> I don't know whether this code is typical use.
> Is this Phobos BUG? or BY DESIGN?

Note that mmap-ing a zero-length range is invalid on Linux. Dunno about OSX; it shouldn't segfault though.
August 26, 2015
On Wednesday, 26 August 2015 at 17:30:29 UTC, Alex Parrill wrote:
> On Wednesday, 26 August 2015 at 15:49:23 UTC, Junichi Nakata wrote:
>> Hi, all.
>> I have a question.
>> When 'testdic' file does' t exist, something  wrong.
>>
>> ---
>> import std.mmFile;
>>
>> int main() {
>>   auto x = new MmFile("testdic",MmFile.Mode.readWrite,0,null);
>>   return 0;
>> }
>>
>> ---
>> OSX 10.10.3 ,
>> DMD64 D Compiler v2.069-devel-d0327d9
>>
>> After testdic file (size=0) was made, Segmentation Fault: 11 .
>>
>> I don't know whether this code is typical use.
>> Is this Phobos BUG? or BY DESIGN?
>
> Note that mmap-ing a zero-length range is invalid on Linux. Dunno about OSX; it shouldn't segfault though.

https://issues.dlang.org/show_bug.cgi?id=14968
August 27, 2015
On Wednesday, 26 August 2015 at 22:07:01 UTC, rsw0x wrote:
> On Wednesday, 26 August 2015 at 17:30:29 UTC, Alex Parrill wrote:
>> On Wednesday, 26 August 2015 at 15:49:23 UTC, Junichi Nakata wrote:
>>> Hi, all.
>>> I have a question.
>>> When 'testdic' file does' t exist, something  wrong.
>>>
>>> ---
>>> import std.mmFile;
>>>
>>> int main() {
>>>   auto x = new MmFile("testdic",MmFile.Mode.readWrite,0,null);
>>>   return 0;
>>> }
>>>
>>> ---
>>> OSX 10.10.3 ,
>>> DMD64 D Compiler v2.069-devel-d0327d9
>>>
>>> After testdic file (size=0) was made, Segmentation Fault: 11 .
>>>
>>> I don't know whether this code is typical use.
>>> Is this Phobos BUG? or BY DESIGN?
>>
>> Note that mmap-ing a zero-length range is invalid on Linux. Dunno about OSX; it shouldn't segfault though.
>
> 

From OS X 10.10.3 manage on mmap:

ERRORS
...
[EINVAL]           The len argument was negative.

append to https://issues.dlang.org/show_bug.cgi?id=14968

thanks.

September 01, 2015
On Wednesday, 26 August 2015 at 17:30:29 UTC, Alex Parrill wrote:
> it shouldn't segfault though.

The segfault is because of:

https://issues.dlang.org/show_bug.cgi?id=14993

It "should've" been an InvalidMemoryOperationError, which in turn was caused by:

https://issues.dlang.org/show_bug.cgi?id=14994
https://issues.dlang.org/show_bug.cgi?id=14995