[Issue 8608] ICE(interpret.c): CTFE of erroneous struct with postblit

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8608


Don clugd...@yahoo.com.au changed:

   What|Removed |Added

Version|unspecified |D2
Summary|CTFE seems to be invoked|ICE(interpret.c): CTFE of
   |implicitly(std.parallelism. |erroneous struct with
   |task)   |postblit


--- Comment #3 from Don clugd...@yahoo.com.au 2012-09-10 01:03:22 PDT ---
Reduced test case shows it is related to postblit.
-
struct Bug8608{
this(this) {}
}

void func08(Bug8608 x) { }

void task08(F)(F fun) {}

void bug8608() {
Bug8608 file;
task08!(func08(file));
}

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


[Issue 8624] Regression: CTFE: long comparisons completely broken

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8624



--- Comment #4 from github-bugzi...@puremagic.com 2012-09-10 01:33:07 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/9a732a03c9f671a7c45a9f7dbe485a0b3489f997
Fix issue 8624 Regression: CTFE: long comparisons completely broken

An implicit narrowing cast from long to int. Catastrophic.

https://github.com/D-Programming-Language/dmd/commit/475178efa63597d6d55a074406678ab92f1075ed
Merge pull request #1112 from donc/regression8624ctfe

Fix issue 8624 Regression: CTFE: long comparisons completely broken

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


[Issue 8624] Regression: CTFE: long comparisons completely broken

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8624


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 8637] New: Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637

   Summary: Enforcement and purity
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: Phobos
AssignedTo: nob...@puremagic.com
ReportedBy: monarchdo...@gmail.com


--- Comment #0 from monarchdo...@gmail.com 2012-09-10 02:58:42 PDT ---
The argument taken by enforce must be castable to bool, so the the
implementation can do the cast. However, enforce is declared pure, so if the
cast operator is not pure, the compilation fails:


import std.regex;
import std.exception;
void main()
{
auto m = match(hello world, regex(world));
assert(m); //- Fine
enforce(m); //Here
}

Error: pure function 'enforce' cannot call impure function '~this'
Error: pure function 'enforce' cannot call impure function 'opCast'


The messages come from:


T enforce(T)(T value, lazy const(char)[] msg = null, string file = __FILE__,
size_t line = __LINE__) @safe pure
{
if (!value) bailOut(file, line, msg);
return value;
}

if(!value): This makes an impure call to opCast.

