[Issue 7016] local import does not create -deps dependency

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7016



--- Comment #8 from thelastmamm...@gmail.com 2013-07-11 23:26:15 PDT ---
see
http://forum.dlang.org/post/mailman.1984.1373610213.13711.digitalmar...@puremagic.com
[fix for enumerating local import dependencies, resolving all rdmd link errors]

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


[Issue 10620] New: ICE when using TypeInfo.getHash at compile time

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10620

   Summary: ICE when using TypeInfo.getHash at compile time
   Product: D
   Version: future
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: d...@me.com


--- Comment #0 from Jacob Carlborg d...@me.com 2013-07-11 23:48:56 PDT ---
The following code:

enum typeId = typeid(int);
enum hash = typeId.getHash(cast(void*) 3);

Results in the following error:

Assertion failed: (thisval  thisval-op == TOKclassreference), function
interpret, file interpret.c, line 4067.

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


[Issue 4841] -inline wrecks certain nested structs causing error *** is a nested function and cannot be accessed from ***

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4841



--- Comment #19 from github-bugzi...@puremagic.com 2013-07-11 23:49:29 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/1fbbe5966e372abb20e70c4ac69ecfaeaa6db952
fix Issue 4841 - -inline wrecks certain nested structs causing error *** is a
nested function and cannot be accessed from ***

https://github.com/D-Programming-Language/dmd/commit/c19b8a43f45da1347302d3b49a3d1b0b53997003
Merge pull request #2329 from 9rnsr/fix4841

Issue 4841 - -inline wrecks certain nested structs causing error *** is a
nested function and cannot be accessed from ***

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


[Issue 4841] -inline wrecks certain nested structs causing error *** is a nested function and cannot be accessed from ***

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=4841


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

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #21 from Iain Buclaw ibuc...@ubuntu.com 2013-07-12 00:58:49 PDT 
---
1. Not my problem. :)
2. When comparing gdc and dmd, make sure your actually looking at object files
generated by gdc, and not dmd. :)
3. That's highly unlikely as I've tested on x86_64. :)

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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #23 from Iain Buclaw ibuc...@ubuntu.com 2013-07-12 01:02:52 PDT 
---
(In reply to comment #22)
 (In reply to comment #21)
  1. Not my problem. :)
  2. When comparing gdc and dmd, make sure your actually looking at object 
  files
  generated by gdc, and not dmd. :)
  3. That's highly unlikely as I've tested on x86_64. :)
 
 and 4. Under simple test conditions where all parameter values are 
 const/known,
 templated function calls tend to have a habit of being inlined / optimised
 away.

and 5. Make sure that you use bearophiles last implementation example. ;)

http://d.puremagic.com/issues/show_bug.cgi?id=6829#c12

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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #22 from Iain Buclaw ibuc...@ubuntu.com 2013-07-12 01:00:57 PDT 
---
(In reply to comment #21)
 1. Not my problem. :)
 2. When comparing gdc and dmd, make sure your actually looking at object files
 generated by gdc, and not dmd. :)
 3. That's highly unlikely as I've tested on x86_64. :)

and 4. Under simple test conditions where all parameter values are const/known,
templated function calls tend to have a habit of being inlined / optimised
away.

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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #24 from bearophile_h...@eml.cc 2013-07-12 01:59:52 PDT ---
(In reply to comment #23)
 and 5. Make sure that you use bearophiles last implementation example. ;)

Updated code, lacks unittests:


import std.traits: isIntegral, isUnsigned;

/// Left-shift x by n bits.
T rol(T)(in T x, in uint nBits) @safe pure nothrow
if (isIntegral!T  isUnsigned!T)
in {
assert(nBits  (T.sizeof * 8));
} body {
return cast(T)((x  nBits) | (x  ((T.sizeof * 8) - nBits)));
}

/// Right-shift x by n bits.
T ror(T)(in T x, in uint nBits) @safe pure nothrow
if (isIntegral!T  isUnsigned!T)
in {
assert(nBits  (T.sizeof * 8));
} body {
return cast(T)((x  nBits) | (x  ((T.sizeof * 8) - nBits)));
}

