[Issue 664] is(func T == function) ignores variadic arguments

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=664


Don  changed:

   What|Removed |Added

   Keywords||spec


--- Comment #9 from Don  2011-12-19 22:44:37 PST ---
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > How does that solve the problem? The root cause is that is( ==function) 
> > > assumes
> > > that all of the function parameters can be returned in a tuple, but that 
> > > isn't
> > > true for ...
> > 
> > In what way does it make that assumption?
> 
> It declares T as a tuple containing all of the function arguments.

Complete section of the spec:
--
6. is ( Type Identifier == TypeSpecialization )

The condition is satisfied if Type is semantically correct and is the same as
TypeSpecialization. The Identifier is declared to be either an alias of the
TypeSpecialization or, if TypeSpecialization is dependent on Identifier, the
deduced type. 

If TypeSpecialization is one of typedef struct union class interface enum
function delegate then the condition is satisifed if Type is one of those.
Furthermore, Identifier is set to be an alias of the type:

keyword alias type for Identifier
function TypeTuple of the function parameter types
--
This is impossible if the function has a C-style variadic parameter. Although
solution (2) would allow it to be a Tuple, it wouldnt be a TypeTuple. So a
change to the spec is inevitable.

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


[Issue 664] is(func T == function) ignores variadic arguments

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=664



