[Issue 6024] Windows 2000 SP4 is not supported any more? And what is still supported?

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6024


Denis Shelomovskij verylonglogin@gmail.com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|WONTFIX |


--- Comment #18 from Denis Shelomovskij verylonglogin@gmail.com 
2012-07-09 10:36:11 MSD ---
(In reply to comment #17)
 It looks like we've decided that Win2k is not supported anymore. We will
 probably go with the official policy of only supporting versions of Windows
 that Microsoft still supports.

Reopened, because the issue is that there is no notes in changelog/download
pages and this confuses D users. As I wrote:
 Please write supported operating systems somewhere in
 plain view (e.g. in Requirements and Downloads section of
 http://www.digitalmars.com/d/2.0/dmd-windows.html). And in write in changelog
 ... OS is not supported any more.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7894] [CTFE] - goto within ForStatement restarts loop

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7894


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

 CC||clugd...@yahoo.com.au


--- Comment #1 from Don clugd...@yahoo.com.au 2012-07-09 01:28:00 PDT ---
Slightly reduced test case:

int bug7894()
{
for (int k = 0; k  2; ++k) {
goto Lagain;
Lagain: ;
}
return 1;
}
static assert( bug7894() );

Actually the loop initializer isn't reinterpreted after each goto. What's
happening is that the increment is skipped.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] New: Provide an intutive way to clear all entries in Associative Array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363

   Summary: Provide an intutive way to clear all entries in
Associative Array
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: pun...@coverify.org


--- Comment #0 from Puneet Goel pun...@coverify.org 2012-07-09 06:22:08 PDT 
---
Deleting all the entries from an associative array is not intuitive. This has
been discussed at the D forum here:
http://forum.dlang.org/thread/iu3ll6$2d48$1...@digitalmars.com

I suggest the following syntax should work

int[string] aa;
aa[foo] = 1;
aa = []; // clear all array entries


At this point only this works. I think this is not very intuitive.

int[string] aa;
int[string] empty;

aa[foo] = 1;
aa = empty;

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] Provide an intutive way to clear all entries in Associative Array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363


timon.g...@gmx.ch changed:

   What|Removed |Added

 CC||timon.g...@gmx.ch


--- Comment #1 from timon.g...@gmx.ch 2012-07-09 06:49:35 PDT ---
aa.clear() should work.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] Provide an intutive way to clear all entries in Associative Array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363



--- Comment #2 from Puneet Goel pun...@coverify.org 2012-07-09 07:11:51 PDT 
---
(In reply to comment #1)
 aa.clear() should work.

I had not tried it because the forum topic (only one year old) said that it
does not worl. But it does seem too work now.

Can we add that to the Assoc array documentation here
http://dlang.org/hash-map.html ?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] Empty array literal does not implicitly convert to associative array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com
Summary|Provide an intutive way to  |Empty array literal does
   |clear all entries in|not implicitly convert to
   |Associative Array   |associative array


--- Comment #3 from yebblies yebbl...@gmail.com 2012-07-10 01:54:12 EST ---
(In reply to comment #0)
 aa = []; // clear all array entries
 

This should probably work.

 
 At this point only this works. I think this is not very intuitive.
 
 int[string] aa;
 int[string] empty;
 
 aa[foo] = 1;
 aa = empty;

try

aa = null;

But be careful, don't forget AAs are reference types.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6834] std.stdio conflicts with core.stdc.stdio

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6834


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||yebbl...@gmail.com
 Resolution||INVALID


--- Comment #5 from yebblies yebbl...@gmail.com 2012-07-10 01:59:56 EST ---
This is not a bug.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6186] Struct destructor is not called on out parameter

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6186


Benjamin Thaut c...@benjamin-thaut.de changed:

   What|Removed |Added

 CC||c...@benjamin-thaut.de


--- Comment #3 from Benjamin Thaut c...@benjamin-thaut.de 2012-07-09 09:22:23 
PDT ---
Why is the github merge request closed? This issue is not fixed yet and the
current behaviour leads to really strange bugs...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6857] Precondition contract checks should be statically bound.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6857