void main() {
// Tests to check for assembly output.
{
__gshared static ubyte xb;
__gshared static ushort xs;
__gshared static uint xi;
__gshared static ulong xl;
__gshared static uint yi;

rol(xb, yi);   // rolb
ror(xb, yi);   // rorb

rol(xs, yi);   // rolw
ror(xs, yi);   // rorw

rol(xi, yi);   // roll
ror(xi, yi);   // rorl

rol(xl, yi);   // version(X86_64) rolq
ror(xl, yi);   // version(X86_64) rorq
}
}

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


[Issue 10621] New: dirEntry is (now) useless

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10621

   Summary: dirEntry is (now) useless
   Product: D
   Version: D2
  Platform: All
   URL: http://d.puremagic.com/issues/show_bug.cgi?id=10607
OS/Version: All
Status: ASSIGNED
  Severity: enhancement
  Priority: P2
 Component: Phobos
AssignedTo: monarchdo...@gmail.com
ReportedBy: monarchdo...@gmail.com


--- Comment #0 from monarchdo...@gmail.com 2013-07-12 06:13:45 PDT ---
By fixing Issue 10607 - DirEntry has no constructor
http://d.puremagic.com/issues/show_bug.cgi?id=10607

The function dirEntry is now completely useless. It can be replaced by a
straight up DirEntry call in all cases. It should be removed (deprecated).

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


[Issue 10621] dirEntry is (now) useless

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10621



--- Comment #1 from monarchdo...@gmail.com 2013-07-12 06:15:51 PDT ---
https://github.com/D-Programming-Language/phobos/pull/1407/files

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


[Issue 10622] New: Wrong this pointer in methods called via IUnknown derived interfaces

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10622

   Summary: Wrong this pointer in methods called via IUnknown
derived interfaces
   Product: D
   Version: D2
  Platform: x86_64
OS/Version: Windows
Status: NEW
  Severity: major
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: slud...@outerproduct.org


--- Comment #0 from S�nke Ludwig slud...@outerproduct.org 2013-07-12 07:52:57 
PDT ---
The following program crashes in the second invocation of AddRef (could be any
other method defined by IUnknown or a derived interface) because the this
pointer points to the IUnknown vtable instead of the object's base, which is
assumed by the code.

---
import std.c.windows.com;
import std.c.windows.windows;

class Test : IUnknown {
  int i = 1;
  ULONG AddRef() { assert(i == 1); return 0; }
  ULONG AddRef() { assert(i == 1); return 0; }
  HRESULT AddRef(IID*, void**) { assert(i == 1); return E_FAIL; }
}

void main()
{
  auto t = new Test;
  t.AddRef(); // works
  auto u = cast(IUnknown)t;
  u.AddRef(); // crash in _d_invariant
}
---

Setting this to major severity because it makes defining any COM objects in D
impossible on Win64 (and thus many COM APIs are unusable). Tested on DMD
2.063.2

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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #25 from hst...@quickfur.ath.cx 2013-07-12 08:13:16 PDT ---
Nope, it's still not working. I copied-n-pasted exactly the code posted above,
and compiled with gdc -frelease -O3 test.d, and here is the disassembly output:

004042d0 _D4test10__T3rolThZ3rolFNaNbNfxhxkZh:
  4042d0:40 0f b6 ff  movzbl %dil,%edi
  4042d4:b9 08 00 00 00   mov$0x8,%ecx
  4042d9:29 f1sub%esi,%ecx
  4042db:89 f8mov%edi,%eax
  4042dd:d3 f8sar%cl,%eax
  4042df:89 f1mov%esi,%ecx
  4042e1:d3 e7shl%cl,%edi
  4042e3:09 f8or %edi,%eax
  4042e5:c3   retq   
  4042e6:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  4042ed:00 00 00 

004042f0 _D4test10__T3rorThZ3rorFNaNbNfxhxkZh:
  4042f0:40 0f b6 ff  movzbl %dil,%edi
  4042f4:b9 08 00 00 00   mov$0x8,%ecx
  4042f9:29 f1sub%esi,%ecx
  4042fb:89 f8mov%edi,%eax
  4042fd:d3 e0shl%cl,%eax
  4042ff:89 f1mov%esi,%ecx
  404301:d3 ffsar%cl,%edi
  404303:09 f8or %edi,%eax
  404305:c3   retq   
  404306:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  40430d:00 00 00 

