Bug 20663 – writeln should be @nogc

Status
NEW
Severity
enhancement
Priority
P4
Component
phobos
Product
D
Version
D2
Platform
All
OS
All
Creation time
2020-03-10T17:23:28Z
Last change time
2024-12-01T16:36:30Z
Assigned to
No Owner
Creator
Manu
Moved to GitHub: phobos#9790 →

Comments

Comment #0 by turkeyman — 2020-03-10T17:23:28Z
I have had multiple complain (one of them *phoned me from overseas*) that writeln() doesn't work in @nogc. Their claim goes: "How can it be acceptable that writeln() doesn't work in @nogc? It's literally the first thing you try and do!" I have to agree. writeln() really should work everywhere, always.
Comment #1 by destructionator — 2020-03-10T17:44:15Z
Whatever happened to that dip 1008 thing? Or perhaps we could just change the invalid utf 8 sequence exception to the replacement char. I'd personally argue that is more useful for writing anyway (I often cast stuff to byte for it)
Comment #2 by turkeyman — 2020-03-10T19:23:21Z
Dunno what's going on with DIP1008, but I actually agree that using the replacement char is actually the more interesting and useful thing to do. I might be interested in throwing a UTF exception from a function like `validateString`, but I don't want writeln to throw! I want it to write text to the output stream... it has one job!
Comment #3 by destructionator — 2020-03-10T19:36:32Z
hmmm took a look at the code and the other thing that throws is on fwrite errors. I forgot about those... could possibly throw a static instance or something but that complicates the easy idea of just using replacement char.
Comment #4 by robert.schadek — 2024-12-01T16:36:30Z
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/phobos/issues/9790 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB