[Issue 12371] Error: undefined identifier with mixins
https://d.puremagic.com/issues/show_bug.cgi?id=12371 --- Comment #2 from Daniel Kozak kozz...@gmail.com 2014-03-18 00:46:49 PDT --- (In reply to comment #1) main.d and B.d looks same. Copy and paste mistake :): //B.d module B; public import A; class C1 : C2!(C1){} -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12394] Regression: std.regex unittests take agonizingly long to run - like hours on OSX
https://d.puremagic.com/issues/show_bug.cgi?id=12394 Dmitry Olshansky dmitry.o...@gmail.com changed: What|Removed |Added CC||dmitry.o...@gmail.com --- Comment #1 from Dmitry Olshansky dmitry.o...@gmail.com 2014-03-18 01:39:26 PDT --- I bet CTFE puts pressure on RAM and that Mac machine doesn't have that much. Looking at fresh unittests below, try changing: // bugzilla 12076 ... auto RE = ctRegex!(r(?!x\w+)\s(\w+)); To auto RE = ctRegex!(r(?!x[a-z]+)\s([a-z]+)); -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12397] New: CTFE ICE CompiledCtfeFunction::walkAllVars with 2.065
https://d.puremagic.com/issues/show_bug.cgi?id=12397 Summary: CTFE ICE CompiledCtfeFunction::walkAllVars with 2.065 Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: mrmoc...@gmx.de --- Comment #0 from Trass3r mrmoc...@gmx.de 2014-03-18 11:12:43 CET --- Compiling DustMite master. Here's the reduced version, removing ': int' makes it disappear: $ cat splitter.d struct DSplitter { enum Token : int { max = tokenLookup.length } immutable string[Token.max] tokenText = { }; } $ dmd splitter.d splitter.d(5): Error: undefined identifier tokenLookup splitter.d(8): Error: CTFE internal error: ErrorExp in splitter.d(8) dmd: interpret.c:310: static int CompiledCtfeFunction::walkAllVars(Expression*, void*): Assertion `0' failed. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 11913] nothrow std.algorithm.zip
https://d.puremagic.com/issues/show_bug.cgi?id=11913 monarchdo...@gmail.com changed: What|Removed |Added CC||monarchdo...@gmail.com --- Comment #1 from monarchdo...@gmail.com 2014-03-18 03:21:11 PDT --- AFAIK, requireSameLength shouldn't be throwing exceptions to begin with. So this can probably be solved without changing the API. Triggering the enforce requires calling popFront on an empty Zip, which is illegal to begin with. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12399] New: Static and selective import acts like a normal import
https://d.puremagic.com/issues/show_bug.cgi?id=12399 Summary: Static and selective import acts like a normal import Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: thecybersha...@gmail.com --- Comment #0 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-18 13:17:22 EET --- // test.d / import std.stream : Stream; static import std.stream; import std.stdio; void main() { File f; } /// test.d(8,7): Error: std.stream.File at C:\...\std\stream.d(1907,1) conflicts with std.stdio.File at C:\...\std\stdio.d(308,1) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] New: Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 Summary: Selective imports no longer act as static imports Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: thecybersha...@gmail.com --- Comment #0 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-18 13:15:43 EET --- // test.d / import std.stream : Stream; void main() { std.stream.File f; } /// I don't see any purpose for this breakage. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 Andrej Mitrovic andrej.mitrov...@gmail.com changed: What|Removed |Added CC||andrej.mitrov...@gmail.com --- Comment #1 from Andrej Mitrovic andrej.mitrov...@gmail.com 2014-03-18 04:22:45 PDT --- (In reply to comment #0) // test.d / import std.stream : Stream; void main() { std.stream.File f; } /// I don't see any purpose for this breakage. According to this[1] comment the above should work. [1] https://d.puremagic.com/issues/show_bug.cgi?id=12359#c0 Comment: - import std.ascii : isDigit; // Don't create alias silently bool isDigit(char c) { return true; } alias isDigit = std.ascii.isDigit; // explicitly merge overloads void main() { dchar d = 'a'; isDigit(d); // matches to std.ascii.isDiigt } - -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12400] New: Misleading/useless diagnostic on bad fully-qualified symbol name
https://d.puremagic.com/issues/show_bug.cgi?id=12400 Summary: Misleading/useless diagnostic on bad fully-qualified symbol name Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: diagnostic Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: thecybersha...@gmail.com --- Comment #0 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-18 13:31:50 EET --- test.d import std.typecons; alias std.typecons.Unqual!int X; Compiler output: test.d(1,8): Error: import typecons template identifier 'Unqual' is not a member of 'import typecons' test.d(1,8): Error: import typecons template identifier 'Unqual' is not a member of 'import typecons' test.d(3,31): Error: undefined identifier 'Unqual' The first two lines are misleading and useless. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12401] New: Internal Compiler Error for vector operation
https://d.puremagic.com/issues/show_bug.cgi?id=12401 Summary: Internal Compiler Error for vector operation Product: D Version: D2 Platform: All OS/Version: All 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 2014-03-18 05:07:55 PDT --- void main() { static immutable double[2] V = 0.5 * [1.0, 2.0]; } DMD 2.066alpha gives: test.d(2,36): Error: Internal Compiler Error: non-constant value [1.0, 2.0] -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12402] New: Improved typing for array concatenation
https://d.puremagic.com/issues/show_bug.cgi?id=12402 Summary: Improved typing for array concatenation Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: enhancement Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2014-03-18 05:14:14 PDT --- int[5] foo(int[2] a, int[3] b) { typeof(return) result = a ~ b; // OK return result; } int[5] bar(int[2] a, int[3] b) { return a ~ b; // Error } void main() {} DMD 2.066alpha gives: test2.d(6,12): Error: cannot implicitly convert expression (cast(int[])a ~ cast(int[])b) of type int[] to int[5] I suggest to support the code in bar() too. (A small optimization can even remove any heap allocations from the bar() function). I am not sure, but perhaps the solution is similar to a value range propagation: to propagate the statically known length of an array. (Expecially for immutable arrays, as in Issue 10594 ). -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 bearophile_h...@eml.cc changed: What|Removed |Added CC||bearophile_h...@eml.cc --- Comment #2 from bearophile_h...@eml.cc 2014-03-18 05:16:58 PDT --- (In reply to comment #0) // test.d / import std.stream : Stream; void main() { std.stream.File f; } /// I don't see any purpose for this breakage. Here you have asked to import just the name Stream, so the std.stream name is missing. This is how things should be in a serious implementation of a module system. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3882] Unused result of pure functions
https://d.puremagic.com/issues/show_bug.cgi?id=3882 --- Comment #27 from Per Nordl�w per.nord...@gmail.com 2014-03-18 06:40:27 PDT --- It's not a good idea to Inhibit more DMD warnings introducing spurious variables that could generate new variable not used warnings: If you're interested I could try looking into adding support in DMD for emitting such warnings. If so could someone guide to a place in the DMD sources where this check should be added? A better fix is to use the cast(void) everywhere. Ok, I'll change this today and then do a new pull request for Phobos. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3882] Unused result of pure functions
https://d.puremagic.com/issues/show_bug.cgi?id=3882 --- Comment #28 from bearophile_h...@eml.cc 2014-03-18 06:53:41 PDT --- (In reply to comment #27) If you're interested I could try looking into adding support in DMD for emitting such warnings. This is an entirely new topic, so it must be discussed in a different Bugzilla entry. I am interested in such warning, but by design D doesn't like warnings a lot, so if you create such warning, be prepared to see your pull request rejected (but it could be a good try anyway). If so could someone guide to a place in the DMD sources where this check should be added? Unfortunately you have to ask this to people that know the DMD compiler more than me. A better fix is to use the cast(void) everywhere. Ok, I'll change this today and then do a new pull request for Phobos. Good. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 --- Comment #3 from Kenji Hara k.hara...@gmail.com 2014-03-18 06:50:24 PDT --- (In reply to comment #0) // test.d / import std.stream : Stream; void main() { std.stream.File f; } /// I don't see any purpose for this breakage. What's changed? With 2.065: test.d(5): Error: undefined identifier std.stream.File With git-head: test.d(5): Error: undefined identifier 'File' test.d(5): Error: std.stream.File is used as a type Excepting the minor diagnostic change, the failing compilation is the expected result. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2278] Guarantee alignment of stack-allocated variables on x86
https://d.puremagic.com/issues/show_bug.cgi?id=2278 Denis Shelomovskij verylonglogin@gmail.com changed: What|Removed |Added CC||verylonglogin@gmail.com Severity|regression |enhancement --- Comment #14 from Denis Shelomovskij verylonglogin@gmail.com 2014-03-18 18:00:56 MSK --- This isn't a regression. It was just a luck build in Comment 10. As a [partial] workaround one can use an autoaligned buffer e.g. this one: http://denis-sh.bitbucket.org/unstandard/unstd.memory.misc.html -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12403] New: [AA] Associative array `get` function rejects some cases
https://d.puremagic.com/issues/show_bug.cgi?id=12403 Summary: [AA] Associative array `get` function rejects some cases Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: rejects-valid Severity: regression Priority: P2 Component: druntime AssignedTo: nob...@puremagic.com ReportedBy: verylonglogin@gmail.com --- Comment #0 from Denis Shelomovskij verylonglogin@gmail.com 2014-03-18 18:04:47 MSK --- This code used to work: --- void main() { const(int)[int] m; assert(m.get(0, 1) == 1); } --- main.d(4): Error: template object.get cannot deduce function from argument types !()(const(int)[int], int, int), candidates are: druntime-root\import\object.di(480):object.get(K, V)(inout(V[K]) aa, K key, lazy inout(V) defaultValue) druntime-root\import\object.di(486):object.get(K, V)(inout(V[K])* aa, K key, lazy inout(V) defaultValue) --- -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8758] A problem with zip.map.reduce at compile time
https://d.puremagic.com/issues/show_bug.cgi?id=8758 monarchdo...@gmail.com changed: What|Removed |Added CC||monarchdo...@gmail.com --- Comment #1 from monarchdo...@gmail.com 2014-03-18 07:23:40 PDT --- I have an improvement for Zip in the pipes that seems to fix this. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8584] bug with std.range.zip? range with opEquals(const) const not allowed inside zip
https://d.puremagic.com/issues/show_bug.cgi?id=8584 monarchdo...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||monarchdo...@gmail.com Resolution||WORKSFORME --- Comment #3 from monarchdo...@gmail.com 2014-03-18 07:27:27 PDT --- Appears solved. Not sure what fixed it, but I made some improvements to tuple that allows construction with const elements. That was probably the fixer. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12404] New: Zip.back is wrong
https://d.puremagic.com/issues/show_bug.cgi?id=12404 Summary: Zip.back is wrong Product: D Version: D2 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 2014-03-18 07:31:34 PDT --- Because it processes the back of each range, rather than an index. EG: // import std.range, std.stdio; void main() { auto a = [1]; auto b = [1, 2]; auto c = [1, 2, 3]; zip(a, b, c).back.writeln(); } // This writes Tuple!(int, int, int)(1, 2, 3). For shortest, it should print 1, 1, 1. For longest, it should print 0, 0, 3. For same length, it's an error. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12400] Misleading/useless diagnostic on bad fully-qualified symbol name
https://d.puremagic.com/issues/show_bug.cgi?id=12400 --- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-03-18 07:38:34 PDT --- With 2.065 and earlier, the code had been compiled, but it was incorrect behavior. So the rejection itself is valid and intended result. But I agree that the diagnostic is problematic. The reported error should be: test.d(3): Error: undefined identifier 'Unqual' in module std.typecons -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12400] Misleading/useless diagnostic on bad fully-qualified symbol name
https://d.puremagic.com/issues/show_bug.cgi?id=12400 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull --- Comment #2 from Kenji Hara k.hara...@gmail.com 2014-03-18 07:42:46 PDT --- https://github.com/D-Programming-Language/dmd/pull/3391 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12399] Static and selective import acts like a normal import
https://d.puremagic.com/issues/show_bug.cgi?id=12399 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull, rejects-valid --- Comment #1 from Kenji Hara k.hara...@gmail.com 2014-03-18 07:42:42 PDT --- The 'File' should match with only std.stdio.File struct. https://github.com/D-Programming-Language/dmd/pull/3391 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 --- Comment #4 from Andrej Mitrovic andrej.mitrov...@gmail.com 2014-03-18 07:46:02 PDT --- I think Vlad's test-case was probably from his AE lib. The issue is likely that 'std.stream' was publicly available from within some other module, for example this works in 2.065: - import std.stdio; // comment this out for failure import std.stream : Stream; void main() { new std.stream.File(__FILE__); } - This no longer works in git-head, but I think that's ok. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 --- Comment #5 from Kenji Hara k.hara...@gmail.com 2014-03-18 07:55:58 PDT --- (In reply to comment #4) I think Vlad's test-case was probably from his AE lib. The issue is likely that 'std.stream' was publicly available from within some other module, for example this works in 2.065: - import std.stdio; // comment this out for failure import std.stream : Stream; void main() { new std.stream.File(__FILE__); } - This no longer works in git-head, but I think that's ok. Yes, it is exactly the issue 313, it should be rejected in git-head. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8967] dirEntries throws when encountering a long path on windows
https://d.puremagic.com/issues/show_bug.cgi?id=8967 --- Comment #8 from Jay Norwood j...@prismnet.com 2014-03-18 09:50:23 PDT --- 2. Because you cannot use the \\?\ prefix with a relative path, relative paths are always limited to a total of MAX_PATH characters. So, yes, relative paths don't work when you use that prefix (I tried). But this below did work for me, where e is a DirEntry. nm = r\\?\ ~ absolutePath(e.name); There is also the issue of read-only status needing to be cleared if files or directories are to be removed. Our remove() and rmdir() don't take care of this for you, so if you are removing items with long paths the above expansion needs to be done before these getAttributes and setAttributes calls can succeed. uint att = getAttributes(fn); att ^= FILE_ATTRIBUTE_READONLY; setAttributes(fn, att); -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8967] dirEntries throws when encountering a long path on windows
https://d.puremagic.com/issues/show_bug.cgi?id=8967 --- Comment #9 from Walter Bright bugzi...@digitalmars.com 2014-03-18 12:46:04 PDT --- I don't agree with the does not apply comments. The \\?\ has different semantics, and having those semantics suddenly shift when the path gets long will be a surprising change to a user. My take is that if the user wants \\?\, they should prepend it themselves as a deliberate action, rather than hiding it in a conventional API. After all, the Windows functions themselves don't automatically add it, either. If it was straightforward they would have done it. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3490] DMD Never Inlines Functions that Could Throw
https://d.puremagic.com/issues/show_bug.cgi?id=3490 Andrei Alexandrescu and...@erdani.com changed: What|Removed |Added CC||and...@erdani.com --- Comment #8 from Andrei Alexandrescu and...@erdani.com 2014-03-18 12:50:45 PDT --- I assume this is enough to pay the bounty. @WalterBright? -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3490] DMD Never Inlines Functions that Could Throw
https://d.puremagic.com/issues/show_bug.cgi?id=3490 --- Comment #9 from Walter Bright bugzi...@digitalmars.com 2014-03-18 13:18:41 PDT --- (In reply to comment #8) I assume this is enough to pay the bounty. @WalterBright? yes -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3490] DMD Never Inlines Functions that Could Throw
https://d.puremagic.com/issues/show_bug.cgi?id=3490 Andrei Alexandrescu and...@erdani.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12391] DirEntries throws in foreach
https://d.puremagic.com/issues/show_bug.cgi?id=12391 Mike Wey mike-...@planet.nl changed: What|Removed |Added CC||mike-...@planet.nl OS/Version|Windows |Linux --- Comment #2 from Mike Wey mike-...@planet.nl 2014-03-18 15:42:18 PDT --- dirIterator throws an exception when it tries to traverse into a directory for which it does not have any read permissions. This issue also exists on Linux/posix systems. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12398] Selective imports no longer act as static imports
https://d.puremagic.com/issues/show_bug.cgi?id=12398 --- Comment #6 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 01:07:43 EET --- Oh, I see. Thanks. Invalid? Or enhancement? I think selective imports ought to also act as static imports. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8967] dirEntries throws when encountering a long path on windows
https://d.puremagic.com/issues/show_bug.cgi?id=8967 --- Comment #10 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 01:14:47 EET --- Just to clarify, there are two prefixes: \\?\ and \\.\. The latter is used to access the Win32 device namespace, which is a fairly under-the-hood thing. The only way I see how this applies to our problem is to not prepend \\?\ if the path already has a \\.\ prefix. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12405] New: Named imports act like public imports
https://d.puremagic.com/issues/show_bug.cgi?id=12405 Summary: Named imports act like public imports Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: accepts-invalid Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: thecybersha...@gmail.com --- Comment #0 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 01:48:42 EET --- Is this supposed to work? /// test.d /// import io = std.stdio; void main() { writeln(); } // In DMD master, it compiles fine. In 2.065, it produces an error (writeln not defined). -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4705] Redesign of std.algorithm.max()/min() + mins()/maxs()
https://d.puremagic.com/issues/show_bug.cgi?id=4705 --- Comment #18 from bearophile_h...@eml.cc 2014-03-18 16:59:19 PDT --- This Python program finds the number that has the largest minimum prime factor: def decompose(n): result = [] i = 2 while n = i * i: while n % i == 0: result.append(i) n //= i i += 1 if n != 1: result.append(n) return result def main(): data = [2 ** 59 - 1, 2 ** 59 - 1, 2 ** 59 - 1, 112272537195293, 115284584522153, 115280098190773, 115797840077099, 112582718962171, 112272537095293, 1099726829285419] print N. with largest min factor: , print max(data, key= lambda n: min(decompose(n))) main() Its output: N. with largest min factor: 115797840077099 A similar D program: ulong[] decompose(ulong n) pure nothrow { typeof(return) result; for (ulong i = 2; n = i * i; i++) for (; n % i == 0; n /= i) result ~= i; if (n != 1) result ~= n; return result; } void main() { import std.stdio, std.algorithm, std.typecons; immutable ulong[] data = [ 2UL ^^ 59 - 1, 2UL ^^ 59 - 1, 2UL ^^ 59 - 1, 112_272_537_195_293UL, 115_284_584_522_153, 115_280_098_190_773, 115_797_840_077_099, 112_582_718_962_171, 112_272_537_095_293, 1_099_726_829_285_419]; immutable res = data .map!(n = cast(ulong[2])[n.decompose.reduce!min, n]) .reduce!max[1]; writeln(N. with largest min factor: , res); } But the optional key for the max() template allows to compute the result with: immutable res = data.reduce!(max!(n = n.decompose.reduce!min))); That is not too much worse than the Python version: max(data, key= lambda n: min(decompose(n))) The Python version is shorter because in Python max works on both items and iterables: max(5) Traceback (most recent call last): File stdin, line 1, in module TypeError: 'int' object is not iterable max(5, 3) 5 max(5, 3, 6) 6 max([5, 3, 6]) 6 Currently the D max/min don't accept a single argument: max(5).writeln; max([5, 6]).writeln; Gives: test6.d(25,8): Error: template std.algorithm.max cannot deduce function from argument types !()(int), candidates are: ...\dmd2\src\phobos\std\algorithm.d(7085,11):std.algorithm.max(T...)(T args) if (T.length = 2) test6.d(26,8): Error: template std.algorithm.max cannot deduce function from argument types !()(int[]), candidates are: ...\dmd2\src\phobos\std\algorithm.d(7085,11):std.algorithm.max(T...)(T args) if (T.length = 2) So max/min could be extended to see a single argument as an iterable: someRange.max === someRange.reduce!max someRange.min === someRange.reduce!min With such improvement the D code becomes similar to the Python version and very readable: immutable res = data.max!(n = n.decompose.min); This is how I'd like max/min of Phobos to behave. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12405] Named imports act like regular imports
https://d.puremagic.com/issues/show_bug.cgi?id=12405 bearophile_h...@eml.cc changed: What|Removed |Added CC||bearophile_h...@eml.cc --- Comment #1 from bearophile_h...@eml.cc 2014-03-18 17:18:08 PDT --- It should not work. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12403] [AA] Associative array `get` function rejects some cases
https://d.puremagic.com/issues/show_bug.cgi?id=12403 Vladimir Panteleev thecybersha...@gmail.com changed: What|Removed |Added CC||thecybersha...@gmail.com --- Comment #1 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 02:21:07 EET --- Introduced in https://github.com/D-Programming-Language/druntime/pull/733 Possibly related: Issue 12316 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 8967] dirEntries throws when encountering a long path on windows
https://d.puremagic.com/issues/show_bug.cgi?id=8967 --- Comment #11 from Jay Norwood j...@prismnet.com 2014-03-18 18:01:59 PDT --- More surprising is attempting to remove a long directory path and having an exception occur. The libraries are already copying the user's string and adding the 0 termination prior to calling the windows api, so it seems to me to be a reasonable place to make other modifications if they are needed to accomplish the intended operation. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12406] New: Broken delegate closure
https://d.puremagic.com/issues/show_bug.cgi?id=12406 Summary: Broken delegate closure Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: lt.infiltra...@gmail.com --- Comment #0 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 17:56:05 PDT --- In some ((apparently) random and confusing) cases, a delegate's closure is broken, and seems to be influenced by completely unrelated pieces of code. http://dpaste.dzfl.pl/5f9ebc61274a import std.functional; import std.stdio; class UserInterface { void title(string title) { _messages = title; } /* Changing this to writeln(title) and removing display(), below, magically fixes it. */ string display() { writeln(_messages); stdout.flush; return readln; } string _messages; } class Screen { void addMessageSource(string delegate()) { } void addOption(Screen delegate() action) { _options ~= Option(action); } Screen execute(UserInterface ui) { ui.title(title); auto action = _options[0].action; ui.display; /* Removing this line magically fixes it. */ return action(); } this(string title) { this.title = title; } struct Option { Screen delegate() action; } string title; Option[] _options; } string printStatus(int) { return Printing status; } void configureScreen(Screen screen) { auto systemStatus = new Screen(System status); int x; systemStatus.addMessageSource(curry!(printStatus, x)); /* Removing this line magically fixes it. */ Screen renameName() { return new Screen(Rename system); } Screen renameSelect() { auto ret = new Screen(Select system); void addItem() { ret.addOption(renameName); } /* Removing this line magically fixes it. */ ret.addOption(() = screen); /* The segfault occurs here. */ return ret; } screen.addOption(renameSelect); } int main() { auto screen = new Screen(Systems screen); configureScreen(screen); while(screen) screen = screen.execute(new UserInterface); return 0; } -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12407] New: reduce cannot deduce argument types
https://d.puremagic.com/issues/show_bug.cgi?id=12407 Summary: reduce cannot deduce argument types Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: lt.infiltra...@gmail.com --- Comment #0 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 18:19:12 PDT --- http://dpaste.dzfl.pl/f2d178081ee8 --- import std.algorithm : map, reduce; class A { long fun() { return 1 + sub.map!(s = s.fun()).reduce!((a, b) = a + b)(0L); } A[] sub; } void main() { } -- Fails to compile: /d414/f619.d(5): Error: template std.algorithm.reduce cannot deduce function from argument types !((a, b) = a + b)(MapResult!(__lambda1, A[]), long), candidates are: /opt/compilers/dmd2/include/std/algorithm.d(701): std.algorithm.reduce(fun...) if (fun.length = 1) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12242] conflict error with public imports
https://d.puremagic.com/issues/show_bug.cgi?id=12242 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Keywords||pull, rejects-valid --- Comment #3 from Kenji Hara k.hara...@gmail.com 2014-03-18 18:18:29 PDT --- https://github.com/D-Programming-Language/dmd/pull/3388 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12408] New: map does not like inout
https://d.puremagic.com/issues/show_bug.cgi?id=12408 Summary: map does not like inout Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: lt.infiltra...@gmail.com --- Comment #0 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 18:20:59 PDT --- http://dpaste.dzfl.pl/cd03223f4472 import std.algorithm : map; class L { auto fun(const S s) inout nothrow pure @safe { if(point[0] is s) return point[1]; else return point[0]; } this(S a, S b) { point = [a, b]; } S[2] point; } class S { @property auto foo() inout nothrow pure @safe { return arr.map!(e = e.fun(this)); } L[] arr; } void main() { } Fails to compile: /opt/compilers/dmd2/include/std/algorithm.d(438): Error: variable f922.S.foo.MapResult!(__lambda1, inout(L)[]).MapResult._input only parameters or stack based variables can be inout /opt/compilers/dmd2/include/std/algorithm.d(390): Error: template instance f922.S.foo.MapResult!(__lambda1, inout(L)[]) error instantiating /d556/f922.d(18): instantiated from here: map!(inout(L)[]) /d556/f922.d(18): Error: template instance f922.S.foo.map!((e) = e.fun(this)).map!(inout(L)[]) error instantiating /d556/f922.d(18): Error: template std.algorithm.map cannot deduce function from argument types !((e) = e.fun(this))(inout(L[])), candidates are: /opt/compilers/dmd2/include/std/algorithm.d(375): std.algorithm.map(fun...) if (fun.length = 1) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12407] reduce cannot deduce argument types
https://d.puremagic.com/issues/show_bug.cgi?id=12407 bearophile_h...@eml.cc changed: What|Removed |Added Status|NEW |RESOLVED CC||bearophile_h...@eml.cc Resolution||INVALID --- Comment #1 from bearophile_h...@eml.cc 2014-03-18 18:35:14 PDT --- I think this is an invalid issue. reduce currently takes as first argument the seed and as second the range. This is the correct code: return 1 + reduce!((a, b) = a + b)(0L, sub.map!(s = s.fun)); There are plans in fixing reduce. Also voting your own entry, and doing it twice, is not so good :-) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12407] reduce cannot deduce argument types
https://d.puremagic.com/issues/show_bug.cgi?id=12407 --- Comment #2 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 18:40:50 PDT --- Of course. I keep forgetting about that with reduce. As for the voting, I use it to keep track of issues (I don't see a bookmark or similar option), and I just spread my votes out evenly. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12407] reduce cannot deduce argument types
https://d.puremagic.com/issues/show_bug.cgi?id=12407 --- Comment #3 from bearophile_h...@eml.cc 2014-03-18 19:50:39 PDT --- (In reply to comment #2) Of course. I keep forgetting about that with reduce. As for the voting, I use it to keep track of issues (I don't see a bookmark or similar option), and I just spread my votes out evenly. You can perform an advanced search, to find your own issues. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 5555] [AA] Built-in associative arrays in pure nothrow functions
https://d.puremagic.com/issues/show_bug.cgi?id= Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added CC||kenn...@gmail.com --- Comment #6 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 19:57:51 PDT --- *** Issue 6357 has been marked as a duplicate of this issue. *** -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 6357] [AA] Almost all AA methods are not pure/nothrow/@safe
https://d.puremagic.com/issues/show_bug.cgi?id=6357 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE --- Comment #6 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 19:57:51 PDT --- *** This issue has been marked as a duplicate of issue *** -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3882] Unused result of pure functions
https://d.puremagic.com/issues/show_bug.cgi?id=3882 --- Comment #29 from github-bugzi...@puremagic.com 2014-03-18 20:03:41 PDT --- Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/d701f902755fb7acaa2e19dc0cf7ee30d1127b54 Issue 3882: Use cast(void) instead of value capture https://github.com/D-Programming-Language/phobos/commit/cfa59054b9d741813035c00ac0366877ab60 Merge pull request #2021 from nordlow/warn-unused-returns Issue 3882: Use cast(void) instead of value capture -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12408] map does not like inout
https://d.puremagic.com/issues/show_bug.cgi?id=12408 --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 20:11:27 PDT --- Possible duplicate of #8407? -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3882] Unused result of pure functions
https://d.puremagic.com/issues/show_bug.cgi?id=3882 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|REOPENED|RESOLVED CC||lt.infiltra...@gmail.com Resolution||FIXED -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3882] Unused result of pure functions
https://d.puremagic.com/issues/show_bug.cgi?id=3882 --- Comment #30 from bearophile_h...@eml.cc 2014-03-18 20:47:18 PDT --- (In reply to comment #29) Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/d701f902755fb7acaa2e19dc0cf7ee30d1127b54 Issue 3882: Use cast(void) instead of value capture https://github.com/D-Programming-Language/phobos/commit/cfa59054b9d741813035c00ac0366877ab60 Merge pull request #2021 from nordlow/warn-unused-returns Issue 3882: Use cast(void) instead of value capture You have closed down this issue, but is the warning active? Is the dmd patch merged? -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12371] Error: undefined identifier with mixins
https://d.puremagic.com/issues/show_bug.cgi?id=12371 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE --- Comment #3 from Kenji Hara k.hara...@gmail.com 2014-03-18 20:49:32 PDT --- This is an invalid issue. See also the comment #1 in issue 12035. https://d.puremagic.com/issues/show_bug.cgi?id=12035#c1 *** This issue has been marked as a duplicate of issue 12035 *** -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12035] Regression 2.065: Mixin string inside mixin template inside template can no longer acces template argument
https://d.puremagic.com/issues/show_bug.cgi?id=12035 Kenji Hara k.hara...@gmail.com changed: What|Removed |Added CC||kozz...@gmail.com --- Comment #2 from Kenji Hara k.hara...@gmail.com 2014-03-18 20:49:33 PDT --- *** Issue 12371 has been marked as a duplicate of this issue. *** -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 1317] Document suggested means of overlapping array copy
https://d.puremagic.com/issues/show_bug.cgi?id=1317 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added CC||lt.infiltra...@gmail.com --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 21:11:49 PDT --- https://github.com/D-Programming-Language/dlang.org/pull/527 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12371] Error: undefined identifier with mixins
https://d.puremagic.com/issues/show_bug.cgi?id=12371 Vladimir Panteleev thecybersha...@gmail.com changed: What|Removed |Added CC||thecybersha...@gmail.com --- Comment #4 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 06:20:32 EET --- Introduced in https://github.com/D-Programming-Language/dmd/pull/2854 -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2002] Add keyword for a function definition
https://d.puremagic.com/issues/show_bug.cgi?id=2002 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WORKSFORME --- Comment #3 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 21:36:17 PDT --- If you are really after this sort of style, you can use the existing function syntax: int function(int x) doSomething = { ... }; -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 12174] Problems caused by enum predicate with std.algorithm.sum
https://d.puremagic.com/issues/show_bug.cgi?id=12174 Vladimir Panteleev thecybersha...@gmail.com changed: What|Removed |Added CC||thecybersha...@gmail.com --- Comment #2 from Vladimir Panteleev thecybersha...@gmail.com 2014-03-19 06:39:22 EET --- (In reply to comment #0) DMD 2.065beta3 print sat run-time: How can this be 2.065beta3 if that version did not yet have the sum function at all? -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2304] Add else clause to for loops - executed unless break exits
https://d.puremagic.com/issues/show_bug.cgi?id=2304 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WONTFIX --- Comment #2 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 21:48:14 PDT --- Five years old and no discussion. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2482] Spec does not reference about special x functions in TypeInfo_Struct
https://d.puremagic.com/issues/show_bug.cgi?id=2482 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||FIXED --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 21:55:17 PDT --- The docs correctly provide the signature as 'int opCmp(ref const S s) const { ... }' http://dlang.org/operatoroverloading.html#compare -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3365] Safe casts: type modifiers
https://d.puremagic.com/issues/show_bug.cgi?id=3365 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WORKSFORME --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:15:01 PDT --- This is available in the language as of 2.065 (and earlier; but you would have to dig for yourself.) -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 2607] Please consider building DMD agast and older version of glibc
https://d.puremagic.com/issues/show_bug.cgi?id=2607 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WONTFIX --- Comment #4 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:16:13 PDT --- Four year old issue about using an ever older library version. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3497] Emphasize Wiki4D more on main site
https://d.puremagic.com/issues/show_bug.cgi?id=3497 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WORKSFORME --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:17:22 PDT --- The wiki has moved to wiki.dlang.org, linked from the main dlang.org page. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3699] Feature Request: while-else
https://d.puremagic.com/issues/show_bug.cgi?id=3699 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WONTFIX --- Comment #7 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:22:06 PDT --- Four year old request. Can be discussed further on NG if required. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3891] core.Thread constructors don't accept shared delegates
https://d.puremagic.com/issues/show_bug.cgi?id=3891 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WONTFIX -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4102] 'object' name in module declaration
https://d.puremagic.com/issues/show_bug.cgi?id=4102 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WORKSFORME --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:44:53 PDT --- The provided code works as of 2.065. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4190] unable reduce aseert partial template in is
https://d.puremagic.com/issues/show_bug.cgi?id=4190 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added Status|NEW |RESOLVED CC||lt.infiltra...@gmail.com Resolution||WORKSFORME --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:54:38 PDT --- Provided code compiles with 2.065. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 4167] Template overrides with alias
https://d.puremagic.com/issues/show_bug.cgi?id=4167 Infiltrator lt.infiltra...@gmail.com changed: What|Removed |Added CC||lt.infiltra...@gmail.com --- Comment #1 from Infiltrator lt.infiltra...@gmail.com 2014-03-18 22:51:24 PDT --- Is there any particular reason that you need to override with alias? The below works: template Foo(int x) { enum int Foo = 10; } template Foo(int x, int y) { enum int Foo = 10; } void main() { int x1 = Foo!(1); // OK int x2 = Foo!(2, 100); // OK int x3 = Foo!(3, 100); // OK } -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---