00404310 _D4test10__T3rolTtZ3rolFNaNbNfxtxkZt:
  404310:0f b7 ff movzwl %di,%edi
  404313:b9 10 00 00 00   mov$0x10,%ecx
  404318:29 f1sub%esi,%ecx
  40431a:89 f8mov%edi,%eax
  40431c:d3 f8sar%cl,%eax
  40431e:89 f1mov%esi,%ecx
  404320:d3 e7shl%cl,%edi
  404322:09 f8or %edi,%eax
  404324:c3   retq   
  404325:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  40432c:00 00 00 
  40432f:90   nop

00404330 _D4test10__T3rorTtZ3rorFNaNbNfxtxkZt:
  404330:0f b7 ff movzwl %di,%edi
  404333:b9 10 00 00 00   mov$0x10,%ecx
  404338:29 f1sub%esi,%ecx
  40433a:89 f8mov%edi,%eax
  40433c:d3 e0shl%cl,%eax
  40433e:89 f1mov%esi,%ecx
  404340:d3 ffsar%cl,%edi
  404342:09 f8or %edi,%eax
  404344:c3   retq   
  404345:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  40434c:00 00 00 
  40434f:90   nop

00404350 _D4test10__T3rolTkZ3rolFNaNbNfxkxkZk:
  404350:b9 20 00 00 00   mov$0x20,%ecx
  404355:89 f8mov%edi,%eax
  404357:29 f1sub%esi,%ecx
  404359:d3 e8shr%cl,%eax
  40435b:89 f1mov%esi,%ecx
  40435d:d3 e7shl%cl,%edi
  40435f:09 f8or %edi,%eax
  404361:c3   retq   
  404362:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  404369:00 00 00 
  40436c:0f 1f 40 00  nopl   0x0(%rax)

00404370 _D4test10__T3rorTkZ3rorFNaNbNfxkxkZk:
  404370:b9 20 00 00 00   mov$0x20,%ecx
  404375:89 f8mov%edi,%eax
  404377:29 f1sub%esi,%ecx
  404379:d3 e0shl%cl,%eax
  40437b:89 f1mov%esi,%ecx
  40437d:d3 efshr%cl,%edi
  40437f:09 f8or %edi,%eax
  404381:c3   retq   
  404382:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  404389:00 00 00 
  40438c:0f 1f 40 00  nopl   0x0(%rax)

00404390 _D4test10__T3rolTmZ3rolFNaNbNfxmxkZm:
  404390:b9 40 00 00 00   mov$0x40,%ecx
  404395:48 89 f8 mov%rdi,%rax
  404398:29 f1sub%esi,%ecx
  40439a:48 d3 e8 shr%cl,%rax
  40439d:89 f1mov%esi,%ecx
  40439f:48 d3 e7 shl%cl,%rdi
  4043a2:48 09 f8 or %rdi,%rax
  4043a5:c3   retq   
  4043a6:66 2e 0f 1f 84 00 00 nopw   %cs:0x0(%rax,%rax,1)
  4043ad:00 00 00 

004043b0 _D4test10__T3rorTmZ3rorFNaNbNfxmxkZm:
  4043b0:b9 40 00 00 00   mov$0x40,%ecx
  4043b5:48 89 f8 mov%rdi,%rax
  4043b8:29 f1sub%esi,%ecx
  4043ba:48 d3 e0 shl%cl,%rax
  

