On processors for D ~ decoupling

Thomas Kuehne thomas-dloop at kuehne.cn
Fri Apr 7 13:22:56 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Walter Bright schrieb am 2006-04-06:
> Although there is a lot of code in std.string, unreferenced free 
> functions in it should be discarded by the linker. A check of the 
> generated .map file should verify this - it is certainly supposed to 
> work that way.

That's not what is happening on Linux:

> extern(C) int printf(char* x, ...){
>	*(cast(char*)0) = 'a';
> }
>
> int main(){
>	return 0;
> }

Symbols present in the executeable from std.string:
_D3std6string10capitalizeFAaZAa
_D3std6string10countcharsFAaAaZk
_D3std6string10expandtabsFAaiZAa
_D3std6string10splitlinesFAaZAAa
_D3std6string11removecharsFAaAaZAa
_D3std6string12replaceSliceFAaAaAaZAa
_D3std6string15StringException5_ctorFAaZC3std6string15StringException
_D3std6string2trFAaAaAaAaZAa
_D3std6string3cmpFAaAaZi
_D3std6string4atofFAaZe
_D3std6string4atoiFAaZl
_D3std6string4chopFAaZAa
_D3std6string4findFAaAaZi
_D3std6string4findFAawZi
_D3std6string4icmpFAaAaZi
_D3std6string4joinFAAaAaZAa
_D3std6string4succFAaZAa
_D3std6string4wrapFAaiAaAaiZAa
_D3std6string5chompFAaAaZAa
_D3std6string5countFAaAaZk
_D3std6string5entabFAaiZAa
_D3std6string5ifindFAaAaZi
_D3std6string5ifindFAawZi
_D3std6string5rfindFAaAaZi
_D3std6string5rfindFAawZi
_D3std6string5splitFAaAaZAAa
_D3std6string5splitFAaZAAa
_D3std6string5stripFAaZAa
_D3std6string5zfillFAaiZAa
_D3std6string6abbrevFAAaZHAaAa
_D3std6string6centerFAaiZAa
_D3std6string6columnFAaiZi
_D3std6string6formatFYAa
_D3std6string6insertFAakAaZAa
_D3std6string6irfindFAaAaZi
_D3std6string6irfindFAawZi
_D3std6string6repeatFAakZAa
_D3std6string6striplFAaZAa
_D3std6string6striprFAaZAa
_D3std6string7iswhiteFwZi
_D3std6string7replaceFAaAaAaZAa
_D3std6string7sformatFAaYAa
_D3std6string7soundexFAaAaZAa
_D3std6string7squeezeFAaAaZAa
_D3std6string7toCharzFAaZPa
_D3std6string7tolowerFAaZAa
_D3std6string7toupperFAaZAa
_D3std6string8capwordsFAaZAa
_D3std6string8ljustifyFAaiZAa
_D3std6string8rjustifyFAaiZAa
_D3std6string8toStringFPaZAa
_D3std6string8toStringFaZAa
_D3std6string8toStringFcZAa
_D3std6string8toStringFdZAa
_D3std6string8toStringFeZAa
_D3std6string8toStringFfZAa
_D3std6string8toStringFgZAa
_D3std6string8toStringFhZAa
_D3std6string8toStringFiZAa
_D3std6string8toStringFjZAa
_D3std6string8toStringFkZAa
_D3std6string8toStringFlZAa
_D3std6string8toStringFlkZAa
_D3std6string8toStringFmZAa
_D3std6string8toStringFmkZAa
_D3std6string8toStringFoZAa
_D3std6string8toStringFpZAa
_D3std6string8toStringFqZAa
_D3std6string8toStringFrZAa
_D3std6string8toStringFsZAa
_D3std6string8toStringFtZAa
_D3std6string8toStringFxZAa
_D3std6string9inPatternFwAAaZi
_D3std6string9inPatternFwAaZi
_D3std6string9isNumericFAC8TypeInfoPvZx
_D3std6string9isNumericFAaxZx
_D3std6string9isNumericFYx
_D3std6string9maketransFAaAaZAa
_D3std6string9toStringzFAaZPa
_D3std6string9translateFAaAaAaZAa


dmd a.d -L--cref:

internal/arraycat.d:101
current:
> throw new Error(std.string.format("lengths don't match for array copy,
> %s = %s", to.length, from.length));

suggested:
> throw new Error("lengths don't match for array copy," ~
> toString(to.length) ~ " = " ~ toString(from.length));

Thomas


-----BEGIN PGP SIGNATURE-----

iD8DBQFENtSR3w+/yD4P9tIRAo7eAJwKqOKEYb8/LPQ0E+wTSZk4yCBnzgCfX0Mi
xuBx2eSSsWztBTJWcHjxuRc=
=dajr
-----END PGP SIGNATURE-----



More information about the Digitalmars-d-announce mailing list