enforce(T)(T value... This uses pass by value, and makes an impure call to
the destructor



I have no idea what a good fix would be. Regarding pass by value, wouldn't this
be a textbook example of using auto ref with auto return? I have no idea...

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


[Issue 8629] UFCS resolution prints fake error

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8629



--- Comment #2 from github-bugzi...@puremagic.com 2012-09-10 04:30:28 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/cc4598aa7996bb31982cd90920c4ec37d1711b44
fix Issue 8629 - UFCS resolution prints fake error

https://github.com/D-Programming-Language/dmd/commit/caf289137881ec290166afa72bc787bfbd6bd970
Merge pull request #1106 from 9rnsr/fix8629

Issue 8629 - UFCS resolution prints fake error

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


[Issue 8634] Anonymous function parameters

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8634


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

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


--- Comment #4 from Maxim Fomin ma...@maxim-fomin.ru 2012-09-10 05:22:14 PDT 
---
I have no desire for disputes about things which are not necessarily defective
(as revealed here) and claimed by D people to be intentional part of the
language.

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


[Issue 8638] New: built-in array opSliceAssign fails with user defined opAssign

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8638

   Summary: built-in array opSliceAssign fails with user defined
opAssign
   Product: D
   Version: unspecified
  Platform: All
OS/Version: All
Status: NEW
  Severity: normal
  Priority: P2
 Component: DMD
AssignedTo: nob...@puremagic.com
ReportedBy: monarchdo...@gmail.com


--- Comment #0 from monarchdo...@gmail.com 2012-09-10 06:35:34 PDT ---
In a word:


struct S
{
void opAssign(int j);
}

void main()
{
int[] i;
i[] = 5; //Here1

S[] s;
s[] = 5; //Here2
}


Actual behavior:
Here2: Error: cannot implicitly convert expression (5) of type int to S[]

Expected behavior:
Here2: opAssign(5) is called for each member of s, just like for Here1.

Ditto for all other flavors of opSliceSomething.

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


[Issue 6764] IFTI fails on typesafe variadic function over static array with non IntegerLiteral length

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=6764


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

   What|Removed |Added

Version|D1  D2 |D1


--- Comment #3 from Kenji Hara k.hara...@gmail.com 2012-09-10 07:35:48 PDT ---
Fixed in D2.

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637


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

   What|Removed |Added

Version|unspecified |D2


--- Comment #1 from Kenji Hara k.hara...@gmail.com 2012-09-10 08:14:02 PDT ---
(In reply to comment #0)
 The argument taken by enforce must be castable to bool, so the the
 implementation can do the cast. However, enforce is declared pure, so if the
 cast operator is not pure, the compilation fails:
[snip]
 
 Error: pure function 'enforce' cannot call impure function '~this'
 Error: pure function 'enforce' cannot call impure function 'opCast'
 

The cause might be the explicit annotation with pure.

 The messages come from:
 
 
 T enforce(T)(T value, lazy const(char)[] msg = null, string file = __FILE__,
 size_t line = __LINE__) @safe pure
 {
 if (!value) bailOut(file, line, msg);
 return value;
 }
 
 if(!value): This makes an impure call to opCast.
 
 enforce(T)(T value... This uses pass by value, and makes an impure call to
 the destructor

 I have no idea what a good fix would be. Regarding pass by value, wouldn't 
 this
 be a textbook example of using auto ref with auto return? I have no 
 idea...

The strict pure annotation is introduced by the pull #263.
https://github.com/D-Programming-Language/phobos/pull/263

As you can see, the pure annotations were just for the documentation. At this
point, impure destructor had not been considered at all in the discussion.

Then, now, the pure annotation causes this problem, so I think we should remove
it and rely on the pure attribute inference.

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637



--- Comment #2 from monarchdo...@gmail.com 2012-09-10 08:43:02 PDT ---
If that is the fix, I can make the pull request. Do you want me to do it, or
are you on it?

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637



--- Comment #3 from Kenji Hara k.hara...@gmail.com 2012-09-10 08:49:24 PDT ---
(In reply to comment #2)
 If that is the fix, I can make the pull request. Do you want me to do it, or
 are you on it?

Of course I would welcome your contribution.

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


[Issue 8482] RefCounted fails on opAssign

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8482


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #2 from monarchdo...@gmail.com 2012-09-10 08:45:54 PDT ---
Fixed in https://github.com/D-Programming-Language/phobos/pull/724

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637


monarchdo...@gmail.com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|nob...@puremagic.com|monarchdo...@gmail.com


--- Comment #4 from monarchdo...@gmail.com 2012-09-10 08:57:48 PDT ---
Will commit fix myself then.

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637


Jonathan M Davis jmdavisp...@gmx.com changed:

   What|Removed |Added

 CC||jmdavisp...@gmx.com


--- Comment #5 from Jonathan M Davis jmdavisp...@gmx.com 2012-09-10 09:07:50 
PDT ---
Both the annotation for pure and @safe need to go, because T's destructor and
opCast could be impure or non-@safe. When the explicit annotations were added,
clearly the destructor and opCast were not taken into account, since they're
not called directly and are easily forgotten.

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637



--- Comment #6 from Kenji Hara k.hara...@gmail.com 2012-09-10 09:15:20 PDT ---
(In reply to comment #5)
 Both the annotation for pure and @safe need to go, because T's destructor and
 opCast could be impure or non-@safe. When the explicit annotations were added,
 clearly the destructor and opCast were not taken into account, since they're
 not called directly and are easily forgotten.

Oh, that's right. We should remove both 'pure' and '@safe', and need to depends
on fully attribute inference.

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637


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

   What|Removed |Added

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


--- Comment #7 from Dmitry Olshansky dmitry.o...@gmail.com 2012-09-10 
12:44:17 PDT ---
Sorry, it had regex somewhere in description so I jumped in ;)

https://github.com/D-Programming-Language/phobos/pull/783

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


[Issue 8637] Enforcement and purity

2012-09-10 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=8637



--- Comment #8 from monarchdo...@gmail.com 2012-09-10 13:59:53 PDT ---
Darn!

Kidding asside, thanks.

BTW, I just made touch on std.regex itself. Seems like you may have wanted to
know: https://github.com/D-Programming-Language/phobos/pull/784

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