[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #26 from Iain Buclaw ibuc...@ubuntu.com 2013-07-12 08:21:21 PDT 
---
Don't currently have a gdc 4.8 compiler at hand to test...

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


[Issue 6829] Unsigned rotate standard function in Phobos

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6829



--- Comment #27 from hst...@quickfur.ath.cx 2013-07-12 08:40:43 PDT ---
Huh? So which gdc have you been using to test this earlier?

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


[Issue 10622] Wrong this pointer in methods called via IUnknown derived interfaces

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10622



--- Comment #1 from S�nke Ludwig slud...@outerproduct.org 2013-07-12 08:50:03 
PDT ---
Actually, as far as I understand, the pointer is correct and the function body
is wrong in assuming that it points to the object's base.

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


[Issue 10623] New: destructor not called for function argument if constructing another argument throws

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10623

   Summary: destructor not called for function argument if
constructing another argument throws
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: and...@erdani.com


--- Comment #0 from Andrei Alexandrescu and...@erdani.com 2013-07-12 08:52:50 
PDT ---
Consider:

import std.stdio;

struct S1 { 
this(int) { writeln(constructed); } 
~this() { writeln(destroyed); } 
}
struct S2 { this(int) { throw new Exception(a); } }

void fun(S1, S2, S1) {}

void main()
{
fun(S1(2), S2(2), S1(2));
}

Running this code will create an object of type S1 that is never destroyed.
This is somewhat related to http://d.puremagic.com/issues/show_bug.cgi?id=9704,
just there's no postblit.

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


[Issue 10623] destructor not called for function argument if constructing another argument throws

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10623


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-07-12 09:08:36 PDT 
---
I think this can be marked as a dup because it is a particular situation of
essentially the same case described in issue 9704.

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


[Issue 10624] New: [REG2.064a] ICE with tuple comparison

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10624

   Summary: [REG2.064a] ICE with tuple comparison
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: ice
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: k.hara...@gmail.com


--- Comment #0 from Kenji Hara k.hara...@gmail.com 2013-07-12 09:32:43 PDT ---
The regression was caused by:
https://github.com/D-Programming-Language/dmd/commit/d9c710351028452533241e069bdde9034fc4cde8

Following code causes ICE with -c switch.

$ dmd -c test.d
Internal error: backend\cod3.c 1953

With debug build dmd:

$ dmd -c test.d
DMD v2.064 DEBUG
el:00382D4C cnt=0 cs=0   TYbool 00382E64 00382CA4
 el:00382E64 cnt=0 cs=0 *  1 TYstruct 003820D8
  el:003820D8 cnt=1 cs=0 var  TY*  zis
 el:00382CA4 cnt=0 cs=0 *  1 TYstruct 00382C6C
  el:00382C6C cnt=1 cs=0 var  TY*  rhsPA
TYstruct Internal error: backend\cod3.c 1953

struct Msg {}

struct Tuple(Specs...)
{
Specs expand;
alias expand this;
}

void main()
{
Variant data;
data = Tuple!Msg();

}
struct Variant
{
ptrdiff_t function() fptr = handler!(void);

static ptrdiff_t handler(A : void)()
{
return 0;
}
static ptrdiff_t handler(A)()
{
A* zis;
A* rhsPA;
{
return *zis  *rhsPA ? -1 : 1;
// Tupple!(Msg)  Tupple!(Msg)
// Tupple!(Msg).expand  Tupple!(Msg).expand
// CmpExp(TOKtuple, TOKtuple) is incorrectly compiled in front-end
}
return 0;
}

Variant opAssign(T)(T rhs)
{
fptr = handler!(T);
return this;
}
}

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


[Issue 10625] New: Compiler should warn or disallow using slice syntax in initialization

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10625

   Summary: Compiler should warn or disallow using slice syntax in
initialization
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Keywords: accepts-invalid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: andrej.mitrov...@gmail.com


--- Comment #0 from Andrej Mitrovic andrej.mitrov...@gmail.com 2013-07-12 
09:57:21 PDT ---
-
void main()
{
int[] source = [0, 1];

int[] arr1 = new int[](2);
arr1[] = source[];

assert(arr1 !is source);  // ok

int[] arr2 = source[];  // looks like a copy
assert(arr2 !is arr2);  // assert fails: but in fact it's not!
}
-

The 'int[] arr2 = source[];' syntax appears as though the source contents are
copied into arr2, but in fact this is the same code as 'int[] arr2 = source;'.

Since [] has a very special meaning, the above should either:

1) Become an actual deep copy, meaning arr2 would have to allocate space first
and then copy contents. This would be a breaking and negative change due to
performance implications.

2) Not compile. It looks like a deep copy but it isn't, and this can cause
issues down the road (for example using memcpy or even OpenGL functions can
create hard to track problems due to using the source and target arrays which
point to the same memory).

I'd vote heavily towards 2.

Of course one can always use 'int[] arr2 = source.dup'.

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


[Issue 10577] 2.063 Mixin Regression (works with 2.062)

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10577


Puneet Goel pun...@coverify.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|WORKSFORME  |


--- Comment #5 from Puneet Goel pun...@coverify.org 2013-07-12 10:30:43 PDT 
---
Slightly different test case. But since this too is related, I am re-opening
the same bug. Let me know if I should instead be opening a separate bug for
this.

