digitalmars.D.bugs - [Issue 14005] New: core.exception.InvalidMemoryOperationError (0)
- via Digitalmars-d-bugs (41/41) Jan 18 2015 https://issues.dlang.org/show_bug.cgi?id=14005
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