[Issue 10970] Segfault in a simple test compiled without -g.

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10970


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||pull, wrong-code
   Platform|x86_64  |All
 OS/Version|Windows |All


--- Comment #16 from Kenji Hara k.hara...@gmail.com 2013-09-21 22:55:10 PDT 
---
The root cause is a dup of bug 6178.

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

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


[Issue 11086] dmd segfault

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11086


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||ice, pull


--- Comment #3 from Kenji Hara k.hara...@gmail.com 2013-09-21 23:22:05 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2583

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


[Issue 7260] g on default in std.regex

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7260


Dmitry Olshansky dmitry.o...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WONTFIX


--- Comment #11 from Dmitry Olshansky dmitry.o...@gmail.com 2013-09-22 
01:12:35 PDT ---
Flags are to be gone one day and g by default is not going to happen.
This IMHO makes it won't fix.

Anyhow the core issue should now be addressed by using new API that is more
clear.

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


[Issue 11090] New: Template recursion causes Segfault

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11090

   Summary: Template recursion causes Segfault
   Product: D
   Version: unspecified
  Platform: x86_64
OS/Version: Linux
Status: NEW
  Severity: major
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: daniel...@bigpond.com


--- Comment #0 from daniel...@bigpond.com 2013-09-22 01:47:37 PDT ---
auto func(A, B)(A a, B b) if (is(func!(A, B))) {
return a + b;
}

void main() {
func!(int,int);
}


Causes a segfault, assumed from some kind of recursion.

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


[Issue 11086] dmd segfault

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11086



--- Comment #4 from github-bugzi...@puremagic.com 2013-09-22 02:35:39 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/63473a81679298affd8b1791e20513d07a810ddd
fix Issue 11086 - dmd segfault

https://github.com/D-Programming-Language/dmd/commit/b1e8e111c2024472f5abd64487f1bff0e32b17e3
Merge pull request #2583 from 9rnsr/fix11086

[REG2.062] Issue 11086 - dmd segfault

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


[Issue 11086] dmd segfault

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11086


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||andrej.mitrov...@gmail.com
 Resolution||FIXED


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


[Issue 11091] New: Deduced purity doesn't work?

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11091

   Summary: Deduced purity doesn't work?
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 02:49:35 PDT ---
Tried running dmd+phobos head at some code, but got errors.

This is probably the breaking change:
https://github.com/D-Programming-Language/phobos/commit/7714a9c42e2cc8d794a5ee483fdd49d52995b3ac


import std.exception;

class E: Exception
{
this(string msg, string file=__FILE__, size_t line=__LINE__) { super(msg,
file, line); }
}

void f() pure
{
enforceEx!E(true);
}
void main() {
f();
}

// Error: pure function 't.f' cannot call impure function
'std.exception.enforceEx!(E).enforceEx!bool.enforceEx

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


[Issue 5570] 64 bit C ABI not followed for passing structs and complex numbers as function parameters

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5570



