dmd foreach loops throw exceptions on invalid UTF sequences, use replacementDchar instead

Andrei Alexandrescu SeeWebsiteForEmail at erdani.com
Sat Nov 6 00:36:26 UTC 2021


On 2021-11-05 16:41, Walter Bright wrote:
> On 11/5/2021 6:25 AM, Andrei Alexandrescu wrote:
>> I've been doing a fair amount of benchmarking for 
>> https://amazon.com/Embracing-Modern-Safely-John-Lakos/dp/0137380356 
>> and surprisingly enough the myth holds true in most cases.
> 
> All the compilers I know of abandon many optimizations in the presence 
> of unwind blocks.
> 
> For example, register allocation of variables is not done across unwind 
> blocks. This is because the unwinder does not restore register contents.
> 
> A further problem is data flow analysis becomes largely ineffective 
> because any operation that may throw (such as a function call to a 
> throwing function) produces an edge from there to the catch block.

I know the story. It is aging. I'm telling the facts. It turns out that 
modern compilers have made a lot of progress in the area.


More information about the Digitalmars-d mailing list