Minimal druntime?

Paulo Pinto pjmlp at progtools.org
Tue Jul 30 06:40:54 UTC 2019


On Monday, 29 July 2019 at 15:05:15 UTC, Ethan wrote:
> On Sunday, 28 July 2019 at 17:44:38 UTC, Paulo Pinto wrote:
>> So here goes another example, disabling exceptions and RTTI, 
>> which is considered UB as per ISO C++ standard, given that the 
>> standard assumes those features cannot be turned off and the 
>> standard library (as per ISO C++ document) does require them 
>> being present.
>>
>> Or constraing to subsets like Embedded C++ used by Apple's IO 
>> Kit.
>>
>> Disabling exceptions and RTTI, coupled with an alternative 
>> library like EASTL, or Embedded C++ existance, do follow the 
>> same spirit as HPC# and -betterC.
>
> Exceptions basically cost nothing on x64 these days. Structured 
> exception handling hardware support, baybeeeeeee. Leave 
> exceptions on. Either way, if you never try/throw/catch then 
> the code isn't generated.
>
> RTTI as well. Don't have virtuals in your objects? You won't 
> get typeinfo code in your resulting binary. Don't dynamic cast? 
> Compiler won't insert dynamic casts.
>
> This is the "Pay as you go" thing we continually mention in 
> here. Have all the features. Don't use them? Don't pay for them.
>
> Embedded C++, HPC#, and -betterC do not follow this spirit. 
> They are a restrictive subset that for all intents and purposes 
> is a different language made after the fact. Try to use a 
> feature of the full language? Nope, not supported. No pay as 
> you go. Just a compiler error.
>
> EASTL? It does not follow the "pay as you go" spirit. EASTL is 
> a drop-in replacement for STL that followed the API as defined, 
> but replaced the awful memory patterns and added extra methods 
> in to it. Extra methods that showed up in C++ 11 standard. Why 
> are you bringing up EASTL? That thing's ancient history and has 
> known bugs that never got fixed. Had to patch some stuff myself 
> many years ago for a project I was shipping.

To show that also C++ does not follow some high standard that 
doesn't do language subsets in specific domains.

Good luck having that speech in some C++ communities that use 
every possible way to "write C with C++ compiler", explicitly 
turning off compiler features and staying at an arm's length from 
the standard library.

C++Now, CppCon, NDC and Meeting C++ have plenty of talks how to 
advocate to those communities.




More information about the Digitalmars-d mailing list