[Issue 14150] /library/ Documentation Pages be Brokened

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14150

Vladimir Panteleev  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WORKSFORME

--- Comment #3 from Vladimir Panteleev  ---
https://github.com/D-Programming-Language/dlang.org/pull/901

--


[Issue 14275] Qualified package protection for aggregate member doesn't work

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14275

--- Comment #2 from Dicebot  ---
https://github.com/D-Programming-Language/dmd/pull/4476

--


[Issue 14275] Qualified package protection for aggregate member doesn't work

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14275

Dicebot  changed:

   What|Removed |Added

   Keywords||pull

--


[Issue 14275] Qualified package protection for aggregate member doesn't work

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14275

--- Comment #1 from Dicebot  ---
Bug is in usage of this access.c function:

265 /
266  * Determine if scope sc has package level access to s.
267  */
268 bool hasPackageAccess(Scope *sc, Dsymbol *s)

It is getting called for aggregate symbol too, even if it is public itself,
assuming package protection.

PR incoming.

--


[Issue 14275] New: Qualified package protection for aggregate member doesn't work

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14275

  Issue ID: 14275
   Summary: Qualified package protection for aggregate member
doesn't work
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: major
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: pub...@dicebot.lv

>From http://forum.dlang.org/post/wvfytekpmzeegeuvn...@forum.dlang.org


module A.B.Foo;

import core.stdc.stdio : printf;

struct Foo {
   package(A) void foo() {
   printf("Hallo\n");
   }
}

package(A) void bar() {
   printf("Hallo\n");
}


and


module A.C.Bar;

import A.B.Foo;

void main() {
   Foo f;
   f.foo();
   bar();
}


The call of bar() works, but f.foo() triggers the error:
Error: struct A.B.Foo.Foo member foo is not accessible

--


[Issue 11530] need gdb test suite

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=11530

Martin Nowak  changed:

   What|Removed |Added

Summary|need gdb dwarf test suite   |need gdb test suite

--


[Issue 14274] New: tools/update.sh must install and use dmd 2.066.1 if not present

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14274

  Issue ID: 14274
   Summary: tools/update.sh must install and use dmd 2.066.1 if
not present
   Product: D
   Version: D2
  Hardware: x86
OS: Mac OS X
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: tools
  Assignee: nob...@puremagic.com
  Reporter: and...@erdani.com

