Thread overview
Phobos warnings in DMD 1.029 and 2.013
April 28, 2008
I updated my packages for dmd/dmd2, and here's
what I got when building them --with warnings:


phobos
======
internal/critical.c:138: warning: implicit declaration of function `pthread_mutexattr_settype'
internal/monitor.c:138: warning: implicit declaration of function `pthread_mutexattr_settype'
warning - gcx.d(1576): Error: switch statement has no default
warning - gcx.d(1576): Error: statement is not reachable
warning - gcx.d(1576): Error: switch statement has no default
warning - gcx.d(1576): Error: statement is not reachable
warning - gcx.d(1576): Error: switch statement has no default
warning - gcx.d(1576): Error: statement is not reachable

phobos2
=======
warning - std/regexp.d(636): class std.regexp.RegExp Object opEquals is hidden in RegExp
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream read is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/stream.d(2217): class std.stream.EndianStream Stream write is hidden in EndianStream
warning - std/syserror.d(11): class std.syserror.SysError Object toString is hidden in SysError
warning - internal/object.d(738): class object.TypeInfo_Function TypeInfo next is hidden in TypeInfo_Function
warning - internal/object.d(763): class object.TypeInfo_Delegate TypeInfo next is hidden in TypeInfo_Delegate

Not sure why warnings can't be enabled when testing,
but here's again my feeble attempts at patching them:

http://www.algonet.se/~afb/d/dmd-0.141-cwarn.patch
http://www.algonet.se/~afb/d/dmd-1.029-dwarn.patch
http://www.algonet.se/~afb/d/dmd-2.013-dwarn.patch

--anders

PS.
The unittest in DMD 2.013 doesn't pass "toStringz",
and then seems to be hanging somewhere after that ?
April 28, 2008
"Anders F Björklund" wrote
>
> I updated my packages for dmd/dmd2, and here's
> what I got when building them --with warnings:
>
>
> phobos
> ======
> internal/critical.c:138: warning: implicit declaration of function
> `pthread_mutexattr_settype'
> internal/monitor.c:138: warning: implicit declaration of function
> `pthread_mutexattr_settype'
> warning - gcx.d(1576): Error: switch statement has no default
> warning - gcx.d(1576): Error: statement is not reachable
> warning - gcx.d(1576): Error: switch statement has no default
> warning - gcx.d(1576): Error: statement is not reachable
> warning - gcx.d(1576): Error: switch statement has no default
> warning - gcx.d(1576): Error: statement is not reachable
>
> phobos2
> =======
> warning - std/regexp.d(636): class std.regexp.RegExp Object opEquals is
> hidden in RegExp
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream read is
> hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/stream.d(2217): class std.stream.EndianStream Stream write
> is hidden in EndianStream
> warning - std/syserror.d(11): class std.syserror.SysError Object toString
> is hidden in SysError
> warning - internal/object.d(738): class object.TypeInfo_Function TypeInfo
> next is hidden in TypeInfo_Function
> warning - internal/object.d(763): class object.TypeInfo_Delegate TypeInfo
> next is hidden in TypeInfo_Delegate
>
> Not sure why warnings can't be enabled when testing,
> but here's again my feeble attempts at patching them:
>
> http://www.algonet.se/~afb/d/dmd-0.141-cwarn.patch http://www.algonet.se/~afb/d/dmd-1.029-dwarn.patch http://www.algonet.se/~afb/d/dmd-2.013-dwarn.patch
>

For the EndianStream/TypeInfo problems, this can be fixed easier than what you suggest by aliasing the parent versions of the method.

See http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=68448

-Steve


April 28, 2008
Steven Schveighoffer wrote:

> For the EndianStream/TypeInfo problems, this can be fixed easier than what you suggest by aliasing the parent versions of the method.

I didn't have much luck with "alias" for the toString,
so went with the copy-and-paste during my quick fixup.

My question was more the same that it was years ago:
why isn't Phobos able to compile with warnings enabled ?

--anders