
On Monday 17 September 2007 18:14, skaller wrote:
[...] The algorithm I presented (crudely) goes further. What you're doing is enough for a language that doesn't have to bind to C and/or C++. [...]
I think this is an exaggeration, we do bind to C and do this quite successfully. As long as C has variable argument lists, void* and char* (potentially aliasing *every* data type, this is explicit in the C standards) all over the place in tons of OS calls and library entries, your fine-grained distinction is a bit academic. Look e.g. at dlopen(): It returns a void*, even for functions, which is theoretically wrong, but this doesn't stop *nices from working. ;-) As long as things like this are the case (i.e. forever), C will never have some real overloading, because that would mean invalidating almost every SW out there. C is basically a slighty typed assembler language, nothing more. Granted, the story is different for languages like C++, where type signatures are even manifest in the object files, but we do not bind to C++. Cheers, S.