[fpc-devel] implicit generic specialization modeswitch name

Ryan Joseph ryan at thealchemistguild.com
Mon Mar 25 01:44:08 CET 2019


implicitroutinespecialization is one character shorter. ;) It’s maybe more accurate also since Pascal has the distinction between procedure/function.

Because this would be the longest mode switch is this maybe a good candidate for abbreviations? Could be implicitroutinespez or implicitprocspecialization.

There’s the list of other mode switches for some point of reference.

         m_class,               { delphi class model }
         m_objpas,              { load objpas unit }
         m_result,              { result in functions }
         m_string_pchar,        { pchar 2 string conversion }
         m_cvar_support,        { cvar variable directive }
         m_nested_comment,      { nested comments }
         m_tp_procvar,          { tp style procvars (no @ needed) }
         m_mac_procvar,         { macpas style procvars }
         m_repeat_forward,      { repeating forward declarations is needed }
         m_pointer_2_procedure, { allows the assignement of pointers to
                                  procedure variables                     }
         m_autoderef,           { does auto dereferencing of struct. vars }
         m_initfinal,           { initialization/finalization for units }
         m_default_ansistring,  { ansistring turned on by default }
         m_out,                 { support the calling convention OUT }
         m_default_para,        { support default parameters }
         m_hintdirective,       { support hint directives }
         m_duplicate_names,     { allow locals/paras to have duplicate names of globals }
         m_property,            { allow properties }
         m_default_inline,      { allow inline proc directive }
         m_except,              { allow exception-related keywords }
         m_objectivec1,         { support interfacing with Objective-C (1.0) }
         m_objectivec2,         { support interfacing with Objective-C (2.0) }
         m_nested_procvars,     { support nested procedural variables }
         m_non_local_goto,      { support non local gotos (like iso pascal) }
         m_advanced_records,    { advanced record syntax with visibility sections, methods and properties }
         m_isolike_unary_minus, { unary minus like in iso pascal: same precedence level as binary minus/plus }
         m_systemcodepage,      { use system codepage as compiler codepage by default, emit ansistrings with system codepage }
         m_final_fields,        { allows declaring fields as "final", which means they must be initialised
                                  in the (class) constructor and are constant from then on (same as final
                                  fields in Java) }
         m_default_unicodestring, { makes the default string type in $h+ mode unicodestring rather than
                                    ansistring; similarly, char becomes unicodechar rather than ansichar }
         m_type_helpers,        { allows the declaration of "type helper" for all supported types
                                  (primitive types, records, classes, interfaces) }
         m_blocks,              { support for http://en.wikipedia.org/wiki/Blocks_(C_language_extension) }
         m_isolike_io,          { I/O as it required by an ISO compatible compiler }
         m_isolike_program_para, { program parameters as it required by an ISO compatible compiler }
         m_isolike_mod,         { mod operation as it is required by an iso compatible compiler }
         m_array_operators,     { use Delphi compatible array operators instead of custom ones ("+") }


Regards,
	Ryan Joseph




More information about the fpc-devel mailing list