With this code, I am getting a *spurious* deprecation warning (compiles without
warning with version 2.062).

test.d(37): Deprecation: class test.derived use of test.base.foo() hidden by
derived is deprecated. Use 'alias base.foo foo;' to introduce base class
overload set.

// test.d Code starts here
enum sync;

public template get_sync(size_t I, A...) {
  static if(I == A.length)   enum bool get_sync = false;
  else static if(is(A[I] == sync))   enum bool get_sync = true;
else enum bool get_sync = get_sync!(I+1, A);
}

template add_sync(T, size_t ITER=0) {
  static if(ITER == (__traits(derivedMembers, T).length)) {
enum string add_sync = ;
  } else {
enum string mem = __traits(derivedMembers, T)[ITER];
enum string add_sync =
  static if(! __traits(isVirtualMethod,  ~ mem ~ )) { ~
  mixin(add_sync!(get_sync!(0, __traits(getAttributes, 
  ~ mem ~ )), \ ~ mem ~ \));}  ~ add_sync!(T, ITER+1);
  }
}

template add_sync(bool A, string M) {
  static if(A) {
enum string add_sync =  auto  ~ M[1..$] ~
  () {synchronized(this) return  ~ M ~ ;};
  } else {
enum string add_sync = ;
  }
}

abstract class base {
  mixin(add_sync!(base));
  @sync private bool _bar;
  public void foo();
}

class derived: base {
  public override void foo() {}
}

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


[Issue 10600] regression(2.063.2) ICE: Assertion failed: (type-ty != Tstruct || ((TypeStruct *)type)-sym == this), function semantic, file struct.c, line 741.

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10600


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

   What|Removed |Added

   Keywords||ice, pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-07-12 10:51:30 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2338

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


[Issue 10624] [REG2.064a] ICE with tuple comparison

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10624


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

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2013-07-12 10:51:33 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2338

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


[Issue 9704] Destructor not called on function calls if postblit throws

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9704


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com


--- Comment #4 from monarchdo...@gmail.com 2013-07-12 11:07:53 PDT ---
(In reply to comment #3)
 *** Issue 10623 has been marked as a duplicate of this issue. ***

For reference, this was also discussed in learn.
http://forum.dlang.org/group/digitalmars.D.learn

http://forum.dlang.org/thread/20130628005448.0969@unknown

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


[Issue 9704] Destructor not called on function calls if postblit throws

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9704


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||and...@erdani.com


--- Comment #3 from monarchdo...@gmail.com 2013-07-12 11:05:06 PDT ---
*** Issue 10623 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 10599] CTFE: assert failure interpret.c 310

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10599



--- Comment #3 from github-bugzi...@puremagic.com 2013-07-12 11:44:35 PDT ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/8a9421b4d1e8b577a412a40bce0979a17a63a9c8
Fix bug 10599 CTFE assert with bad struct initializer

This is an ErrorExp propagation/gagging bug. Errors in struct initializers
don't generate error messages when used, but still need to report an
error to the enclosing function.

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


[Issue 10599] CTFE: assert failure interpret.c 310

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10599


Walter Bright bugzi...@digitalmars.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 10589] GC.malloc(sz, GC.BlkAttr.APPENDABLE) fails after a certain size

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10589


Rainer Schuetze r.sagita...@gmx.de changed:

   What|Removed |Added

 CC||r.sagita...@gmx.de


--- Comment #1 from Rainer Schuetze r.sagita...@gmx.de 2013-07-12 13:37:39 
PDT ---
I think you are mixing two levels of abstractions here:

ubyte*  p = cast(ubyte*)GC.malloc(i, GC.BlkAttr.APPENDABLE);
ubyte[] s = p[0 .. 0];
writefln(%6s: s.capacity  is %6s, i, s.capacity);

GC.malloc requests raw memory from the GC. capacity is a function very specific
to the way arrays are implemented on top of it in rt/lifetime.d. It assumes
that any allocation with bit APPENDABLE set and that is larger than a page of
4kB reserves 16 bytes at the start of the allocation to store the actually used
length of the memory.

So, to create an empty array manually that works with capacity, you'd have to
set s to

   auto start = i = 2048 ? 0 : 16;
   ubyte[] s = p[start .. start];

