Hello together!
This week I found some time to continue enabling RTL features in Native NT. While doing that I stumpled upon some feature dependencies that need to be discussed or solved.
* FEATURE_INITFINAL: What is this used for? I found no usage of it anywhere in the rtl...
* FEATURE_DYNLIBS: Same as above (are those two used inside the compiler?)
* FEATURE_RTTI (needs ANSISTRINGS, DYNARRAYS, VARIANTS and CLASSES): do you think that we need everything to use RTTI successfully? Especially DYNARRAYS and VARIANTS should be optional...
* FEATURE_CLASSES (needs EXCEPTIONS and VARIANTS): The variants are needed, because in inc/objpas.inc DoDispCallByIDError and fpc_dispatch_by_id need the type PDispDesc which is defined in inc/varianth.inc. Do you think this can be solved somehow (I just put ifdefs around the two methods)? VARIANTS shouldn't be needed when you want to use CLASSES
* FEATURE_EXCEPTIONS (needs CLASSES): well... we have a circle here... CLASSES needs EXCEPTIONS and the other way round. In my opinion this should be broken up somehow or we don't need two different features when they must be enabled together.
* (not a FEATURE, but related) objpas/objpas.pp (needs ANSISTRINGS, COMMANDARGS, FILEIO and TEXTIO): The last three features should be optional. If I'm right the compiler does define the FEATURE defines globally, so we can check for the corresponding ones in the objpas unit to enable only those methods that are actually implemented.
I can provide patches for CLASSES needing VARIANTS and the objpas unit, but I want your opinion about these dependencies first.
Regards,
Sven