--- Comment #76 from yebblies yebbl...@gmail.com 2012-07-10 02:54:06 EST ---
(In reply to comment #55)
 
 Unfortunately, I do not currently see a reasonable way of implementing this.
 Fortunately, as is it does not inhibit correct programs, it only accepts some
 invalid ones.

I can't see any way to do it without changing the abi for virtual functions
with contracts.
But, if changing the abi was ok, I think something like this would work:

class A
{
   void func(..., __in_contract_ptr)
   {
  void __nested_in_contract_A_func() { ... }
  auto __in_contract = __nested_in_contract_A_func;
  __in_contract.ptr = ptr;
  __in_contract();
  ...
   }
}

class B : A
{
   void func(..., __in_contract_ptr)
   {
  void __nested_in_contract_B_func() { ... }
  auto __in_contract = __nested_in_contract_B_func;
  __in_contract.ptr = ptr;
  __in_contract();
  ...
   }
}

void main()
{
   B b = new B();
   b.func(..., __nested_in_contract_B_func.ptr);
   A a = b;
   a.func(..., __nested_in_contract_A_func.ptr);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] Empty array literal does not implicitly convert to associative array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #4 from Jonathan M Davis jmdavisp...@gmx.com 2012-07-09 10:45:46 
PDT ---
 aa.clear() should work.

I believe that that's the same as setting it to null. It doesn't actually
remove anything from the AA. It just makes that reference null. If you want to
actually remove all of the elements from the AA, you currently have to iterate
over them and call remove on each one.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8363] Empty array literal does not implicitly convert to associative array

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8363



--- Comment #5 from Jonathan M Davis jmdavisp...@gmx.com 2012-07-09 11:02:47 
PDT ---
However, with clear being renamed to destroy for 2.060 (with clear scheduled
for deprecation), I don't see any problem with adding a clear function to AAs
which actually clears the AA (that's probably what most everyone using clear on
AAs wanted anyway). Presumably, that could be done as part of the AA
implementation redesign that's currently being worked on.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6857] Precondition contract checks should be statically bound.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6857



--- Comment #77 from Stewart Gordon s...@iname.com 2012-07-09 11:12:52 PDT ---
(In reply to comment #76)
 I can't see any way to do it without changing the abi for virtual functions
 with contracts.

What about my suggestion of comment 61?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6857] Precondition contract checks should be statically bound.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6857


yebblies yebbl...@gmail.com changed:

   What|Removed |Added

 CC||yebbl...@gmail.com


--- Comment #78 from yebblies yebbl...@gmail.com 2012-07-10 04:43:07 EST ---
(In reply to comment #77)
 (In reply to comment #76)
  I can't see any way to do it without changing the abi for virtual functions
  with contracts.
 
 What about my suggestion of comment 61?

As Walter said, that requires argument forwarding, which introduces copying
problems and doesn't work with variadics.  The precondition needs to be
evaluated in the context of the function.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8364] New: Allow exclamation mark in template definition

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8364

   Summary: Allow exclamation mark in template definition
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: qwertie...@gmail.com


--- Comment #0 from David Piepgrass qwertie...@gmail.com 2012-07-09 13:12:42 
PDT ---
The syntax of templates should be similar at the definition as it is at the
call site:

T sum!(T,R)(R range) if (isInputRange!R...) { ... }

Of course, the existing syntax must be kept too.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8364] Allow exclamation mark in template definition

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8364


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #2 from Jonathan M Davis jmdavisp...@gmx.com 2012-07-09 13:25:16 
PDT ---
Of what value is that? The current situation is wonderfully unambiguous.

This proposal would make the parser's life harder and would probably make it so
that the grammar could no longer be context free (which would be very bad). And
from the perspective of the programmer (not just the compiler), it's _useful_
to be able to tell the difference between a template and a template
instantiation at a glance.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8364] Allow exclamation mark in template definition

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8364


timon.g...@gmx.ch changed:

   What|Removed |Added

 CC||timon.g...@gmx.ch


--- Comment #3 from timon.g...@gmx.ch 2012-07-09 13:36:26 PDT ---
(In reply to comment #2)
 Of what value is that? The current situation is wonderfully unambiguous.
 

True.

 This proposal would make the parser's life harder

Not really. Having this as the only template declaration syntax would even make 
the parser's life easier. (and if both were legal, parsing the kind that has 
the '!' would be slighly more efficient.)

 and would probably make it so that the grammar could no longer be context 
 free 

This is not the case. The grammar would stay context free.

 (which would be very bad).
 And from the perspective of the programmer (not just the compiler), it's 
 _useful_ to be able to tell the difference between a template and a template
 instantiation at a glance.

The proposal does not put this ability in danger.

