[Issue 10874] std.conv.to should support conversion from ulong to int-based enum

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


hst...@quickfur.ath.cx changed:

   What|Removed |Added

   Keywords||pull


--- Comment #1 from hst...@quickfur.ath.cx 2013-08-22 21:07:02 PDT ---
https://github.com/D-Programming-Language/phobos/pull/1505

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


[Issue 10610] interpret.c:4067 Assertion Failure

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


yebblies  changed:

   What|Removed |Added

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


--- Comment #3 from yebblies  2013-08-23 13:45:34 EST ---
https://github.com/D-Programming-Language/dmd/commit/a3e447c6f91c48ff9362f6bb609252b0d4d758e8

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


[Issue 6384] std.traits.isComparable

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



--- Comment #2 from hst...@quickfur.ath.cx 2013-08-22 20:16:25 PDT ---
There are actually at least two possible isComparable's that would be helpful
in signature constraints. One checks if "a B.init is
valid. To that end, maybe we need isValidBinaryOp instead:

template isValidBinaryOp(T1, string op, T2) {
alias isValidBinaryOp = is(mixin("T1.init" ~ op ~ "T2.init") : bool);
}

then we could write signature constraints of the form:

auto myFunc(T,U)(T t, U u)
if (isValidBinaryOp!(T, "<", U))
{ ... }

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


[Issue 10874] New: std.conv.to should support conversion from ulong to int-based enum

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

   Summary: std.conv.to should support conversion from ulong to
int-based enum
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: hst...@quickfur.ath.cx


--- Comment #0 from hst...@quickfur.ath.cx 2013-08-22 18:54:49 PDT ---
Code:
--
import std.conv;
enum Test { a = 0 }
void main() {
ulong l = 0;
auto t = l.to!Test;
}
--

DMD output:

