[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