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