/usr/src/d/phobos/std/conv.d(281): Error: template std.conv.toImpl does not
match any function template declaration. Candidates are:
/usr/src/d/phobos/std/conv.d(337):std.conv.toImpl(T, S)(S value) if
(isImplicitlyConvertible!(S, T) && !isEnumStrToStr!(S, T) && !isNullToStr!(S,
T))
/usr/src/d/phobos/std/conv.d(449):std.conv.toImpl(T, S)(ref S s) if
(isRawStaticArray!S)
/usr/src/d/phobos/std/conv.d(465):std.conv.toImpl(T, S)(S value) if
(is(typeof(S.init.opCast!T()) : T) && !isExactSomeString!T)
/usr/src/d/phobos/std/conv.d(496):std.conv.toImpl(T, S)(S value) if
(!isImplicitlyConvertible!(S, T) && is(T == struct) && is(typeof(T(value
/usr/src/d/phobos/std/conv.d(546):std.conv.toImpl(T, S)(S value) if
(!isImplicitlyConvertible!(S, T) && is(T == class) && is(typeof(new T(value
/usr/src/d/phobos/std/conv.d(281):... (16 more, -v to show) ...
/usr/src/d/phobos/std/conv.d(281): Error: template std.conv.toImpl(T, S)(S
value) if (isImplicitlyConvertible!(S, T) && !isEnumStrToStr!(S, T) &&
!isNullToStr!(S, T)) cannot deduce template function from argument types
!(Test)(ulong)
/usr/src/d/phobos/std/conv.d(281): Error: template instance toImpl!(Test)
errors instantiating template
test.d(5): Error: template instance std.conv.to!(Test).to!(ulong) error
instantiating

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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


hst...@quickfur.ath.cx changed:

   What|Removed |Added

   Keywords||pull


--- Comment #7 from hst...@quickfur.ath.cx 2013-08-22 18:11:31 PDT ---
https://github.com/D-Programming-Language/phobos/pull/1504

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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



--- Comment #6 from hst...@quickfur.ath.cx 2013-08-22 18:08:22 PDT ---
Argh. I wish bugzilla allowed editing of comments... What I meant was:
getNthInt is called from inside a *runtime* if-condition that evaluates to
false when the spec is "%s" and the argument is a ulong enum, but since this
if-condition can only be checked at runtime, getNthInt must be able to compile
in that case. Currently it doesn't compile because it assumes isIntegral!T
means T can be implicitly converted to int, which is not true if the argument
is a ulong (or a ulong enum). So the fix is to replace isIntegral with
is(typeof(to!int(...))) so that at compile-time the compiler will hardcode the
function to throw an exception when an invalid argument is given. (It won't
actually throw at runtime if the if-condition in the caller evaluates to false
at runtime.)

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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



--- Comment #5 from hst...@quickfur.ath.cx 2013-08-22 17:45:59 PDT ---
Aha! I found the reason: getNthInt is called from a *compile-time* check, so
even if the spec for enum is "%s", the compiler still has to compile this
branch of the code. So the fix is for getNthInt to *statically* verify
convertibility to int before attempting to call to!int.

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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



--- Comment #4 from Andrej Mitrovic  2013-08-22 
17:33:31 PDT ---
(In reply to comment #3)
> Hmm actually, there appears to be a bug somewhere else. The spec shouldn't be
> spec.DYNAMIC at all, since the default spec for enums is "%s". So something
> went wrong before this point.

Last time I tried to fix this I lost my head in the formatting jungle. Good
luck!

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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



--- Comment #3 from hst...@quickfur.ath.cx 2013-08-22 17:31:41 PDT ---
Hmm actually, there appears to be a bug somewhere else. The spec shouldn't be
spec.DYNAMIC at all, since the default spec for enums is "%s". So something
went wrong before this point.

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


[Issue 6893] Write of enum member represented with ubyte or ulong

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



--- Comment #2 from hst...@quickfur.ath.cx 2013-08-22 17:21:19 PDT ---
The problem appears to be std.format.getNthInt, under "static if
(isIntegral!...)": the code assumes that if a type is integral, it can be
converted to int, but this is not true when the base type of the enum is ulong.

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


[Issue 10873] Refused extern(C) function type definition with new alias syntax

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


Andrej Mitrovic  changed:

   What|Removed |Added

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


--- Comment #1 from Andrej Mitrovic  2013-08-22 
17:09:56 PDT ---
*** This issue has been marked as a duplicate of issue 10471 ***

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


[Issue 10873] New: Refused extern(C) function type definition with new alias syntax

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

   Summary: Refused extern(C) function type definition with new
alias syntax
   Product: D
   Version: D2
  Platform: x86
OS/Version: Windows
Status: NEW
  Keywords: rejects-valid
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2013-08-22 17:06:59 PDT ---
alias extern(C) void* function(in size_t size) nothrow T1; // OK
alias T2 = extern(C) void* function(in size_t size) nothrow; // Error
void main() {}


dmd 2.064alpha:

test.d(2): Error: basic type expected, not extern
test.d(2): Error: semicolon expected to close alias declaration
test.d(2): Error: no identifier for declarator extern (C) void* function(in
size_t size) nothrow

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


[Issue 10471] New alias syntax can't handle extern qualifiers

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


Andrej Mitrovic  changed:

   What|Removed |Added

 CC||bearophile_h...@eml.cc


--- Comment #2 from Andrej Mitrovic  2013-08-22 
17:09:56 PDT ---
*** Issue 10873 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 4085] Steps toward a static foreach

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



--- Comment #11 from bearophile_h...@eml.cc 2013-08-22 16:53:06 PDT ---
Another comment by Timon Gehr:

> We really need to define a consistent semantics for compile 
> time symbol manipulation though.
>
> Eg:
>
> class C{
> int a;
> static foreach(x;__traits(allMembers,C)){
> mixin("int "~__traits(identifier,x)~"b;");
> }
> }
>
> What is this supposed to do? "class C{ int a,ab; }"? 
> Non-terminating compilation? Error?
>
> My best guess is that the above code should be illegal,

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


[Issue 4085] Steps toward a static foreach

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



--- Comment #10 from bearophile_h...@eml.cc 2013-08-22 16:50:01 PDT ---
Adapted from two comments by Timon Gehr:

> It's important to keep them separate regardless. static foreach is close 
> to useless if it introduces a new scope for its body.
> 
> I.e.:
> 
> int main() {
> foreach (_; Seq!int) {
> int x;
> }
> return x; // error
> }
> 
> int main() {
> static foreach (_; Seq!int) {
> int x;
> }
> return x; // ok
> }
> 
> I think the relationship between foreach and static foreach 
> should essentially mirror that of if and static if.

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


[Issue 10872] New: Typedef and const

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

   Summary: Typedef and const
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: john.loughran.col...@gmail.com


--- Comment #0 from John Colvin  2013-08-22 
23:55:25 BST ---
alias Typedef!(const(void*)) CVP;

CVP cvp; 

//Error: cannot modify const expression Typedef_payload

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


[Issue 10871] Typedef doesn't work with is null

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



--- Comment #2 from John Colvin  2013-08-22 
23:17:08 BST ---
(In reply to comment #1)
> I'm not sure how we could implement this, we don't have an "opIs" operator.

yeah I have no idea either.


Is there any other way of getting something like a type-safe alias?

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


[Issue 10871] New: Typedef doesn't work with is null

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

   Summary: Typedef doesn't work with is null
   Product: D
   Version: D2
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: john.loughran.col...@gmail.com


--- Comment #0 from John Colvin  2013-08-22 
23:05:22 BST ---
import std.typecons;

alias Typedef!(void*) VP;

void main()
{
VP vp; 
assert(vp is null);  //won't compile
}

Error: incompatible types for ((vp) is (null)): 'Typedef!(void*, null)' and
'typeof(null)'

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


[Issue 10871] Typedef doesn't work with is null

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


Andrej Mitrovic  changed:

   What|Removed |Added

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


--- Comment #1 from Andrej Mitrovic  2013-08-22 
15:09:02 PDT ---
I'm not sure how we could implement this, we don't have an "opIs" operator.

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


[Issue 8848] Array literals and AA literals are rejected as template value parameters

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


Andrej Mitrovic  changed:

   What|Removed |Added

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


--- Comment #3 from Andrej Mitrovic  2013-08-22 
14:41:26 PDT ---
(In reply to comment #2)
> (In reply to comment #1)
> > (In reply to comment #0)
> > > The template spec says that they are valid (both D1 and D2),
> > 
> > So are associative arrays accepted, but simple arrays aren't?
> > 
> > template Foo(int[] X) {}
> > template Bar(int[5] X) {}
> > void main() {}
> 
> No, the current DMD accepts neither arrays or AAs in declarations. But both 
> can
> be passed in template tuple parameters.

W.r.t. arrays, is this just a parser issue? It's odd that we have this
situation:

-
// template Foo(ubyte[]) { }  // nogo
template Bar(T...) { } // ok

void main()
{
enum ubyte[] x = [1, 2];

// alias y = Foo!(x);
alias z = Bar!(x);  // ok
}
-

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


[Issue 10610] interpret.c:4067 Assertion Failure

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



--- Comment #2 from Don  2013-08-22 12:45:24 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2495

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


[Issue 9954] Runtime wrong code with global interface var created in CTFE

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


Don  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 10869] Ddoc mark methods with "const" twice

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


Andrej Mitrovic  changed:

   What|Removed |Added

   Keywords||ddoc, pull
Version|unspecified |D2
 AssignedTo|nob...@puremagic.com|andrej.mitrov...@gmail.com


--- Comment #2 from Andrej Mitrovic  2013-08-22 
10:05:17 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2494

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


[Issue 10869] Ddoc mark methods with "const" twice

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



--- Comment #3 from Andrej Mitrovic  2013-08-22 
10:06:29 PDT ---
There's another problem, synchronized methods were usually handled in the
prefix function, which output "synchronized", but then MODtoBuffer in
toCBufferWithAttributes outputs "shared". So I'll file this as another bug once
this pull is merged first.

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


[Issue 10870] Ddoc adds "abstract" to interfaces

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


Andrej Mitrovic  changed:

   What|Removed |Added

   Keywords||pull


--- Comment #1 from Andrej Mitrovic  2013-08-22 
09:48:58 PDT ---
https://github.com/D-Programming-Language/dmd/pull/2493

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


[Issue 10869] Ddoc mark methods with "const" twice

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


Andrej Mitrovic  changed:

   What|Removed |Added

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


--- Comment #1 from Andrej Mitrovic  2013-08-22 
09:39:11 PDT ---
Introduced by f5f71ce1f50f2c33240475c44376cf176b75217e by fixing Issue 3445.

prefix is first called in declarationToDocBuffer, which adds one or more of
these:

deprecated
static
final
abstract
const
immutable
synchronized

But then toCBufferWithAttributes for functions is called which adds one or more
of these when it calls MODtoBuffer:

immutable
shared
const
inout

So there's a bit of an overlap.

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


[Issue 10870] New: Ddoc adds "abstract" to interfaces

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

   Summary: Ddoc adds "abstract" to interfaces
   Product: D
   Version: unspecified
  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  2013-08-22 09:30:14 PDT ---
Example: std.stream.InputStream

http://dlang.org/phobos/std_stream.html

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


[Issue 10869] New: Methods are marked with "const" twice

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

   Summary: Methods are marked with "const" twice
   Product: D
   Version: unspecified
  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  2013-08-22 09:26:14 PDT ---
In std.xml all methods that are const are marked with "const" twice.

http://dlang.org/phobos/std_xml.html

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


[Issue 10868] std.string.translate should take an optional buffer

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


Brad Anderson  changed:

   What|Removed |Added

 CC||e...@gnuk.net


--- Comment #5 from Brad Anderson  2013-08-22 09:06:38 PDT ---
(In reply to comment #1)
> I think that we should move towards having pretty much any Phobos function
> which allocates an array (including strings) have an overload which takes an
> output range to write to instead. However, we should probably make sure that
> output ranges are appropriately ironed out before we do that heavily (e.g. we
> really need to have a clear way of asking whether an output range is full).
> Input ranges are used heavily, but output ranges have had much less attention
> and may need additional work before they're used that heavily.

Monarch's https://github.com/D-Programming-Language/phobos/pull/1439 improves
the Output Range situation quite a bit.

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


[Issue 10868] std.string.translate should take an optional buffer

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


Andrej Mitrovic  changed:

   What|Removed |Added

   Keywords||pull


--- Comment #4 from Andrej Mitrovic  2013-08-22 
07:38:06 PDT ---
https://github.com/D-Programming-Language/phobos/pull/1501

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


[Issue 9645] std.algorithm.splitter on string with char as separator performs badly in certain situations

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


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||monarchdo...@gmail.com


--- Comment #2 from monarchdo...@gmail.com 2013-08-22 07:36:21 PDT ---
(In reply to comment #0)
> char splitter took 2 secs, 702 ms, and 188 μs
>
> substring splitter took 1 sec, 71 ms, and 736 μs

Changes where made to improve the situation, However, due to performance bug
10848, it is still slower.

That said, I have a standing performance improvement pull for find:
https://github.com/D-Programming-Language/phobos/pull/1492
fix Issue 10403 - memchr optimization for std.algorithm.find
http://d.puremagic.com/issues/show_bug.cgi?id=10403

With it, I'm getting:
char splitter took 429 ms, 298 μs, and 8 hnsecs
substring splitter took 2 secs, 323 ms, 301 μs, and 7 hnsecs

Gone from twice as slow to five times as fast. Not bad :)

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


[Issue 5842] hash table corruption

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


hst...@quickfur.ath.cx changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #3 from hst...@quickfur.ath.cx 2013-08-22 07:39:51 PDT ---
Verified fixed in git HEAD.

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


[Issue 10383] redundant splitter implementations conflict with each other

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


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||monarchdo...@gmail.com
 Resolution||DUPLICATE


--- Comment #1 from monarchdo...@gmail.com 2013-08-22 06:37:20 PDT ---
I'll fix this shortly.

*** This issue has been marked as a duplicate of issue 6730 ***

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


[Issue 6730] std.algorithm.splitter conflicts with std.array.splitter

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


monarchdo...@gmail.com changed:

   What|Removed |Added

 CC||dmitry.o...@gmail.com


--- Comment #4 from monarchdo...@gmail.com 2013-08-22 06:37:21 PDT ---
*** Issue 10383 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 10806] Interface covariance for more than one interface at once also broken

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



--- Comment #3 from FeepingCreature  2013-08-22 
01:54:04 PDT ---
> Additional example:
> 
> http://dpaste.dzfl.pl/a390f1f4

That's not the same bug. The only issue with that code is that the compiler
fails to warn you that the call to foo() is ambiguous.

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


[Issue 10862] Assignment inside if condition still sometimes accepted

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


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #20 from monarchdo...@gmail.com 2013-08-22 01:38:02 PDT ---
Confirmed fixed.

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


[Issue 5842] hash table corruption

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



--- Comment #2 from github-bugzi...@puremagic.com 2013-08-22 01:36:53 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/8df0da02f3e290e54b131452663dbf24d1ca88d1
Fix bug 5842.

The bug is caused by rehash producing an AA with a zero-size hashtable
when called on an empty but non-null AA.

https://github.com/D-Programming-Language/druntime/commit/8e5a7bd8d7dd99420d50d92bc7a85ef61b140275
Merge pull request #576 from quickfur/issue5842

Fix bug 5842.

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


[Issue 9937] CTFE floats don't overflow correctly

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



--- Comment #19 from Don  2013-08-22 00:57:25 PDT ---
(In reply to comment #18)
> (In reply to comment #15)
> > Don, I think we've reached an impasse here. How about we duke it out at 
> > Dcon? I
> > think some beers will get us to a solution!
> 
> And the result is?

Well, we didn't spend much time on it. I've realized a few things since then:

(1) My statement about x87 being the only case where you can get extra
precision, is wrong. Machines with FMA can effectively have twice double
precision on some operations. The 80-precision that DMD currently uses, is
actually not enough, even for x86-64.

(2) We have a few things conflated here.
The most severe bug in the current situation is the example in comment 4: the
compiler acts as though extra bits of precision can be transferred from compile
time to run time. This has a simple solution, see below.

(3) The solution to my initial test case is less clear. There needs to be a way
to reliably dump extra precision from a calculation. Walter's example in
comment 10 is one possibility.


Now, to fix comment 4:
All that needs to happen to fix this, is that floating point values should be
rounded to fit the target type *at the end of CTFE*, as part of the existing
scrubbing process.
They should not be carrying extra precision that could not possibly exist at
runtime. This rounding does not apply to const-folding (where things such as
inlining could happen which might preserve more precision).

The philosophy then would be, const-folding never reduces precision below what
the machine can support. But in cases where a CTFE value must be created, such
as in a template value parameter, the result has a single value throughout the
program. Any extra precision it used in generating that value is entirely
CTFE's business and should not leak into the rest of the compiler.

Now that I've split CTFE off completely from const-folding, it's possible to
make this distinction. This would fix the issue in comment 4, but doesn't
affect anything else.

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


[Issue 10862] Assignment inside if condition still sometimes accepted

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



--- Comment #19 from github-bugzi...@puremagic.com 2013-08-22 00:07:17 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/34e4acf514eff195b76c614102f8050255f79b36
fix issue 10862 - Assignment inside if condition still sometimes
accepted

https://github.com/D-Programming-Language/dmd/commit/297a3e0980a6938be52d2f1209fd29aecf96df95
Merge pull request #2491 from hpohl/10862

fix issue 10862 - Assignment inside if condition still sometimes accepted

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