On 22.04.2011 11:19, Florian Klämpfl wrote:
Am 22.04.2011 11:18, schrieb Florian Klämpfl:
Am 22.04.2011 00:08, schrieb Jonas Maebe:
On 21 Apr 2011, at 23:26, Sven Barth wrote:
On 21.04.2011 21:45, Michael Van Canneyt wrote:
Threefold: a) The compiler's handling of generics is still beta
code in my opinion. As far as I know, the original problem I
reported when writing the docs for them is still not solved.
May I ask out of curiosity which problem you mean?
The main problem with generics as they are implemented in FPC, is
that they are basically macros. That means if you use a type
"tsomerecord" in a generic implementation, and in a unit in which the
generic is specialised another type with that name is visible, this
other type will suddenly be used. The same goes for functions and
every other identifier, because it's a token record/replay
mechanism.
No. The symtablestack state is restore. But this leads to other problems
like overloaded operators for the current type being ignored.
See
http://bugs.freepascal.org/view.php?id=15480
Ok, thanks.
What about the folling idea (this might not sound ideal yet, but it's a
first idea - at least for me ^^):
* scan all symtables for operators for the types that are used for
specialisation
* add these operators to a temporary symtable
* insert this symtable into the restored stack (currently I don't know
the best location to put it in though)
* free the temporary symtable (without freeing the operator symbols of
course) when the stack is reset
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal