[Issue 4092] broken memory management for COM objects derived from IUnknown

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4092



--- Comment #1 from Rainer Schuetze r.sagita...@gmx.de 2010-05-01 00:14:19 
PDT ---
I just recently noticed, that AddRef and Release should use addRoot and
removeRoot, not addRange and removeRange.

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


[Issue 4135] blockExit assertion failure

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4135



--- Comment #3 from bearophile_h...@eml.cc 2010-05-01 03:08:37 PDT ---
If you post several modules here then you are asking people to debug your code.

Your last code doesn't show the ICE, it just shows:
test.d(2): Error: undefined identifier s

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


[Issue 4137] New: Undefined identifier error in is(typeof())

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4137

   Summary: Undefined identifier error in is(typeof())
   Product: D
   Version: unspecified
  Platform: x86
OS/Version: Windows
Status: NEW
  Keywords: diagnostic
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-05-01 05:38:35 PDT ---
I don't know if there are ways to solve this problem, I hope this isn't another
situation like bug 3950.

This is wrong D2 code. The template Foo has the type parameter T while inside
it uses the parameter R:


template Foo(T) {
enum bool Foo = is(typeof(R.length));
}
void main() {
assert(Foo!(int[]));
}


The program compiles with no errors with dmd 2.043 and at run time produces:
core.exception.asserter...@test2(5): Assertion failure

But to help debugging, I'd like the compiler to point R as a undefined
identifier (even with the 'did you mean...') at compile-time. Is this possible?

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


[Issue 3971] Syntax semantics for array assigns

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3971



--- Comment #9 from Sobirari Muhomori dfj1es...@sneakemail.com 2010-05-01 
08:14:28 PDT ---
 internally the compiler doesn't distinguish between  x[] and x, where x is a
 dynamic array.
This means, that array ops are a huge hack?

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


[Issue 4137] Undefined identifier error in is(typeof())

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4137


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||bugzi...@digitalmars.com
 Resolution||INVALID


--- Comment #1 from Walter Bright bugzi...@digitalmars.com 2010-05-01 
09:45:29 PDT ---
This is expected  documented behavior. Compilation failures inside is
expressions cause the is expression result to be false. A lot of template code
relies on this.

If you want an error on R being undefined, use it somewhere else in addition to
inside the is expression.

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


[Issue 4118] std.conv.to!SomeStruct(hello) crashes compiler

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4118


Walter Bright bugzi...@digitalmars.com changed:

   What|Removed |Added

 CC||bugzi...@digitalmars.com
 OS/Version|Mac OS X|All


--- Comment #1 from Walter Bright bugzi...@digitalmars.com 2010-05-01 
10:57:58 PDT ---
It dies on Windows, too, so it's not an OSX specific problem.

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


[Issue 4133] Enable __traits on D1

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4133



--- Comment #1 from nfx...@gmail.com 2010-05-01 11:14:41 PDT ---
Created an attachment (id=616)
enable __traits in D1

I figured it was unfair to leave all the work to Walter, so I wrote a patch.

It was simple: mostly I had to remove a bunch of #if DMDV2, and copy some
missing bits from the D2 source tree (which is slightly different from the D1
tree, whatever). The D1 traits.c file was outdated (I don't know why), so I
just appended D2's traits.c to it (to keep the diff non-confusing). Note that I
still made s small change to the copied part, oh well.

I tried all examples from http://www.digitalmars.com/d/2.0/traits.html, and all
seemed to work correctly. Note that you can't write auto b = [
__traits(allMembers, D) ]; in D1, instead you have to use char[][] b = [
__traits(allMembers, D) ]; (array type inference was changed in D2).

This patch is against the dmd 1.059 Beta, which (probably) corresponds dmd svn
revision 461.

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


[Issue 4138] New: Enable __thread storage class (TLS) on D1

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4138

   Summary: Enable __thread storage class (TLS) on D1
   Product: D
   Version: future
  Platform: Other
OS/Version: All
Status: NEW
  Keywords: patch
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: nfx...@gmail.com


--- Comment #0 from nfx...@gmail.com 2010-05-01 11:31:18 PDT ---
Created an attachment (id=617)
__thread on D1

Enable the __thread storage class in D1. This enables D1 programs to optionally
make use of thread local storage (TLS). Note that this also can ease porting D1
programs to D2.

This doesn't break any existing D1 code, as identifiers starting with __ are
compiler reserved.

I appended a patch; it is embarrassingly simple.

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


[Issue 4118] std.conv.to!SomeStruct(hello) crashes compiler

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4118



--- Comment #2 from Walter Bright bugzi...@digitalmars.com 2010-05-01 
11:45:08 PDT ---
changeset 462 - at least it gives an error message now

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


[Issue 3541] Add -oq to dmd (use fully qualified module name as object filename)

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3541



