www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 14005] New: core.exception.InvalidMemoryOperationError (0)

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

          Issue ID: 14005
           Summary: core.exception.InvalidMemoryOperationError (0) during
                    byLine
           Product: D
           Version: future
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: blocker
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: acehreli yahoo.com

1) Start with git head dmd: DMD64 D Compiler v2.067-devel-e9e7c53

2) Create file "deneme.txt" and put the following two lines in it (The problem
is data-dependent; I could not reduce it further):

D'deki tanıma göre, dönüş değerini üretirken veya olası yan etkilerini
oluştururken değerlere erişmeyen bir işlev saftır. da değişebilen
evrensel
durum olarak kabul edildiklerinden saf işlevler giriş ve çıkış işlemleri
de
içeremezler.

Bazı saf işlevler parametrelerinde değişiklik de yapmazlar. Dolayısıyla,
bu
gibi işlevlerin programdaki tek etkileri dönüş değerleridir. Bu açıdan
bakıldığında, parametrelerinde değişiklik yapmayan saf işlevlerin belirli
parametre değerlerine karşılık hep aynı değeri döndürecekleri belli
demektir.
Dolayısıyla, böyle bir işlevin dönüş değeri eniyileştirme amacıyla
sonradan
kullanılmak üzere saklanabilir. (Bu gözlem hem derleyici hem de programcı
için
yararlıdır.)

3) Compile and run the following program:

import std.stdio;

void main()
{
    foreach (line; File("deneme.txt", "r").byLine) {
        writeln(line);
    }
}

(writeln line is optional.)

The compiled program fails with

  core.exception.InvalidMemoryOperationError (0)

after printing the two lines.

--
Jan 18 2015