--- Comment #40 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-22 
02:47:30 PDT ---
(In reply to comment #39)
 This leads to a lot of duplication, for example the authors had to duplicate c
 bindings just to address this:
 https://github.com/Jebbs/DSFML-C where they point to this bug.

I wonder if as a workaround you could type the prototypes in D as:

// note the .tupleof
sfWindow* sfWindow_create(VideoMode.tupleof mode, const(char)* title, uint
style, const(ContextSettings)* settings);

And then call it via:

VideoMode vm;
sfWindow_create(vm.tupleof, ...);

I'd assume this would then properly use the stack? It's worth trying out to
avoid any new code duplication, and then when 5570 is finally fixed all you
have to do in user code is to remove .tupleof in the calls.

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


[Issue 11092] New: @commutative annotation for commutative functions

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11092

   Summary: @commutative annotation for commutative functions
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: druntime
AssignedTo: nob...@puremagic.com
ReportedBy: daniel...@bigpond.com


--- Comment #0 from daniel...@bigpond.com 2013-09-22 03:16:01 PDT ---
The title should be self-expressive, for heavily constrained functions, it
would be nice to just be able to tag them as commutative rather than spam the
identical function prototype with a redirect to original.

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


[Issue 11069] DMD (github HEAD) Linker Regression

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11069


Temtaime temta...@gmail.com changed:

   What|Removed |Added

 CC||temta...@gmail.com


--- Comment #2 from Temtaime temta...@gmail.com 2013-09-22 04:11:31 PDT ---
Kenji, it's not a full solution. 
I've make test case from my project.
It's too strange test case, but as it is.

A.d:
import C;
import D;

void foo() {
Vector2 rsm;
readWriteVariable(rsm);
}

void main() {
}

B.d:
import D;

import std.algorithm;


void bar() {
Vector2[] tc;
sort(tc);
}

C.d:
import std.traits;

void readWriteVariable(T)(ref T data) {

foreach(it; __traits(allMembers, T))
enum vValid = mixin(`is(FunctionTypeOf!(T.` ~ it ~ `) ==
function)`);

}

D.d:
struct Matrix(T, uint _M) {
int opCmp()(auto ref in Matrix b) const {
return 0;
}

pure auto opDispatch(string s)() {
enum L = s.length;
Matrix!(T, L) ret;
return ret;
}

pure Matrix normalized() {
return Matrix();
}
}

alias Matrix!(float, 2) Vector2;


Problem exists only if files compiled into single objs and then linked
together.

dmd A -c
dmd b -c
dmd c -c
dmd d -c
dmd a.obj b.obj c.obj d.obj

 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVi2Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVi2Z6MatrixKxS1D16__T6MatrixTfVi2Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk8Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk8Z6MatrixKxS1D16__T6MatrixTfVk8Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk6Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk6Z6MatrixKxS1D16__T6MatrixTfVk6Z6MatrixZi
b.obj(b)
 Error 42: Symbol Undefined
_D1D16__T6MatrixTfVk9Z6Matrix8__xopCmpFKxS1D16__T6Ma
trixTfVk9Z6MatrixKxS1D16__T6MatrixTfVk9Z6MatrixZi


If something is removed from test case, then linking is ok.

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


[Issue 11091] Deduced purity doesn't work?

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11091


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-09-22 04:15:34 PDT ---
This is expected change in git-head, introduced by fixing bug 10254.

In the OP code, the constructor in E is not annotated with pure. So, the
expression object creation new E(msg) is essentially impure. But in 2.063 and
earlier, NewExpression had wrongly ignored the called constructor purity and
safety (== bug 10254). Then enforceEx!E had been also incorrectly deduced to
pure.

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


[Issue 11092] @commutative annotation for commutative functions

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11092


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2013-09-22 04:22:47 PDT ---
(In reply to comment #0)
 The title should be self-expressive,

This is an enhancement request, so the title is never self-expressive:
- What are some use cases?
- What are the limits?
- Do you mean just functions with two arguments?
- What if one, the other or both arguments have a default value?
- What about testing. QuickCheck-like tools for D would enjoy to know what
functions are annotated with such @commutative, to test at run-time they are
actually commutative. For this std.traits.functionAttributes will need to take
into account @commutative functions too.

More notes:
- std.functional.memoize could detect a @commutative function and sometimes
reduce the memory usage of its associative array.

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


[Issue 11093] New: Can't compile DMD with VS12

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11093

   Summary: Can't compile DMD with VS12
   Product: D
   Version: D2
  Platform: All
OS/Version: Windows
Status: NEW
  Severity: blocker
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: temta...@gmail.com


--- Comment #0 from Temtaime temta...@gmail.com 2013-09-22 04:21:34 PDT ---
code * __pascal cat (code *c1 , code *c2 );

backend\code.h(514) : error C2146: syntax error : missing ';' before identifier
'cat'
backend\code.h(514) : error C4430: missing type specifier - int assumed. Note:
C++ does not support default-int

Resolution:

Change in code.h:514:

FROM
code * __pascal cat (code *c1 , code *c2 );

TO
code * cat (code *c1 , code *c2 );



And in cgen.c:95



FROM
#if TX86  __INTSIZE == 4  __SC__
__declspec(naked) code * __pascal cat(code *c1,code *c2)
{
_asm
{
mov EAX,c1-4[ESP]
mov ECX,c2-4[ESP]
testEAX,EAX
jne L6D
mov EAX,ECX
ret 8

L6D:mov EDX,EAX
cmp dword ptr [EAX],0
je  L7B
L74:mov EDX,[EDX]
cmp dword ptr [EDX],0
jne L74
L7B:mov [EDX],ECX
ret 8
}
}
#else
code * __pascal cat(code *c1,code *c2)
{   code **pc;

if (!c1)
return c2;
for (pc = code_next(c1); *pc; pc = code_next(*pc))
;
*pc = c2;
return c1;
}
#endif


TO
code * cat(code *c1,code *c2)
{   code **pc;

if (!c1)
return c2;
for (pc = code_next(c1); *pc; pc = code_next(*pc))
;
*pc = c2;
return c1;
}

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


[Issue 11094] New: Disuniform error messages with overloaded + and ^ operators

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11094

   Summary: Disuniform error messages with overloaded + and ^
operators
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Keywords: diagnostic
  Severity: minor
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-09-22 04:41:14 PDT ---
With DMD 2.064alpha this code gives no errors, it seems correct:


struct Foo {
Foo opBinary(string op)(in Foo r) inout if (op == +) {
return Foo();
}
Foo opBinary(string op)(in Foo r) inout if (op == ^) {
return Foo();
}
}
void main() {
const x = Foo();
auto r1 = x + Foo();
auto r2 = x ^ Foo();
}


But if I forget the inouts:

struct Foo {
Foo opBinary(string op)(in Foo r) if (op == +) {
return Foo();
}
Foo opBinary(string op)(in Foo r) if (op == ^) {
return Foo();
}
}
void main() {
const x = Foo();
auto r1 = x + Foo();
auto r2 = x ^ Foo();
}


DMD gives:

test.d(11): Error: incompatible types for ((x) + (Foo())): 'const(Foo)' and
'Foo'
test.d(12): Error: 'x' is not of integral type, it is a const(Foo)
test.d(12): Error: 'Foo()' is not of integral type, it is a Foo

I suggest:
- To give only one error message for the ^ case;
- To give the same error messages for both + and ^;
- Perhaps the error message could explain better the problem, or/and perhaps it
could suggest the use of 'inout'.

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


[Issue 11093] Can't compile DMD with VS12

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11093


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2013-09-22 05:23:04 PDT ---
'blocker' is the highest importance for a bug. Why is compiling dmd with VS12
so important?

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


[Issue 11093] Can't compile DMD with VS12

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11093


Temtaime temta...@gmail.com changed:

   What|Removed |Added

   Severity|blocker |enhancement


--- Comment #2 from Temtaime temta...@gmail.com 2013-09-22 05:24:52 PDT ---
It's not so important, but it's a blocker. But ok, i chanded this.

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


[Issue 11095] New: mixed in mixin templates not instantiated in templates?

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11095

   Summary: mixed in mixin templates not instantiated in
templates?
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 05:38:24 PDT ---
Using dmd head

mixin template B()
{
enum A = true;
}
template A()
{
mixin B; // shouldn't this just insert B?
}

template C()
{
enum C = true;
}

void main() {
static assert(C!() == true); // ok
static assert(A!() == true);
}

t.d(17): Error: void has no value
t.d(17): Error: incompatible types for ((A!()) == (true)): 'void' and 'bool'

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


[Issue 11097] New: Add version of std.algorithm.group that returns group ranges

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11097

   Summary: Add version of std.algorithm.group that returns group
ranges
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: peter.alexander...@gmail.com


--- Comment #0 from Peter Alexander peter.alexander...@gmail.com 2013-09-22 
05:58:50 PDT ---
std.algorithm.group returns a range of (elem, count) tuples:

int[] arr = [ 1, 2, 2, 2, 2, 3, 4, 4, 4, 5 ];
assert(equal(group(arr), [ tuple(1, 1u), tuple(2, 4u), tuple(3, 1u),
tuple(4, 3u), tuple(5, 1u) ][]));

This is fine when the predicate is equality, but when the predicate is
something else, the tuple is less useful. Here's an example of grouping strings
by first character:

string[] arr = [ Alice, Andrew, Ben, Bob ];
assert(equal(group!(a.front == b.front)(arr),
[ tuple(Alice, 2), tuple(Ben, 2) ]));

This isn't very useful because there aren't two Alice's and two Ben's. Alice
and Ben are just one element from the group (btw, the documentation doesn't
indicate that it is always the first element in the group that is returned).

It would be nice if there was a version of the algorithm that returned the
groups themselves, working like this:

string[] arr = [ Alice, Andrew, Ben, Bob ];
assert(equal(groups!(a.front == b.front)(arr),
[ [Alice, Andrew], [Ben, Bob] ]));

I have used the identifier groups here. I'm not bothered what it is called.

Once implemented, group may be elegantly implemented in terms of groups:

auto group(alias f, R)(R r)
{
return groups!(f)(r).map!(g = tuple(g.front, g.walkLength));
}

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


[Issue 11096] New: mixin templates are not regular templates

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11096

   Summary: mixin templates are not regular templates
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 05:56:23 PDT ---
I get this error with dmd head:

t.d(4): Error: template instance A!() mixin templates are not regular templates
t.d(4): Error: Cannot interpret A() at compile time
t.d(4):while evaluating pragma(msg, A)

mixin template A() { }

void main() {
pragma(msg, A);
}

Didn't break in 2.063.2.

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


[Issue 11097] Add version of std.algorithm.group that returns group ranges

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11097


bearophile_h...@eml.cc changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #1 from bearophile_h...@eml.cc 2013-09-22 06:56:42 PDT ---
This good idea (that makes group more similar to the Python groupby) was
discussed several times in past (even by Andrei), so I suggest you to search if
this is already in Bugzilla.

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


[Issue 11098] New: template instance x cannot use local y as parameter to non-global template z

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11098

   Summary: template instance x cannot use local y as parameter to
non-global template z
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 07:04:24 PDT ---
Using dmd head.

template A(T...) {
template B(alias T) { }
}

void main() {
void fv() {}
alias A!(fv) F;
F.B!F;
}

t.d(8): Error: template instance B!(A!(fv)) cannot use local 
'A!(fv)' as parameter to non-global template B(alias T)

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


[Issue 11099] New: Diagnostic for mixed-in symbols should not reference the mixin template

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11099

   Summary: Diagnostic for mixed-in symbols should not reference
the mixin template
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: diagnostic
  Severity: enhancement
  Priority: P2
 Component: druntime
AssignedTo: nob...@puremagic.com
ReportedBy: andrej.mitrov...@gmail.com


--- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-22 
07:19:02 PDT ---
-
mixin template Helpers(int x)
{
@disable void foo() { }
}

struct S
{
mixin Helpers!16;
}

void main()
{
S s;
s.foo();
}


-

$ dmd test.d

test.d(14): Error: function test.S.Helpers!16.foo is not callable because it is
annotated with @disable

Because of these diagnostics using a template mixin introduces a really bad
user experience. The user shouldn't have to know that a struct implements a
function using a mixin template. The diagnostic should be:

-
test.d(14): Error: function test.S.foo is not callable because it is annotated
with @disable
-

Currently we're forced to use string mixins to achieve the same effect:

-
string Helpers(int x)()
{
return q{
@disable void foo() { }
};
}

struct S
{
mixin(Helpers!16());
}

void main()
{
S s;
s.foo();
}
-

$ dmd test.d
test.d(16): Error: function test.S.foo is not callable because it is annotated
with @disable

But mixin templates are supposed to be used exactly for this purpose, for
mixing in declarations rather than arbitrary code.

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


[Issue 11097] Add version of std.algorithm.group that returns group ranges

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11097


Peter Alexander peter.alexander...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #2 from Peter Alexander peter.alexander...@gmail.com 2013-09-22 
07:17:04 PDT ---
*** This issue has been marked as a duplicate of issue 5968 ***

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


[Issue 5968] std.algorithm.group by key function + groupFull

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5968


Peter Alexander peter.alexander...@gmail.com changed:

   What|Removed |Added

 CC||peter.alexander...@gmail.co
   ||m


--- Comment #2 from Peter Alexander peter.alexander...@gmail.com 2013-09-22 
07:17:04 PDT ---
*** Issue 11097 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 11069] DMD (github HEAD) Linker Regression

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11069



--- Comment #3 from Kenji Hara k.hara...@gmail.com 2013-09-22 08:03:50 PDT ---
(In reply to comment #2)
  Error 42: Symbol Undefined
 _D1D16__T6MatrixTfVi2Z6Matrix8__xopCmpFKxS1D16__T6Ma
 trixTfVi2Z6MatrixKxS1D16__T6MatrixTfVi2Z6MatrixZi
 b.obj(b)
  Error 42: Symbol Undefined
 _D1D16__T6MatrixTfVk8Z6Matrix8__xopCmpFKxS1D16__T6Ma
 trixTfVk8Z6MatrixKxS1D16__T6MatrixTfVk8Z6MatrixZi
 b.obj(b)
  Error 42: Symbol Undefined
 _D1D16__T6MatrixTfVk6Z6Matrix8__xopCmpFKxS1D16__T6Ma
 trixTfVk6Z6MatrixKxS1D16__T6MatrixTfVk6Z6MatrixZi
 b.obj(b)
  Error 42: Symbol Undefined
 _D1D16__T6MatrixTfVk9Z6Matrix8__xopCmpFKxS1D16__T6Ma
 trixTfVk9Z6MatrixKxS1D16__T6MatrixTfVk9Z6MatrixZi

OK, I confirmed the issue. And updated the PR to fix it.

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


[Issue 11096] mixin templates are not regular templates

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11096


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||pull, rejects-valid


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-09-22 08:05:30 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2584

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


[Issue 11100] New: (T!int).stringof changes

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11100

   Summary: (T!int).stringof changes
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 08:36:21 PDT ---
In 2.063.2, (T!int).stringof == T!(int). In current head, it's 
T!int.
Even (T!(int)).stringof == T!int.

Is this a regression bug or a bugfix?

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


[Issue 11100] (T!int).stringof changes

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11100


Andrej Mitrovic andrej.mitrov...@gmail.com changed:

   What|Removed |Added

 CC||andrej.mitrov...@gmail.com


--- Comment #1 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-09-22 
08:42:10 PDT ---
It's an enhancement, see: Issue 10334.

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


[Issue 10595] Using alias this and a hash generates wrong code

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10595


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-09-22 10:42:55 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2539

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


[Issue 5822] Segfault when adding File to an Associative array

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5822


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-09-22 10:47:51 PDT ---
*** This issue has been marked as a duplicate of issue 6178 ***

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


[Issue 6178] Struct inside the AA are not init correctly

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6178



--- Comment #23 from Kenji Hara k.hara...@gmail.com 2013-09-22 10:47:51 PDT 
---
*** Issue 5822 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 6178] Struct inside the AA are not init correctly

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6178


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 CC||juhon...@gmail.com


--- Comment #24 from Kenji Hara k.hara...@gmail.com 2013-09-22 10:51:54 PDT 
---
*** Issue 8170 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 11101] Invalid enum member overflow message

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11101