--- Comment #5 from nfx...@gmail.com 2010-05-01 12:00:35 PDT ---
Created an attachment (id=618)
updated patch for dmd 1.059 beta (~ svn 461)

this probably still crashes with win32 patch = not obsoleting mpiepk's patch

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


[Issue 3541] Add -oq to dmd (use fully qualified module name as object filename)

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3541


nfx...@gmail.com changed:

   What|Removed |Added

Attachment #618|application/octet-stream|text/plain
  mime type||
 Attachment #618 is|0   |1
  patch||


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


[Issue 4118] std.conv.to!SomeStruct(hello) crashes compiler

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4118



--- Comment #3 from Michel Fortin michel.for...@michelf.com 2010-05-01 
15:20:03 EDT ---
Ah, great. I can use it now as it no longer crashes.

But I don't think it should give an error, it should just not match the given
template.

The error you added gives a false positive in this case:

---
struct SomeStruct { }

int test(T : T[X], X)(X x) {
return 1;
}
int test(T : SomeStruct, X)(X x) {
return 1;
}

void main() {
auto s = test!SomeStruct(hello);
}
---

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


[Issue 4139] New: Forward reference error in front() of iterable struct

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4139

   Summary: Forward reference error in front() of iterable struct
   Product: D
   Version: unspecified
  Platform: x86
OS/Version: Windows
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-05-01 12:20:53 PDT ---
This is D2 code:


Foo!(TArray) foo(TArray)(TArray r) { // the usual helper function
return Foo!(TArray)(r);
}
struct Foo(TArray) {
TArray arr;
bool empty() { return !arr.length; }
void popFront() { arr = arr[1 .. $]; }
// int front() { return arr[0]; } // OK
auto front() { return arr[0]; } // line 12
}
void main() {
foreach (el; foo([10])) {}
}


DMD 2.043 prints:
test.d(12): Error: forward reference to inferred return type of function call
__r1.front()

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


[Issue 4140] New: Error: non-constant expression hello[1u..__dollar]

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4140

   Summary: Error: non-constant expression hello[1u..__dollar]
   Product: D
   Version: 1.057
  Platform: Other
OS/Version: Linux
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: nfx...@gmail.com


--- Comment #0 from nfx...@gmail.com 2010-05-01 15:24:05 PDT ---
$ cat z.d
const z = hello;
const h = z[1..$];

$ dmd -c z.d
z.d(2): Error: non-constant expression hello[1u..__dollar]

Works with dmd2.
Tested with dmd 1.59 beta (can only select up to 1.057 in bugzilla).

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


[Issue 2928] Swap order of paramaters for std.range's take

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2928


Kyle Foley k-fo...@onu.edu changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


--- Comment #7 from Kyle Foley k-fo...@onu.edu 2010-05-01 16:00:42 PDT ---
Fixed in 2.041

http://digitalmars.com/d/2.0/changelog.html#new2_041

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


[Issue 4141] New: unary ++ (post increment) invokes opBinary

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4141

   Summary: unary ++ (post increment) invokes opBinary
   Product: D
   Version: unspecified
  Platform: x86
OS/Version: Linux
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k-fo...@onu.edu


--- Comment #0 from Kyle Foley k-fo...@onu.edu 2010-05-01 16:22:37 PDT ---
DMD 2.043

struct A
{
int _;

void opBinary(string op, U)(U rhs) { pragma(msg, op); }
}
auto a = A(42);
a++;

---

$ rdmd opbugs.d
++
opbugs.d(10): Error: template opbugs.main.A.opBinary(string op,U) does not
match any function template declaration
opbugs.d(10): Error: template opbugs.main.A.opBinary(string op,U) cannot deduce
template function from argument types !()()

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


[Issue 4142] New: Missing tags in subversion

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4142

   Summary: Missing tags in subversion
   Product: D
   Version: future
  Platform: All
   URL: http://www.dsource.org/projects/dmd/browser/tags
OS/Version: All
Status: NEW
  Severity: trivial
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: llu...@gmail.com


--- Comment #0 from Leandro Lucarella llu...@gmail.com 2010-05-01 18:55:50 
PDT ---
This is not really a bug, but there are several missing tags in subversion.

I think the tagging should be automated by the release process, that way there
will be no more missing tags :)

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


[Issue 3971] Syntax semantics for array assigns

2010-05-01 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3971



--- Comment #10 from Don clugd...@yahoo.com.au 2010-05-01 22:08:28 PDT ---
(In reply to comment #9)
  internally the compiler doesn't distinguish between  x[] and x, where x is a
  dynamic array.
 This means, that array ops are a huge hack?

No. According to the spec, it's not supposed to. x[] is exactly the same as x.
The [] is only required for lvalues. So
int [4] a, b, c;
a[] =  b + c; // should work
It's almost as if there's a []= operator.
At the moment, though, a[] = b+c; fails, and you need to write a[] = b[]+c[].

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