--- Comment #8 from Don  2011-12-19 22:34:00 PST ---
(In reply to comment #7)
> (In reply to comment #6)
> > How does that solve the problem? The root cause is that is( ==function) 
> > assumes
> > that all of the function parameters can be returned in a tuple, but that 
> > isn't
> > true for ...
> 
> In what way does it make that assumption?

It declares T as a tuple containing all of the function arguments.

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


[Issue 7065] align() refused for struct defined inside functions

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7065


Kenji Hara  changed:

   What|Removed |Added

   Keywords||patch
   Platform|x86 |All
 OS/Version|Windows |All


--- Comment #1 from Kenji Hara  2011-12-19 22:03:09 PST ---
More better link to discussion.
http://dfeed.kimsufi.thecybershadow.net/discussion/thread/mailman.1303.1323008066.24802.digitalmars-d-le...@puremagic.com

Patch:
https://github.com/D-Programming-Language/dmd/pull/562

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


[Issue 7139] New: OPTLINK Termination EIP=00428DA3

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7139

   Summary: OPTLINK Termination EIP=00428DA3
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: major
  Priority: P2
 Component: Optlink
AssignedTo: nob...@puremagic.com
ReportedBy: dsim...@yahoo.com


--- Comment #0 from David Simcha  2011-12-19 19:06:47 PST ---
Created an attachment (id=1055)
Object/lib files to reproduce the bug.

Object/library files necessary to reproduce this bug are attached.

Register info:

EIP  =00428DA3
EAX  =0278
EBX  =026C
ECX  =0043F7B4
EDX  =0278
ESI  =030E3D88
EDI  =0043FA9D
EBP  =0018FF04
ESP  =0018FEF8
FIRST=00402000

Link command:

D:/dmd2/windows/bin/link.exe
test9,,nul,"scid.lib"+"blaslapackdll.lib"+user32+kernel32/co/noi;

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


[Issue 7138] New: Can't call array() on dirEntries

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7138

   Summary: Can't call array() on dirEntries
   Product: D
   Version: D2
  Platform: Other
OS/Version: Windows
Status: NEW
  Severity: major
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: andrej.mitrov...@gmail.com


--- Comment #0 from Andrej Mitrovic  2011-12-19 
12:38:05 PST ---
module test;

import std.algorithm;
import std.array;
import std.file;

void main()
{
auto dFiles =
filter!`endsWith(a.name,".d")`(dirEntries(".",SpanMode.depth));
auto arr1 = array(dFiles);  // OK

auto arr2 = array(dirEntries(".",SpanMode.depth));  // NG??
}

test.d(11): Error: template std.array.array(Range) if (isIterable!(Range) &&
!isNarrowString!(Range)) does not match any function template declaration
test.d(11): Error: template std.array.array(Range) if (isIterable!(Range) &&
!isNarrowString!(Range)) cannot deduce template function from argument types
!()(DirIterator)

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


[Issue 7137] New: Fresh git clone fails to build

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7137

   Summary: Fresh git clone fails to build
   Product: D
   Version: unspecified
  Platform: x86_64
OS/Version: Mac OS X
Status: NEW
  Severity: normal
  Priority: P2
 Component: make
AssignedTo: nob...@puremagic.com
ReportedBy: syntaxcolor...@gmail.com


--- Comment #0 from syntaxcolor...@gmail.com 2011-12-19 11:54:06 PST ---
>From git commit 09cde86ef79908cfd0ddacf0d45dd1892b387e3a on OS X 10.6.8:

make -f posix.mak
dmd -m32 -c -d -o- -Isrc -Iimport -Hfimport/core/atomic.di src/core/atomic.d
dmd -m32 -c -d -o- -Isrc -Iimport -Hfimport/core/bitop.di src/core/bitop.d
dmd -m32 -c -d -o- -Isrc -Iimport -Hfimport/core/cpuid.di src/core/cpuid.d
dmd -m32 -c -d -o- -Isrc -Iimport -Hfimport/core/demangle.di
src/core/demangle.d
make: *** [import/core/demangle.di] Bus error
make: *** Deleting file `import/core/demangle.di'

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


[Issue 7031] Stack overflow with immutable recursive struct

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7031


klickverbot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||c...@klickverbot.at
 Resolution||DUPLICATE


--- Comment #3 from klickverbot  2011-12-19 10:08:35 PST 
---
*** This issue has been marked as a duplicate of issue 7127 ***

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


[Issue 7127] Const-related infinite recursion in DWARF generation

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7127


klickverbot  changed:

   What|Removed |Added

 CC||mrmoc...@gmx.de


--- Comment #3 from klickverbot  2011-12-19 10:08:35 PST 
---
*** Issue 7031 has been marked as a duplicate of this issue. ***

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


[Issue 7127] Const-related infinite recursion in DWARF generation

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7127


klickverbot  changed:

   What|Removed |Added

 CC||webmaster@villagersonline.c
   ||om


--- Comment #2 from klickverbot  2011-12-19 10:08:15 PST 
---
*** Issue 5533 has been marked as a duplicate of this issue. ***

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


[Issue 5533] Regression(2.051, Linux only): segv: -gc, associative arrays, const pointers to self

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5533


klickverbot  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||c...@klickverbot.at
 Resolution||DUPLICATE


--- Comment #4 from klickverbot  2011-12-19 10:08:15 PST 
---
*** This issue has been marked as a duplicate of issue 7127 ***

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


[Issue 4135] Regression(1.034): ICE(statement.c): mixin in bad foreach, D1 only

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4135



--- Comment #6 from Walter Bright  2011-12-19 
10:01:58 PST ---
The fix was:

https://github.com/D-Programming-Language/dmd/pull/570

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


[Issue 4135] Regression(1.034): ICE(statement.c): mixin in bad foreach, D1 only

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4135


Walter Bright  changed:

   What|Removed |Added

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


--- Comment #5 from Walter Bright  2011-12-19 
10:00:27 PST ---
https://github.com/D-Programming-Language/dmd/commit/017697af3ff93383dad0ad085994e3f2aab515d8

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


[Issue 7099] static constructor in template mixin in library not executed

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7099



--- Comment #2 from Robert Clipsham  2011-12-19 
16:26:59 GMT ---
(In reply to comment #1)
> Happens on Windows as well. This isn't a regression, it behaves the same way 
> in
> D 1.040. It has never worked.

I have no idea how my code used to work then. Weird.

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


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133



--- Comment #9 from Stewart Gordon  2011-12-19 07:17:31 PST ---
(In reply to comment #8)
> I think it is useful. This looks odd:
> 
> inti = 2;
> for({} i<2; i++){}

The ; you're replacing there isn't a statement - it's something explicitly
allowed by the ForStatement syntax.

ForStatement:
for (Initialize Testopt ; Incrementopt) ScopeStatement

Initialize:
;
NoScopeNonEmptyStatement

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


[Issue 6940] immutable(int*)*/immutable(int)** and int** do not combine

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6940


Kenji Hara  changed:

   What|Removed |Added

   Keywords||patch, rejects-valid


--- Comment #4 from Kenji Hara  2011-12-19 07:11:36 PST ---
https://github.com/D-Programming-Language/dmd/pull/571

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


[Issue 7136] alias this lookup should run before merging modifiers of both sides.

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7136


Kenji Hara  changed:

   What|Removed |Added

   Keywords||patch


--- Comment #1 from Kenji Hara  2011-12-19 07:11:57 PST ---
https://github.com/D-Programming-Language/dmd/pull/571

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


[Issue 6939] wrong type qualifier combination

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6939


Kenji Hara  changed:

   What|Removed |Added

   Keywords||patch


--- Comment #4 from Kenji Hara  2011-12-19 07:11:08 PST ---
https://github.com/D-Programming-Language/dmd/pull/571

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


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


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

   What|Removed |Added

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


--- Comment #8 from timon.g...@gmx.ch 2011-12-19 06:23:35 PST ---
(In reply to comment #0)
> The statement ";" should not exist. It is never needed, never useful, and in
> most cases the compiler requires it to be replaced with '{}'.
> 
> Walter and I agreed on all of the above so ";" is not present in TDPL. It
> should be slowly deprecated and ultimately removed from D. It is just junk in
> the trunk.

I think it is useful. This looks odd:

inti = 2;
for({} i<2; i++){}

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


[Issue 664] is(func T == function) ignores variadic arguments

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=664



--- Comment #7 from Stewart Gordon  2011-12-19 05:23:40 PST ---
(In reply to comment #6)
> How does that solve the problem? The root cause is that is( ==function) 
> assumes
> that all of the function parameters can be returned in a tuple, but that isn't
> true for ...

In what way does it make that assumption?

> Or do you mean that is( x==function) should be an error if x has a variadic
> parameter?

Of course not.  What would be the point of that?

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


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


jakobov...@gmail.com changed:

   What|Removed |Added

 CC||jakobov...@gmail.com


--- Comment #7 from jakobov...@gmail.com 2011-12-19 05:16:39 PST ---
(In reply to comment #3)
> I didn't think that that worked, since {} isn't a statement (at least, as far
> as I know, it isn't), but if it works, it's certainly better.

It is indeed a statement, it's called a block statement, also in D:
http://dlang.org/statement.html#BlockStatement

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


[Issue 7133] [tdpl] There should be no empty statement

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7133


Stewart Gordon  changed:

   What|Removed |Added

 CC||s...@iname.com
   Platform|Other   |All
 OS/Version|Mac OS X|All
   Severity|normal  |enhancement


--- Comment #6 from Stewart Gordon  2011-12-19 05:07:21 PST ---
(In reply to comment #5)
> Is that different from C++? I thought that {} was just an empty scope without
> any statements in it at all in both C/C++ and D.

It is, but in 100% of cases the compiler can optimise away that empty scope and
so it's equivalent to an empty statement.

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


[Issue 664] is(func T == function) ignores variadic arguments

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=664



--- Comment #6 from Don  2011-12-19 04:59:44 PST ---
(In reply to comment #5)
> (3) Have function(char, ...) just not matching function(T) for any value of 
> T. 
> ... is a fundamentally different kind of thing from a type, so it doesn't seem
> to make sense to allow it as an element of a type tuple.


How does that solve the problem? The root cause is that is( ==function) assumes
that all of the function parameters can be returned in a tuple, but that isn't
true for ...
Or do you mean that is( x==function) should be an error if x has a variadic
parameter?

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


[Issue 2235] false unreachable statement in constructor (-w only, D1 only)

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=2235


Don  changed:

   What|Removed |Added

   Keywords|diagnostic  |
 CC||clugd...@yahoo.com.au
Summary|false unreachable statement |false unreachable statement
   |detected, no linenumbers|in constructor (-w only, D1
   |shown (-w only, D1 only)|only)


--- Comment #2 from Don  2011-12-19 04:45:20 PST ---
Bug 2643 has now been fixed, removed "no line numbers shown" from title.
Only applies to constructors (doesn't even happen with a destructor).

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


[Issue 3865] ICE(cgcs.c): Assigning to struct literal member

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3865


Don  changed:

   What|Removed |Added

Version|D1  |D1 & D2
Summary|ICE(cgcs.c, D1 only):   |ICE(cgcs.c): Assigning to
   |Assigning to struct literal |struct literal member
   |member  |


--- Comment #2 from Don  2011-12-19 04:36:21 PST ---
Test case which also applies to D2:

struct ICE3865{
   int x;
}

void ice3865() {
   ICE3865(7).x += 1;
}

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


[Issue 3391] gdb: dynamic arrays and associative arrays are not properly printed

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3391



--- Comment #4 from Leandro Lucarella  2011-12-19 03:53:53 
PST ---
See https://github.com/D-Programming-Language/dmd/pull/526

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


[Issue 7099] static constructor in template mixin in library not executed

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7099


Don  changed:

   What|Removed |Added

   Keywords||wrong-code
 CC||clugd...@yahoo.com.au
   Platform|Other   |All
   Severity|regression  |normal


--- Comment #1 from Don  2011-12-19 03:36:37 PST ---
Happens on Windows as well. This isn't a regression, it behaves the same way in
D 1.040. It has never worked.

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


[Issue 3867] Regression(1.051) forward referenced enum member via an alias, templates, and is(), D1 only

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867


Don  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #12 from Don  2011-12-19 03:22:47 PST ---
Fixed in DMD 1.071, probably as part of the fixes to error gagging.

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


[Issue 7136] New: alias this lookup should run before merging modifiers of both sides.

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7136

   Summary: alias this lookup should run before merging modifiers
of both sides.
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k.hara...@gmail.com


--- Comment #0 from Kenji Hara  2011-12-19 03:19:30 PST ---
Test cases:

void test()
{
struct X
{
Object get() immutable { return null; }
alias get this;
}
immutable(X) x;
Object y;
static assert( is(typeof(1?x:y) == Object));// fails
static assert(!is(typeof(1?x:y) == const(Object))); // fails

struct A
{
int[] get() immutable { return null; }
alias get this;
}
immutable(A) a;
int[] b;
static assert( is(typeof(1?a:b) == int[])); // fails
static assert(!is(typeof(1?a:b) == const(int[])));  // fails
}

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