[Issue 8314] New: randomSample primes with constant
http://d.puremagic.com/issues/show_bug.cgi?id=8314 Summary: randomSample primes with constant Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-06-27 23:35:08 PDT --- import std.random, std.range, std.stdio; void main() { foreach (_; 0 .. 100) { immutable seed = unpredictableSeed(); writeln(seed, " => ", randomSample(iota(100), 1, Random(seed)).front); } } The random generator is assigned to the Range only after it was primed and the default constructed random generator always returns the same first value. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8310] writeln of Range of fixed size array
http://d.puremagic.com/issues/show_bug.cgi?id=8310 Kenji Hara changed: What|Removed |Added Keywords||pull Platform|x86 |All OS/Version|Windows |All --- Comment #1 from Kenji Hara 2012-06-27 21:19:05 PDT --- https://github.com/D-Programming-Language/phobos/pull/652 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8053] Recursive alias this causes infinite loop
http://d.puremagic.com/issues/show_bug.cgi?id=8053 Kenji Hara changed: What|Removed |Added Keywords||pull Severity|normal |major --- Comment #2 from Kenji Hara 2012-06-27 19:44:13 PDT --- https://github.com/D-Programming-Language/dmd/pull/1028 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7980] Stack overflow / recursive expansion with alias this
http://d.puremagic.com/issues/show_bug.cgi?id=7980 Kenji Hara changed: What|Removed |Added Keywords||ice, pull OS/Version|Windows |All Severity|normal |major --- Comment #1 from Kenji Hara 2012-06-27 19:43:54 PDT --- https://github.com/D-Programming-Language/dmd/pull/1028 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7437] DMD enters infinite loop during overload resolution
http://d.puremagic.com/issues/show_bug.cgi?id=7437 Kenji Hara changed: What|Removed |Added Keywords||pull --- Comment #4 from Kenji Hara 2012-06-27 19:43:20 PDT --- https://github.com/D-Programming-Language/dmd/pull/1028 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8313] New: stack overflow on recursive ifti evaluation
http://d.puremagic.com/issues/show_bug.cgi?id=8313 Summary: stack overflow on recursive ifti evaluation Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: timon.g...@gmx.ch --- Comment #0 from timon.g...@gmx.ch 2012-06-27 10:14:07 PDT --- DMD 2.059 crashes due to what appears to be a stack overflow when run on the following code: auto bar()(int x){return x;} auto bar()(int x = bar()){return x;} static assert(bar(1)); -- 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
http://d.puremagic.com/issues/show_bug.cgi?id=5570 --- Comment #29 from Iain Buclaw 2012-06-27 10:02:08 PDT --- (In reply to comment #27) > (In reply to comment #26) > > (In reply to comment #25) > > > Sigh – seems like I was not exactly right about how GDC and LDC are > > > handling > > > arrays. Instead of treating them like the equivalent struct, they are > > > treated > > > as if length and pointer were two separate arguments […] > > They are created as a two field struct in GDC. > > Oh well, apparently GDC handles dynamic arrays like structs in most cases, but > as size_t/void* pairs for variadic arguments, ABI-wise – I discovered this > behavior looking at the generated assembly while working on the LDC vararg > ABI, > and didn't expect formal arguments to be treated differently. Maybe the > behavior should be unified? > Yes, that is correct for dynamic arrays. :~) It does it on a condition that's pre-set as 'true' and can't be altered by the user. Of course, if all two field types in D (D arrays; delegates) should *always* be passed in the same way as two field struct should be, then I can turn it off (and add a switch to toggle it), or remove this code. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8312] New: Too many error messages with a writeln of fixed size array
http://d.puremagic.com/issues/show_bug.cgi?id=8312 Summary: Too many error messages with a writeln of fixed size array 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 2012-06-27 09:39:16 PDT --- This is wrong D2 code (because currently D doesn't have variable length arrays, and n is a run-time value): import std.stdio; void main() { uint n = 1; uint[n + 1] foo; writeln(foo); } I think it prints too many error messages (DMD 2.060alpha): test.d(4): Error: variable n cannot be read at compile time test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: variable n cannot be read at compile time test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: variable n cannot be read at compile time test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: variable n cannot be read at compile time test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: variable n cannot be read at compile time test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u test.d(4): Error: Integer constant expression expected instead of n + 1u -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8311] New: Incomplete doc for std.getopt.getopt function.
http://d.puremagic.com/issues/show_bug.cgi?id=8311 Summary: Incomplete doc for std.getopt.getopt function. Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: websites AssignedTo: nob...@puremagic.com ReportedBy: mp8...@rambler.ru --- Comment #0 from Michele Pes 2012-06-27 07:09:18 PDT --- It seems to throw Exception("Unrecognized option " ~ bad_opt) when an unknown option is encountered. Docs tell about ConvException only... -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8310] New: writeln of Range of fixed size array
http://d.puremagic.com/issues/show_bug.cgi?id=8310 Summary: writeln of Range of fixed size array Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: rejects-valid Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2012-06-27 05:21:17 PDT --- import std.stdio: writeln; import std.algorithm: map; import std.array: array; void main() { char[2] two = ['a', 'b']; auto pieces = [1, 2].map!(x => two)(); writeln(pieces.array()); } It gives an acceptable output (dmd 2.060alpha): ["ab", "ab"] But printing the lazy range itself fails: import std.stdio: writeln; import std.algorithm: map; void main() { char[2] two = ['a', 'b']; auto pieces = [1, 2].map!(x => two)(); writeln(pieces); } ...\dmd2\src\phobos\std\format.d(1978): Error: template std.format.formatValue does not match any function template declaration ...\dmd2\src\phobos\std\format.d(1203): Error: template std.format.formatValue cannot deduce template function from argument types !()(LockingTextWriter,char[2u],FormatSpec!(char)) ...\dmd2\src\phobos\std\format.d(2006): Error: template std.format.formatValue does not match any function template declaration ...\dmd2\src\phobos\std\format.d(1203): Error: template std.format.formatValue cannot deduce template function from argument types !()(LockingTextWriter,char[2u],FormatSpec!(char)) ...\dmd2\src\phobos\std\format.d(2474): Error: template instance std.format.formatRange!(LockingTextWriter,Result,char) error instantiating ...\dmd2\src\phobos\std\format.d(2761):instantiated from here: formatValue!(LockingTextWriter,Result,char) ...\dmd2\src\phobos\std\format.d(420):instantiated from here: formatGeneric!(LockingTextWriter,Result,char) ...\dmd2\src\phobos\std\stdio.d(683):instantiated from here: formattedWrite!(LockingTextWriter,char,Result) ...\dmd2\src\phobos\std\stdio.d(1594):instantiated from here: write!(Result,char) test.d(6):instantiated from here: writeln!(Result) ...\dmd2\src\phobos\std\format.d(2761): Error: template instance std.format.formatValue!(LockingTextWriter,Result,char) error instantiating ...\dmd2\src\phobos\std\format.d(420):instantiated from here: formatGeneric!(LockingTextWriter,Result,char) ...\dmd2\src\phobos\std\stdio.d(683):instantiated from here: formattedWrite!(LockingTextWriter,char,Result) ...\dmd2\src\phobos\std\stdio.d(1594):instantiated from here: write!(Result,char) test.d(6):instantiated from here: writeln!(Result) ...\dmd2\src\phobos\std\format.d(420): Error: template instance std.format.formatGeneric!(LockingTextWriter,Result,char) error instantiating ...\dmd2\src\phobos\std\stdio.d(683):instantiated from here: formattedWrite!(LockingTextWriter,char,Result) ...\dmd2\src\phobos\std\stdio.d(1594):instantiated from here: write!(Result,char) test.d(6):instantiated from here: writeln!(Result) ...\dmd2\src\phobos\std\stdio.d(683): Error: template instance std.format.formattedWrite!(LockingTextWriter,char,Result) error instantiating ...\dmd2\src\phobos\std\stdio.d(1594):instantiated from here: write!(Result,char) test.d(6):instantiated from here: writeln!(Result) ...\dmd2\src\phobos\std\stdio.d(1594): Error: template instance std.stdio.File.write!(Result,char) error instantiating test.d(6):instantiated from here: writeln!(Result) test.d(6): Error: template instance std.stdio.writeln!(Result) error instantiating -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8309] New: ICE in typeMerge on 'void main(){auto x = [()=>1.0, ()=>1]; }'
http://d.puremagic.com/issues/show_bug.cgi?id=8309 Summary: ICE in typeMerge on 'void main(){auto x = [()=>1.0, ()=>1];}' Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: ice Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: timon.g...@gmx.ch --- Comment #0 from timon.g...@gmx.ch 2012-06-27 05:19:34 PDT --- DMD 2.059: void main(){auto x = [()=>1.0, ()=>1];} // ICE -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8308] New: wrong function literal type inference results in type coercion
http://d.puremagic.com/issues/show_bug.cgi?id=8308 Summary: wrong function literal type inference results in type coercion Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: timon.g...@gmx.ch --- Comment #0 from timon.g...@gmx.ch 2012-06-27 05:17:17 PDT --- DMD 2.059: void main(){ auto x = [x=>1.0, (long x)=>x][0]; // should be an error? double d = 1.0; assert(x(0)!=*cast(long*)&d); // (fails) } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7205] Function attribute inference fails in case of mutual dependencies
http://d.puremagic.com/issues/show_bug.cgi?id=7205 timon.g...@gmx.ch changed: What|Removed |Added Keywords||rejects-valid, spec --- Comment #1 from timon.g...@gmx.ch 2012-06-27 05:10:28 PDT --- Apparently the spec has been changed to document the buggy behaviour. function.html: "Cyclic functions (i.e. functions that wind up directly or indirectly calling themselves) are inferred as being impure, throwing, and @system." Therefore this is now both a spec and a compiler bug. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8307] New: inconsistent treatment of auto functions
http://d.puremagic.com/issues/show_bug.cgi?id=8307 Summary: inconsistent treatment of auto functions Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: timon.g...@gmx.ch --- Comment #0 from timon.g...@gmx.ch 2012-06-27 04:56:58 PDT --- function.html states: "Auto Functions Auto functions have their return type inferred from any ReturnStatements in the function body. An auto function is declared without a return type. If it does not already have a storage class, use the auto storage class. If there are multiple ReturnStatements, the types of them must match exactly. If there are no ReturnStatements, the return type is inferred to be void. " DMD sez: auto foo(){ return 0; return 0.0; } // ok auto bar(int x){ if(x==0) return 0; return bar(x-1)+1; } // error The compiler, the documentation or both need to be fixed. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7312] const should be abstract
http://d.puremagic.com/issues/show_bug.cgi?id=7312 timon.g...@gmx.ch changed: What|Removed |Added Status|NEW |RESOLVED Resolution||WONTFIX --- Comment #4 from timon.g...@gmx.ch 2012-06-27 04:40:06 PDT --- agreed. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8306] alias 'array' this consumes array on iteration
http://d.puremagic.com/issues/show_bug.cgi?id=8306 Jonathan M Davis changed: What|Removed |Added CC||jmdavisp...@gmx.com --- Comment #1 from Jonathan M Davis 2012-06-27 01:29:29 PDT --- On the latest master, I get the exact same behavior regardless of whether the alias is there. I always get these are the 1 aggregates: [7F3AB1ECEFF0] current agg [A(1, 2), A(2, 3), A(3, 4)] with length 3 and commenting out the first print statement has no effect on the second. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8306] New: alias 'array' this consumes array on iteration
http://d.puremagic.com/issues/show_bug.cgi?id=8306 Summary: alias 'array' this consumes array on iteration Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: tob...@pankrath.net --- Comment #0 from Tobias Pankrath 2012-06-27 01:05:37 PDT --- Created an attachment (id=1121) code showing the bug The attached program produces buggy code. This code stores an index (a list of Agg*) to some Agg and prints all Agg currently in this index. Then it prints every Agg in turn. In the foreach loop every agg is empty. Which is wrong. It works however, if I comment out the alias content this; line or if I don't print the index before the loop. struct A { int a; int b; } struct Agg { A[] content; alias content this; } void main(string[] args) { Agg* agg = new Agg; A l1 = A((1), (2)); A l2 = A((2), (3)); A l3 = A((3), (4)); agg.content ~= [l1, l2, l3]; Agg*[] aggIndex = [agg]; writefln("these are the %s aggregates:\n%s", aggIndex.length, aggIndex); foreach(Agg* myAgg; aggIndex) { A[] as = (*myAgg).content; writefln("current agg %s with length %s", as, as.length); } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 7312] const should be abstract
http://d.puremagic.com/issues/show_bug.cgi?id=7312 Don changed: What|Removed |Added CC||clugd...@yahoo.com.au --- Comment #3 from Don 2012-06-27 00:06:13 PDT --- It is currently possible to declare 'const int' variables even though they are identical to 'immutable int' ones. This is similar. And consider: const[] foo(S y) pure { ... } With this proposal, that's OK for struct S, as long as the struct has a pointer. But if S has no pointers, the return value needs to be immutable. That's just annoying. This proposal doesn't add any value. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8216] CTFE should allow 'pointer is inside range' comparisons
http://d.puremagic.com/issues/show_bug.cgi?id=8216 Don changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #3 from Don 2012-06-27 00:01:05 PDT --- merged into D1 in https://github.com/D-Programming-Language/dmd/commit/9071bdd5 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---