Am 23.06.2018 um 10:48 schrieb Jonas Maebe:

I would propose to switch all targets to use use ansistrings for symbol names.

Is this the consensus?

Personally, if I had any stake in this, I would be against it. I mean, FPC is already slower than DCC.

I doubt this is a major contributor to that fact (especially since implicit exception frames are disabled for the compiler binary, so ansistrings don't result in extra exception frames). Additionally, this hashing makes it impossible to provide debuggers with a function to reverse-map function symbol names onto class/method/type-overload, which is a pain.

In theory, you could probably add support to debuggers to ignore the symbol names and have them concatenate the class name, method name, and parameter types, reproducing all the same hashing done by the compiler, but in general debuggers don't do this for performance reasons (so you can set breakpoints without parsing the debug information of the entire binary up front).
But aren't there output formats that do have length restrictions for symbol names? I take it that ELF and PE/COFF won't be problematic, but what about those used for OS/2, DOS, etc.?

Regards,
Sven
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to