and you'd better clean that full memory block first to avoid the length field
containing garbage.

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


[Issue 1982] [CTFE] Problems with compile-time null

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=1982



--- Comment #2 from github-bugzi...@puremagic.com 2013-07-12 14:07:00 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/64ea3d8a7223f6c9b1d00e167a5ced4bf20e7992
Fix bug 1982 [CTFE] Problems with compile-time null

Test case only. This was fixed by doing const-folding in CTFE.

https://github.com/D-Programming-Language/dmd/commit/a0ba3b2aa31d93709a1ed3e21f5a2deca6c761fc
Merge pull request #2339 from donc/fourCTFEtestcases

Test cases for bugs 1982, 7988, 8253, and 8285.

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


[Issue 7988] [CTFE] CTFE return values should be allowed in compile-time expressions

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=7988



--- Comment #1 from github-bugzi...@puremagic.com 2013-07-12 14:07:10 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/9d8d7864c85f4e07be7a7d24ba92108f2206b9f4
Fix issue 7988 allow CTFE return values in compile-time exprs

Test case only. This bug was fixed by doing constfolding in CTFE.

https://github.com/D-Programming-Language/dmd/commit/a0ba3b2aa31d93709a1ed3e21f5a2deca6c761fc
Merge pull request #2339 from donc/fourCTFEtestcases

Test cases for bugs 1982, 7988, 8253, and 8285.

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


[Issue 8285] Issue with slice returned from CTFE function

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8285



--- Comment #3 from github-bugzi...@puremagic.com 2013-07-12 14:07:19 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/f5c5d43e35a48d6cc63a2fe05c68f8b88ef5e21d
Fix issue 8285 Issue with slice returned from CTFE function

Test case only; fixed by using CTFE to do constfolding.

https://github.com/D-Programming-Language/dmd/commit/a0ba3b2aa31d93709a1ed3e21f5a2deca6c761fc
Merge pull request #2339 from donc/fourCTFEtestcases

Test cases for bugs 1982, 7988, 8253, and 8285.

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


[Issue 8253] CTFE ICE: calling of member function of non-CTFE class variable

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8253



--- Comment #3 from github-bugzi...@puremagic.com 2013-07-12 14:07:14 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/339ff2a11b95a42b31e0d11ba17ea970c8cb391b
Fix issue 8253 ICE: calling of member function of non-CTFE class variable

Test case only, already fixed by doing constfolding in CTFE.

https://github.com/D-Programming-Language/dmd/commit/a0ba3b2aa31d93709a1ed3e21f5a2deca6c761fc
Merge pull request #2339 from donc/fourCTFEtestcases

Test cases for bugs 1982, 7988, 8253, and 8285.

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


[Issue 9704] Destructor not called on function calls if postblit throws

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9704



--- Comment #5 from Andrei Alexandrescu and...@erdani.com 2013-07-12 14:17:12 
PDT ---
Pasting the additional example here for reference:

import std.stdio;

struct S1 { 
this(int) { writeln(constructed); } 
~this() { writeln(destroyed); } 
}
struct S2 { this(int) { throw new Exception(a); } }

void fun(S1, S2, S1) {}

void main()
{
fun(S1(2), S2(2), S1(2));
}

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


[Issue 10589] GC.malloc(sz, GC.BlkAttr.APPENDABLE) fails after a certain size

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10589