Maxim Fomin ma...@maxim-fomin.ru changed:

   What|Removed |Added

 CC||ma...@maxim-fomin.ru


--- Comment #1 from Maxim Fomin ma...@maxim-fomin.ru 2013-09-22 10:54:27 PDT 
---
Citing spec: If the EnumBaseType is not explicitly set, and the first
EnumMember has an initializer, it is set to the type of that initializer.
Otherwise, it defaults to type int. 

Since second enum is not explicitly based on int and has first enum
initializer, that's why type of second enum is deduced to be GTokenType and
overflow occures as the first enum has single member. So, according to current
spec this is RESOLVED-INVALID. 

On the other hand, nothing stops from allowing such code for facilitation
purposes by fixing spec.

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


[Issue 11057] [REG2.064dev] New std.uni has icmp() partly broken

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11057


Dmitry Olshansky dmitry.o...@gmail.com changed:

   What|Removed |Added

   Keywords|wrong-code  |pull


--- Comment #1 from Dmitry Olshansky dmitry.o...@gmail.com 2013-09-22 
10:56:07 PDT ---
This is not wrong-code, that keyword is reserved for the compiler.
Pull:
https://github.com/D-Programming-Language/phobos/pull/1594

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


[Issue 10720] ICE with is(aaOfNonCopyableStruct.nonExistingField)

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10720


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 11081] Win64: duplicate COMDAT with failed compilation with lambdas

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11081