Trying to install dmd HEAD on a fresh ubuntu machine now requires a preexisting
installation of dmd 2.066.1. tools/update.sh should detect if dmd is missing
and automatically clone it and use it (similar to dlang.org/posix.mak).

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #19 from Dicebot  ---
(In reply to Ali Cehreli from comment #18)
> I think this boils down to whether an enum's conversion to its base type is
> an implicit cast (an rvalue), versus the enum itself (an lvalue). (Steven
> says it's the latter.)
> 
> Also, does anyone know what bug fix this was originally about? Perhaps that
> bug was invalid?
> 
> Ali

Kenji is likely to know but I will do the bisection if he won't chime in soon
:)

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #18 from Ali Cehreli  ---
I think this boils down to whether an enum's conversion to its base type is an
implicit cast (an rvalue), versus the enum itself (an lvalue). (Steven says
it's the latter.)

Also, does anyone know what bug fix this was originally about? Perhaps that bug
was invalid?

Ali

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #17 from Dicebot  ---
Also, please, can we discuss the final switch / enum operation issue somewhere
else? It is unrelated and only makes more difficult to follow relevant
discussion.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #16 from Dicebot  ---
(In reply to Kenji Hara from comment #8)
> (In reply to Dicebot from comment #7)
> > unless it compromises program correctness (memory corruption, wrong
> > codegen etc).
> 
> In 2.066 and earlier, the program correctness had been compromised and
> generated wrong code. So the bug should be fixed immediately in the 2.067
> release.
> 
> I'm not sure why you think the bug is trivial.

Slightly modified version of original snippet:

enum Bits: ulong
{
none = 0
}

void hasBit(ref ulong rBits,)
{
rBits = 424242;
}

void main()
{
Bits bits;
hasBit(bits);
assert(bits == 424242);
}

What in your opinion compromises program correctness here? This code works in
2.066 and works as intended by author, reinterpreting memory taken by `bits` as
ulong (as those are binary identical). There is not undefined behavior, no
memory corruption, no bug in application logic. Only issue is the fact that D
type system was not supposed to work in such permissive way.

--


[Issue 14273] New: Predicates for static assert pass depending on order of asserts

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14273

  Issue ID: 14273
   Summary: Predicates for static assert pass depending on order
of asserts
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: monkeywork...@hotmail.com

template canBeAlias(T...)
if (T.length == 1)
{
enum canBeAlias = is(typeof({ alias _ = T[0]; }));
}

static assert(canBeAlias!(canBeAlias!canBeAlias));
//Error: static assert (!true) is false
static assert(!canBeAlias!true);

If we switch the order:

static assert(!canBeAlias!true);
//Error: static assert (canBeAlias!(true)) is false
static assert(canBeAlias!(canBeAlias!canBeAlias));

--


[Issue 13681] @safe empty writeln

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13681

--- Comment #1 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/e601077b8618c595fa51807a85c54f8c4e32ca9a
make 0-arg writeln @trusted: Fix Issue 13681

https://github.com/D-Programming-Language/phobos/commit/38453e82adfdcba8d5d817fd8404acf8edeb04f3
Merge pull request #3046 from John-Colvin/patch-13

make 0-arg writeln @trusted: Fix Issue 13681 take 2

--


[Issue 13681] @safe empty writeln

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13681

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--


[Issue 14272] DMD segfault in in Dsymbol::checkDeprecated(Loc, Scope*) on possibly invalid code

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14272

Nicolas Sicard  changed:

   What|Removed |Added

   Keywords||ice

--


[Issue 14272] New: DMD segfault in in Dsymbol::checkDeprecated(Loc, Scope*) on possibly invalid code

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14272

  Issue ID: 14272
   Summary: DMD segfault in in Dsymbol::checkDeprecated(Loc,
Scope*) on possibly invalid code
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: normal
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: dran...@gmail.com

---
struct A(int tag)
{
enum int tag = tag;
}

alias A1 = A!1;
---

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #15 from monkeywork...@hotmail.com ---
(In reply to Dicebot from comment #3)
> It shouldn't compile but, same as with other such changes, it needs
> deprecation stage.

That would imply that deprecations are ever done in D ;-) How long has it been
now since it was decided that delete will be deprecated?

--


[Issue 14271] New: DMD 2.067-b4: strange behaviour of new package syntax

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14271

  Issue ID: 14271
   Summary: DMD 2.067-b4: strange behaviour of new package syntax
   Product: D
   Version: D2
  Hardware: x86_64
OS: All
Status: NEW
  Severity: enhancement
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: rswhi...@gmail.com

Code:

module A.B.Foo;

import core.stdc.stdio : printf;

struct Foo {
package(A) void foo() {
printf("Hallo\n");
}
}

package(A) void bar() {
printf("Hallo\n");
}


and


module A.C.Bar;

import A.B.Foo;

void main() {
Foo f;
f.foo();
bar();
}


The call to bar works, but the call to foo returns the following error message:
Error: struct A.B.Foo.Foo member foo is not accessible

--


[Issue 12420] [AA] Can't set associative array with array as key value using key type

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12420

--- Comment #12 from Steven Schveighoffer  ---
(In reply to Denis Shelomovskij from comment #11)
> 
> But htis issue even not about this. AA's key type is `const char[]` and
> `char[]` is implicitly convertible to `const char[]` anyway. So this issue
> is about error in type checking and error in error message. )

OK, I didn't notice that aspect, yes that is even more perplexing than the
issue of requiring const. In fact, a library-based type would solve that too :)

--


[Issue 12420] [AA] Can't set associative array with array as key value using key type

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12420

--- Comment #11 from Denis Shelomovskij  ---
(In reply to Steven Schveighoffer from comment #10)
> (In reply to Denis Shelomovskij from comment #9)
> 
> > I can't believe anyone can accept bahaviour shown in Comment 6.
> 
> I agree with you, and I have argued as much in the NG. The compiler should
> either enforce immutability, or not care. Enforcing const has all of the
> annoyance, with none of the guarantee.

But htis issue even not about this. AA's key type is `const char[]` and
`char[]` is implicitly convertible to `const char[]` anyway. So this issue is
about error in type checking and error in error message. )

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #14 from Steven Schveighoffer  ---
(In reply to Ali Cehreli from comment #13)
> If the implicitly-converted value is an rvalue (as it is), where is it
> stored to take the reference of?

No, an enum is a derivative. It's just like you can pass a class reference as
Object without consequence. Where you run into issues is if you have a
REFERENCE to a class reference.

So the implicit casting is not because enum converts to long (for example),
it's because enum IS a long.

And in addition, enum does not allow you to really treat it any differently
than the base type. You can't add any features that "wouldn't work" for a long,
for instance.

--


[Issue 12420] [AA] Can't set associative array with array as key value using key type

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=12420

Steven Schveighoffer  changed:

   What|Removed |Added

 CC||schvei...@yahoo.com

--- Comment #10 from Steven Schveighoffer  ---
(In reply to Denis Shelomovskij from comment #9)

> I can't believe anyone can accept bahaviour shown in Comment 6.

I agree with you, and I have argued as much in the NG. The compiler should
either enforce immutability, or not care. Enforcing const has all of the
annoyance, with none of the guarantee.

However, practicality dictates that we cannot force immutability on everyone
who wants to use an AA. In particular, immutable classes are nearly useless.

I would like to see AA's remove the const enforcement. I'm not sure how I feel
about immutable enforcement, but it would be a nice option to add once AA's are
fully library types.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #12 from Steven Schveighoffer  ---
(In reply to Jonathan M Davis from comment #10)
> Personally, I think that all operations that the compiler can't guarantee
> will result in a valid enum value for an enum type should result in the base
> type of the enum rather than the enum type - without that, stuff like final
> switch is completely broken - but there's definitely dissent on that, and
> it's been argued about in the newsgroup.

The OP's case has nothing to do with final switch. The reality is that people
use enums for reasons other than final switch or even just individual values
(e.g. bitfields).

But I don't see how final switch can be "fixed", I can't imagine a case where
it's worth not checking for the default case in a final switch.

--


[Issue 14264] Destructor not called when struct is returned from a parenthesis-less function call

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14264

--- Comment #8 from Ketmar Dark  ---
(In reply to Kenji Hara from comment #7)
> If you consider to start contribution to the dmd codebase for the bugfix,
> It's very glad to us.

i'm slowly working on my "aliced" patchset, developing deeper understanding of
codebase on my way. when i see the bug in DMD, it affects both DMD and Aliced,
so i'm trying to at least localise it.

writing my findings here, by the way, greatly helps, as usually someone more
knowledgeable than me tells me which of my assumptions were correct and which
were wrong. thank you and all other people for that.

sadly, i don't want to use github, so i can't actively contribute. but i like
to read your patches (and i usually incorporating most of them into Aliced
almost immediately ;-), sometimes even a simple fix makes "aha! so *that* is
the way it supposed to work!"

--


[Issue 14267] [REG2.067beta2] ICE when determining if a function can be inlined

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14267

--- Comment #2 from github-bugzi...@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/e5e7ddca3fd90a8fc473a594efd9204fc6818f73
fix Issue 14267 - ICE when determining if a function can be inlined

https://github.com/D-Programming-Language/dmd/commit/ee24a3e7e7123925fa6d6f7569115ed2e1435718
Merge pull request #4471 from 9rnsr/fix14267

[REG2.067beta2] Issue 14267 - ICE when determining if a function can be inlined

--


[Issue 14264] Destructor not called when struct is returned from a parenthesis-less function call

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14264

--- Comment #7 from Kenji Hara  ---
(In reply to Ketmar Dark from comment #6)
> > The wrong call order has been there before the my first contribution for dmd
> > codebase.
> 
> to be clear: i didn't mean that this was the code you wrote. what i mean is
> that you have excellent and very deep understanding of compiler code, so you
> can answer on such simple questions as mine in no time.
> 
> so "i'm not Kenji" means that "i don't have Kenji's understanding of the
> codebase". ;-)
> 
> sorry if it looks like i'm blaiming you. it was the exactly opposite, i was
> praising your knowledge and contributions. ;-)

Don't worry, I'm precisely understanding your intention of the comment. I meant
that I didn't notice the bug until now, and I'm not perfect.

If you consider to start contribution to the dmd codebase for the bugfix, It's
very glad to us.

--


[Issue 14264] Destructor not called when struct is returned from a parenthesis-less function call

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14264

--- Comment #6 from Ketmar Dark  ---
> The wrong call order has been there before the my first contribution for dmd
> codebase.

to be clear: i didn't mean that this was the code you wrote. what i mean is
that you have excellent and very deep understanding of compiler code, so you
can answer on such simple questions as mine in no time.

so "i'm not Kenji" means that "i don't have Kenji's understanding of the
codebase". ;-)

sorry if it looks like i'm blaiming you. it was the exactly opposite, i was
praising your knowledge and contributions. ;-)

--


[Issue 9449] Static arrays of 128bit types segfault on initialization. Incorrect calling of memset128ii.

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9449

Martin Nowak  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 CC||c...@dawg.eu
 Resolution|--- |FIXED

--- Comment #35 from Martin Nowak  ---
(In reply to Temtaime from comment #34)
> Hi !
> I've hit this bug with GIT HEAD dmd and vibe.d built with win32driver.
> 
> I've disassembled .exe and it crashes with movdqa, the address is misaligned.
> I've changed movdqa opcode to movdqu in dmd's code and all works OK now.

Works with 2.067.0-b4, closing this.
Please open a new ticket if you have this problem on a win32 machine.

--


[Issue 9397] Size error with struct with ctor and self-typed nested enum

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=9397

Kenji Hara  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #10 from Kenji Hara  ---


*** This issue has been marked as a duplicate of issue 6766 ***

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc

--- Comment #11 from bearophile_h...@eml.cc ---
(In reply to Jonathan M Davis from comment #10)
> Personally, I think that all operations that the compiler can't guarantee
> will result in a valid enum value for an enum type should result in the base
> type of the enum rather than the enum type - without that, stuff like final
> switch is completely broken - but there's definitely dissent on that, and
> it's been argued about in the newsgroup.

I agree with Jonathan, of course. Fixing final switch is important.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #10 from Jonathan M Davis  ---
Personally, I think that all operations that the compiler can't guarantee will
result in a valid enum value for an enum type should result in the base type of
the enum rather than the enum type - without that, stuff like final switch is
completely broken - but there's definitely dissent on that, and it's been
argued about in the newsgroup.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

Steven Schveighoffer  changed:

   What|Removed |Added

 CC||schvei...@yahoo.com

--- Comment #9 from Steven Schveighoffer  ---
So if we examine why we don't allow ref to implicitly convert, it mostly has to
do with preventing one from replacing the data referred to with a value that's
valid for the base type, but invalid for the derived type. This is especially
important for classes and pointers, because the pointer means completely
different things as a base or derived type.

However, we have somewhat of a unique situation with enum:

1. An enum is GUARANTEED to be the same size as it's "base" type, and have the
same representation.
2. An enum is GUARANTEED to behave exactly the same way in terms of operators
as its base type.
3. An enum is frequently used as a simple typedef, allowing one to define a new
type of "int" e.g. with extra static values.

I think you can make cases either way. The deprecation of typedef has kind of
forced people into using enum as a "poor man's typedef". But clearly, there is
no inherent danger in allowing ref of base type to bind to an enum, as the
compiler already cannot make any assumptions about enums that are different
from the base type. I would tend to say we should revert the restriction, even
though I see and somewhat agree with the reasoning behind it. It seems
inconsistent to say "We allow you to do enumvar |= somelong" and still type it
as the enum, but we can't allow you arbitrary access via long.

I would love to see a mechanism to allow enums to be further classified. In
other words, what is allowed with this enum type? How is it intended to be
used? This would give more clarity to how enum types are supposed to be used,
and how the compiler can restrict usage.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #8 from Kenji Hara  ---
(In reply to Dicebot from comment #7)
> unless it compromises program correctness (memory corruption, wrong
> codegen etc).

In 2.066 and earlier, the program correctness had been compromised and
generated wrong code. So the bug should be fixed immediately in the 2.067
release.

I'm not sure why you think the bug is trivial.

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #10 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/dlang.org

https://github.com/D-Programming-Language/dlang.org/commit/cc8d8123ef0dff1705e729d1faad2b710639771f
Merge pull request #925 from s-ludwig/master

Issue 14258 - SIGSEGV in dpldocs

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #9 from Sönke Ludwig  ---
Hm, you are right of course, totally forgot about that.

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #8 from Vladimir Panteleev  ---
On Linux, what usually happens upon attempting to commit (write to) a page that
has been overcommitted (COW of a zero page), when there are no free pages and
no pages to swap or reclaim, the OOM killer is invoked and the most
memory-hungry process dies with a SIGSEGV.

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #7 from Sönke Ludwig  ---
My systems all have limited swap space - what would the OS do when all that
memory is filled with data (note that the array that is piled up is actually
written to)?

I've added the termination conditions now and will file a PR as soon as the new
DDOX version is up on code.dlang.org.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #7 from Dicebot  ---
> "For the stability, we have to defer to fix bug by adding deprecation stage"

Yes, unless it compromises program correctness (memory corruption, wrong
codegen etc). It is a normal practice in majority of established languages I am
aware of. There are several reasons for such conservative approach:

1) make possible to use critical fixes immediately without scheduling time for
addressing minor ones
2) make possible to use new version even if dependencies have not been updated
(and are out of your control)
3) give easy quick estimate of what full upgrade will take effort-wise

It all evolves around the idea of introducing time gap when everyone becomes
aware of the issue but is not yet forces to address it immediately to use the
compiler.

For example, our internal D codebase consists from dozens of different projects
with independent maintainers and complicated dependency chains. Any breaking
change means that upgrade effort needs to be done in sync between all those
projects, taking away time from possibly urgent business matters (and it is
almost impossible to find a single moment when none of projects has any urgent
matters). Breaking fix needs to address a very serious problem to be viewed as
worth such trouble among the developers.

Adding deprecation stage allows everyone to switch to new compiler with minor
effort and address all deprecation messages on per-project basis as schedule
for this specific project allows.

I foresee this becoming a major issue once our D2 usage leaves experimental
stage - this is why I am starting to make so much fuss early. I am very sorry
if this sounds overly demanding but current state of affairs is really
problematic.

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #6 from Vladimir Panteleev  ---
Except for address space exhaustion, OutOfMemoryError will never realistically
occur in any OS with overcommit.

--


[Issue 14258] SIGSEGV in dpldocs

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14258

--- Comment #5 from Sönke Ludwig  ---
The crash occurs because the proper termination conditions for recursive macro
calls are not implemented. I'll do that.

There could be an additional issue in the GC/array implementation, though, as I
would have expected an OutOfMemoryError instead of a segmentation fault (except
if the segfault is caused by a stack overflow).

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #6 from Kenji Hara  ---
(In reply to Dicebot from comment #5)
> And this attitude needs to change if D wants to be
> considered stable for production usage for wider audience.

"For the stability, we have to defer to fix bug by adding deprecation stage"?
Deferring bugfix will clearly make compiler unstable. It sounds unreasonable to
me.

--


[Issue 14235] [REG2.066] full-qualified template instantiation misses its error location

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14235

--- Comment #3 from github-bugzi...@puremagic.com ---
Commit pushed to 2.067 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/643ca3f02c237631aa4415386e8abd253f4d66bf
Merge pull request #4452 from 9rnsr/fix14235

[REG2.066] Issue 14235 - full-qualified template instantiation misses its error
location

--


[Issue 13116] Should not be able to return ref to 'this'

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13116

--- Comment #10 from github-bugzi...@puremagic.com ---
Commit pushed to 2.067 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/4d7040a5296a3a5e155b1dd37c0fbad480a2061b
Merge pull request #4463 from MartinNowak/revert3761

Revert "Merge pull request #3761 from quickfur/issue13116"

--


[Issue 14232] redundant attribute 'const'

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14232

github-bugzi...@puremagic.com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--


[Issue 14232] redundant attribute 'const'

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14232

--- Comment #20 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/53c5b59ca83e471fea6e4464862b39e62df0f335
Merge pull request #4458 from
mihails-strasuns-sociomantic/redundant-attrib-deprec

[REG] fix Issue 14232 : redundant attribute 'const'

--


[Issue 14233] [REG2.067b2] Can't build Algebraic!(This[]) anymore

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14233

--- Comment #3 from github-bugzi...@puremagic.com ---
Commit pushed to 2.067 at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/35ccb6aa9360f3d8cd63cb31ea25e7a596546a96
Merge pull request #3030 from 9rnsr/fix14233

[REG2.067b2] Issue 14233 - Can't build Algebraic!(This[]) anymore

--


[Issue 14198] [REG2.067a] Link failure with Variant

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14198

--- Comment #11 from github-bugzi...@puremagic.com ---
Commits pushed to 2.067 at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/4dfde4caab8fb9e12c035784d5ddf33925ea3526
Merge pull request #3038 from WalterBright/fix14198

fix Issue 14198 - [REG2.067a] Link failure with Variant

https://github.com/D-Programming-Language/phobos/commit/b2bbff77fa9eebb072d9c39ee505f9db4f24d997
Merge pull request #3044 from MartinNowak/fixup3038

fixup #3038 add reference to bugzilla issue 14198

--


[Issue 13390] [REG2.066] std.range.cycle ctor fails when empty input passed

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=13390

--- Comment #12 from github-bugzi...@puremagic.com ---
Commit pushed to 2.067 at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/e2d774fc85804ce1eabdaf5f526fb287a2d48417
Merge pull request #3001 from kuettler/fix13390

Fix Issue 13390 - Be explicit about non-empty input and fail early

--


[Issue 14213] Strange deprecated message in std.typecons.Proxy with using method

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14213

--- Comment #4 from github-bugzi...@puremagic.com ---
Commit pushed to 2.067 at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/b8627ba4f639f57a079fbba2b93a913d91404f6b
Merge pull request #3043 from 9rnsr/fix14213

[REG2.067a] Issue 14213 - Strange deprecated message in std.typecons.Proxy with
using method

--


[Issue 14206] cdouble is broken

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14206

--- Comment #1 from github-bugzi...@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/efabbd365e4b46337135240f18ad96fd6d78c921
std.math №3: conj for double and float

Issue 14206 workaround

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #5 from Dicebot  ---
> It's quite normal

It is common, not normal. And this attitude needs to change if D wants to be
considered stable for production usage for wider audience. Fortunately, so far
seem that Martin shares this opinion and we may get a more reasonable approach
in this release.

This fix breaks 100% working code with no preliminary deprecation warning.
Change itself may be completely justified on its own but not justified enough
to break things _immediately_.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

Jonathan M Davis  changed:

   What|Removed |Added

 CC||issues.dl...@jmdavisprog.co
   ||m

--- Comment #4 from Jonathan M Davis  ---
(In reply to Dicebot from comment #3)
> It shouldn't compile but, same as with other such changes, it needs
> deprecation stage.

Deprecation is only done with feature changes. It's quite normal for
"accepts-invalid" bugs to be fixed and just break existing code, because the
code was considered broken to begin with.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

ncras...@gmail.com changed:

   What|Removed |Added

 CC||ncras...@gmail.com

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

Dicebot  changed:

   What|Removed |Added

 CC||pub...@dicebot.lv

--- Comment #3 from Dicebot  ---
It shouldn't compile but, same as with other such changes, it needs deprecation
stage.

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

monkeywork...@hotmail.com changed:

   What|Removed |Added

Summary|Enum is not implicitly  |Enum is not implicitly
   |converted to base type  |converted to base type when
   ||using ref

--


[Issue 14269] Enum is not implicitly converted to base type when using ref

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

--- Comment #2 from monkeywork...@hotmail.com ---
According to Jonathan Davis it should not compile, as there are no implicit
conversions with ref. It *is* a regression in behaviour, though.

--


[Issue 14269] Enum is not implicitly converted to base type

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

Orvid King  changed:

   What|Removed |Added

 CC||blah38...@gmail.com

--- Comment #1 from Orvid King  ---
I would argue that it shouldn't compile, but I'm a weird one.

--


[Issue 14269] New: Enum is not implicitly converted to base type

2015-03-10 Thread via Digitalmars-d-bugs
https://issues.dlang.org/show_bug.cgi?id=14269

  Issue ID: 14269
   Summary: Enum is not implicitly converted to base type
   Product: D
   Version: D2
  Hardware: All
OS: All
Status: NEW
  Severity: regression
  Priority: P1
 Component: DMD
  Assignee: nob...@puremagic.com
  Reporter: monkeywork...@hotmail.com

The following code compiles with 2.066.1 and lower but does not compile with
2.067 Beta 3.

enum Bits: ulong
{
none = 0
}

bool hasBit(ref ulong rBits, ulong rBit)
{
return cast(bool)(rBits & rBit);
}

void main()
{
Bits bits;
hasBit(bits, Bits.none);
}

--