--- Comment #2 from monarchdo...@gmail.com 2013-07-12 14:29:45 PDT ---
(In reply to comment #1)
 I think you are mixing two levels of abstractions here:
 
 ubyte*  p = cast(ubyte*)GC.malloc(i, GC.BlkAttr.APPENDABLE);
 ubyte[] s = p[0 .. 0];
 writefln(%6s: s.capacity  is %6s, i, s.capacity);
 
 GC.malloc requests raw memory from the GC. capacity is a function very 
 specific
 to the way arrays are implemented on top of it in rt/lifetime.d. It assumes
 that any allocation with bit APPENDABLE set and that is larger than a page of
 4kB reserves 16 bytes at the start of the allocation to store the actually 
 used
 length of the memory.
 So, to create an empty array manually that works with capacity, you'd have to
 set s to
 
auto start = i = 2048 ? 0 : 16;
ubyte[] s = p[start .. start];

Hum. That worked.

Is the memory layout for the APPENDABLE data documented somewhere, or are these
just reverse-engineered magic numbers?

 and you'd better clean that full memory block first to avoid the length field
 containing garbage.

Nope (I think). Length is carried in the slice, not the block. Block only
contains capacity/used info.



Thank you for your answer.

I suppose the behavior isn't going to change. Still, this requires more
support. I think APPENDABLE should be better documented.

In particular, the magic numbers should be user accessible via manifest
constants, or functions, so as to not have to guess/reverse engineer them. This
is what I've discovered:

   0 -  256 bytes:
   1 Byte APPENDABLE info at end;
 Capacity = memory size -  1;
 257 - 2048 bytes:
   2 Byte APPENDABLE info at end;
 Capacity = memory size -  2;
2049 -  bytes:
  16 Byte APPENDABLE info at beginning;
   1 Byte unknown info at end;
 Capacity = memory size - 17;

Are these numbers platform depending? What the heck is that 1 byte that leads
to 17 byte difference I'm seeing.

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


[Issue 8441] mixin containing template functions causes compiler errors

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8441



--- Comment #17 from jfanati...@gmx.at 2013-07-12 14:43:48 PDT ---
I just finished a new implementation, replacing the template mixin with a
string mixin. You can find it here:

https://github.com/phobos-x/phobosx/blob/master/source/phobosx/signal.d

All unittests pass, you don't need any patched compiler. I still have to add
some more checks and do some polishing, I will also put it in the dub registry.
But you and David seem to have an urgent need, so feel free to try it out
immediately - Be my pre-alpha Testers :-)

Best regards,

Robert

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


[Issue 10589] GC.malloc(sz, GC.BlkAttr.APPENDABLE) fails after a certain size

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10589



--- Comment #3 from Rainer Schuetze r.sagita...@gmx.de 2013-07-12 14:59:12 
PDT ---
Is the memory layout for the APPENDABLE data documented somewhere, or are these
just reverse-engineered magic numbers?

There is some description in rt/lifetime.d starting around line 200.

Nope (I think). Length is carried in the slice, not the block. 
 Block only contains capacity/used info.

Sorry, I meant the used info that must be reset.

In particular, the magic numbers should be user accessible via manifest
 constants, or functions, so as to not have to guess/reverse engineer them. 

The constants are defined privately in lifetime.d as SMALLPAD, MEDPAD and
LARGEPAD. I suspect the trailing byte for large arrays is added so that
arr[$..$] always points into the same memory block, and not the next one.

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


[Issue 10626] New: ICE with ternary operator and vector operation

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10626

   Summary: ICE with ternary operator and vector operation
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Keywords: ice
  Severity: regression
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: nilsboss...@googlemail.com


--- Comment #0 from Nils nilsboss...@googlemail.com 2013-07-12 18:44:07 PDT 
---
Fails with v2.064-devel-a0ba3b2.
Works with v2.063.2.

---
cat  test.d  code
void main()
{
double[2] v;
bool b;
double[2] result = (b ? 1 : -1) * v[];
}
code
dmd -c -o- test.d
---
dmd: arrayop.c:525: virtual void BinExp::buildArrayIdent(OutBuffer*,
Expressions*): Assertion `0' failed.
Aborted (core dumped)
---

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


[Issue 9400] initializing enum T[n] with a single value changes its type to T

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=9400


Nils nilsboss...@googlemail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WORKSFORME


--- Comment #1 from Nils nilsboss...@googlemail.com 2013-07-12 18:56:42 PDT 
---
apparently fixed in the meantime

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


[Issue 10626] ICE with vector operation

2013-07-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=10626


Nils nilsboss...@googlemail.com changed:

   What|Removed |Added

Summary|ICE with ternary operator   |ICE with vector operation
   |and vector operation|


--- Comment #1 from Nils nilsboss...@googlemail.com 2013-07-12 19:31:20 PDT 
---
Looks like the ternary operator is innocent. Another trigger:

---
cat  test2.d  code
void main()
{
double[2] v, x;
double[2] r = v[] * x[0];
}

code
dmd -c -o- test2.d
---
dmd: arrayop.c:525: virtual void BinExp::buildArrayIdent(OutBuffer*,
Expressions*): Assertion `0' failed.
Aborted (core dumped)
---

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