--- Comment #3 from github-bugzi...@puremagic.com 2013-09-22 11:47:58 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/e1ed2905b2b7e996a4154d079fd8a8660424b5af
fix Issue 11081 - Win64: duplicate COMDAT with failed compilation with lambdas

https://github.com/D-Programming-Language/dmd/commit/4981236072fc4625b959d9146d073e808436f334
Merge pull request #2579 from 9rnsr/fix11081

[REG2.064a] Issue 11081 - Win64: duplicate COMDAT with failed compilation with
lambdas

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


[Issue 11102] New: [ddoc] stray ( / ) without line or column numbers

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11102

   Summary: [ddoc] stray ( / ) without line or column numbers
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: simend...@gmail.com


--- Comment #0 from simendsjo simend...@gmail.com 2013-09-22 12:28:47 PDT ---
Using dmd head

Warning: Ddoc: Stray '('. This may cause incorrect Ddoc output. Use $(LPAREN)
instead for unpaired left parentheses.

Without any indication of where this might be, it's very difficult to locate.

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


[Issue 10717] std.ascii.toLower and toUpper should return char instead of dchar and avoid me to use a bad cast(char)

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10717



--- Comment #9 from github-bugzi...@puremagic.com 2013-09-22 12:43:57 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/phobos

https://github.com/D-Programming-Language/phobos/commit/978250b3aa23b87f08c37dccb7642f5c77c15561
Fix Issue 10717 - std.ascii.toLower and toUpper should return char instead of
dchar and avoid me to use a bad cast(char)