Anyway, I don't prefer either scheme and in my opinion it is fine to either 
leave the template declaration grammar as it is, or to change it to always
require '!'. The latter is not going to happen though.

(I remember that when I wrote my very first function template in D, I 
used the proposed syntax and was confused that it didn't work.)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8365] New: Static fixed size array of enums initialization fails

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8365

   Summary: Static fixed size array of enums initialization fails
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: tommitiss...@hotmail.com


--- Comment #0 from Tommi tommitiss...@hotmail.com 2012-07-09 14:49:44 PDT ---
module main;

immutable(int[2]) ints =
{
int[2] tempInts; // #0: OK
for (int i = 0; i  2; ++i)
{
tempInts[i] = i;
}
return cast(immutable) tempInts;
}(); // #1: OK

enum MyEnum { first, second, third, fourth }

immutable(MyEnum[2]) enums =
{
MyEnum[2] tempEnums; // #2
for (int i = 0; i  2; ++i)
{
tempEnums[i] = cast(MyEnum) i;
}
return cast(immutable) tempEnums;
}(); // #3

void main(string[] args)
{
}

// #2: Error: Array length mismatch assigning [0..0] to [0..2]
// #3: Error: called from here: (*delegate pure nothrow @safe
immutable(MyEnum[2u])()

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6857] Precondition contract checks should be statically bound.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6857



--- Comment #79 from Stewart Gordon s...@iname.com 2012-07-09 15:22:23 PDT ---
(In reply to comment #78)
 As Walter said, that requires argument forwarding, which introduces copying
 problems and doesn't work with variadics.

I thought I'd debunked that, but you're right.  By my proposal, user code would
be calling either foo_dbc or foo depending on whether it's compiled in dev or
release mode.  And foo_dbc forwards to foo.

But it does seem to be down to two problems with D's design:
- structs aren't guaranteed to be safe to just bit-copy (this problem was
introduced in D2)
- we have variadics that are really just C's variadics with typeinfo added

Something else I should've realised earlier: Why do D class methods need to be
directly callable from C?  (How does C code hold a reference to a D object,
anyway?)  Indeed, is even C++ designed to accommodate this?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 7021] Structs with disabled default constructors can be constructed without calling a constructor.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7021


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com
   Severity|normal  |major


--- Comment #1 from Jonathan M Davis jmdavisp...@gmx.com 2012-07-09 20:22:25 
PDT ---
This works just fine too (with dmd 2.060HEAD)

struct Foo
{
@disable this();
}

void main()
{
auto foo = Foo.init;
}

It looks to me like @disable this() isn't working at all.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 6857] Precondition contract checks should be statically bound.

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6857



--- Comment #80 from yebblies yebbl...@gmail.com 2012-07-10 14:02:54 EST ---
(In reply to comment #79)
 (In reply to comment #78)
 But it does seem to be down to two problems with D's design:
 - structs aren't guaranteed to be safe to just bit-copy (this problem was
 introduced in D2)
 - we have variadics that are really just C's variadics with typeinfo added
 

We also have C's variadics.

 Something else I should've realised earlier: Why do D class methods need to be
 directly callable from C?  (How does C code hold a reference to a D object,
 anyway?)  Indeed, is even C++ designed to accommodate this?

COM classes defined in D are callable from C (and you could define other
classes the same way).

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8366] New: Overriding const member function in conjunction with mutable overload causes a strange error

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8366

   Summary: Overriding const member function in conjunction with
mutable overload causes a strange error
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: blocker
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k.hara...@gmail.com


--- Comment #0 from Kenji Hara k.hara...@gmail.com 2012-07-09 21:26:12 PDT ---
I think this problem blocks 2.060 release.

code:

class C {
// overrides Object.opEquals
bool opEquals(const Object o) const {}

// introduce mutable overload
bool opEquals(const Object o) {}  // line8
}
void main(){}

output:

test.d(8): Error: function test.C.opEquals multiple overrides of same function

The second opEquals should *introduce* new member function. But, by the const
attribute inference, it is determined as *multiple overrides.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 8366] Overriding const member function in conjunction with mutable overload causes a strange error

2012-07-09 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8366


Benjamin Thaut c...@benjamin-thaut.de changed:

   What|Removed |Added

 CC||c...@benjamin-thaut.de


--- Comment #1 from Benjamin Thaut c...@benjamin-thaut.de 2012-07-09 22:01:38 
PDT ---
I reported the same issue with shared a while back, and it was stated that this
is intentional.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---