[Issue 14005] New: core.exception.InvalidMemoryOperationError@(0) during byLine

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun Jan 18 15:51:05 PST 2015


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 at puremagic.com
          Reporter: acehreli at 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.

--


More information about the Digitalmars-d-bugs mailing list