It turns out it was incorrectly working for enum types.

New semantics are that enums are also accepted, and their OriginalType is
returned.

https://github.com/D-Programming-Language/phobos/commit/f621b5692f575fc83ec588d10d93dbb222709663
Merge pull request #1581 from monarchdodra/asciiToUpper

Fix Issue 10717 - std.ascii.toLower and toUpper should return char inste...

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


[Issue 10595] Using alias this and a hash generates wrong code

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10595



--- Comment #2 from github-bugzi...@puremagic.com 2013-09-22 13:04:29 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/0c965af287534093c0282480019b5d8749046357
fix Issue 10595 - Using alias this and a hash generates wrong code

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


[Issue 10970] Segfault in a simple test compiled without -g.

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10970



--- Comment #17 from github-bugzi...@puremagic.com 2013-09-22 13:04:32 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/36a44cbcea9fbb18b221f77e00f2dca77f21bc88
fix Issue 10970 - Segfault in a simple test compiled without -g.

Fixes `CondExp::toElem` to avoid Internal error: backend\cgcs.c 351

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


[Issue 11101] Invalid enum member overflow message

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11101



--- Comment #2 from Mike Wey mike-...@planet.nl 2013-09-22 13:11:20 PDT ---
That would be a valid explanation only the following compiles successfully:

public enum GTokenType
{
EOF = 0,
LEFT_PAREN = '(',
RIGHT_PAREN = ')',
LEFT_CURLY = '{',
RIGHT_CURLY = '}',
LEFT_BRACE = '[',
RIGHT_BRACE = ']',
EQUAL_SIGN = '=',
COMMA = ',',
NONE = 110,
ERROR,
CHAR,
BINARY,
OCTAL,
INT,
HEX,
FLOAT,
STRING,
SYMBOL,
IDENTIFIER,
IDENTIFIER_NULL,
COMMENT_SINGLE,
COMMENT_MULTI,
LAST
}

public enum GtkRcTokenType
{
INVALID = GTokenType.LAST,
INCLUDE,
}

If the value of NONE is larger than 110 it fails to compile.

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


[Issue 6178] Struct inside the AA are not init correctly

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6178


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

   What|Removed |Added

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


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


[Issue 11103] New: w and d suffix for char literals too

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11103

   Summary: w and d suffix for char literals too
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-09-22 14:57:28 PDT ---
A low priority enhancement request.

String literals support the c w d suffix to specify their type:

void main() {
auto s1 = helloc;
auto s2 = hellow;
auto s3 = hellod;
}


For wchars/dchars you could use a cast:

void main() {
auto c1 ='X';
auto c2 = cast(wchar)'X';
auto c3 = cast(dchar)'X';
}


But I suggest to support the same string suffixes:

void main() {
auto c1 = 'X';
auto c2 = 'X'w;
static assert(is(typeof(c2) == wchar));
auto c3 = 'X'd;
static assert(is(typeof(c3) == dchar));
}


This has some advantages:
- It's shorter than a cast, it takes only 1 extra char.
- During debugging and in other situations I search for the cast( string in
my code, because sometimes casts are where bugs are. Removing the need to use
cast() for dchars/wchars removes some noise from that search.
- Those suffixes are not hard to learn for a D programmer because they are the
same for strings. And I think this change is backwards compatible.

Disadvantages:
- It's not a very common need;
- Unlike the situation with strings where you can't use a cast, the
cast(wchar)/cast(dchar) work fine on chars.


One use case:

import std.algorithm: map, joiner;
import std.string: text;
void main() {
string r = [1, 2]
   .map!(x = [1, 2].map!(y = cast(dchar)'*'))
   .joiner(_)
   .text;
}

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


[Issue 11101] Invalid enum member overflow message

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11101


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


--- Comment #3 from Walter Bright bugzi...@digitalmars.com 2013-09-22 
17:20:11 PDT ---
It should fail to compile with NONE larger than 110.

The algorithm is if GTokenType.LAST==GTokenType.max, then attempting to
calculate GTokenType.LAST+1 overflows it. To get what you are looking for,
use:

enum GtkRcTokenType
{
INVALID = GTokenType.LAST + 1,
INCLUDE,
}

which will compile successfully.

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


[Issue 5570] 64 bit C ABI not followed for passing structs and complex numbers as function parameters

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=5570



--- Comment #41 from thelastmamm...@gmail.com 2013-09-22 20:07:53 PDT ---
(In reply to comment #40)
 (In reply to comment #39)
  This leads to a lot of duplication, for example the authors had to 
  duplicate c
  bindings just to address this:
  https://github.com/Jebbs/DSFML-C where they point to this bug.
 
 I wonder if as a workaround you could type the prototypes in D as:
 
 // note the .tupleof
 sfWindow* sfWindow_create(VideoMode.tupleof mode, const(char)* title, uint
 style, const(ContextSettings)* settings);


corrected that to sfWindow_create(typeof(VideoMode.tupleof), ...)

 
 And then call it via:
 
 VideoMode vm;
 sfWindow_create(vm.tupleof, ...);

still segfaults

 
 I'd assume this would then properly use the stack? It's worth trying out to
 avoid any new code duplication, and then when 5570 is finally fixed all you
 have to do in user code is to remove .tupleof in the calls.


so far my (sad) woraround is to add a new C function that takes a pointer to
the struct, and link against it.

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


[Issue 10993] mangling of voldemort types with lambdas changes during return type inference

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10993


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

   Keywords||pull, wrong-code
 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 11104] New: Document exact behavior of structsasd initialization inside AA

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11104

   Summary: Document exact behavior of structsasd initialization
inside AA
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: spec
  Severity: normal
  Priority: P2
 Component: websites
AssignedTo: nob...@puremagic.com
ReportedBy: verylonglogin@gmail.com


--- Comment #0 from Denis Shelomovskij verylonglogin@gmail.com 2013-09-23 
09:03:51 MSD ---
Fixed AA issue is Issue 6178. So changes from dmd pull [1] have to be
documented.

[1] https://github.com/D-Programming-Language/dmd/pull/2539

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


[Issue 11081] Win64: duplicate COMDAT with failed compilation with lambdas

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=11081


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Issue 10970] Segfault in a simple test compiled without -g.

2013-09-22 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10970


Kenji Hara k.hara...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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