[Issue 11891] Ddoc should generate index table
https://issues.dlang.org/show_bug.cgi?id=11891 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #2 from Seb --- Status quo: (1) JavaScript hack to generate a "quickIndex" However because (1) looked too ugly, a manual BOOKMARK table has been added to most modules. Generating a grouped BOOKMARK table automatically is really hard though. FWIW ddox and adrdox can generate index tables out of the box. I'm not sure if anyone plans to actively develop Ddoc. Migration to Ddox for dlang.org is WIP though it might never happen. --
[Issue 12592] std.algorithm.keep?
https://issues.dlang.org/show_bug.cgi?id=12592 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #3 from Seb --- We have group and filter, e.g. --- import std.stdio; void main() { import std.algorithm; immutable data = [10, 3, 2, 3, 4, 10]; assert(data.dup.sort.release.group.map!(a => a[0]).equal([2, 3, 4, 10])); } --- https://run.dlang.io/is/eBLeSa Closing as WORKSFORME. Plese reopen if you feel that filter and group don't work for or you have more arguments or examples. --
[Issue 18086] BigInt DivMod
https://issues.dlang.org/show_bug.cgi?id=18086 --- Comment #4 from Paul D. Anderson--- (In reply to Seb from comment #3) > Works fine for me: > > https://run.dlang.io/is/r07zHf > > (setting this to RESOLVED FIXED as the PR has been merged) > > Are you sure you are using nightly? Sorry, my mistake. --
[Issue 12335] std.algorithm.skipOver should support multiple args like startsWith
https://issues.dlang.org/show_bug.cgi?id=12335 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #2 from Seb --- PR https://github.com/dlang/phobos/pull/6143 --
[Issue 10959] std.algorithm.remove is highly bug-prone
https://issues.dlang.org/show_bug.cgi?id=10959 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #14 from Seb --- A PR to fix the landmines - https://github.com/dlang/phobos/pull/6154 It's probably too late to rename `remove` :/ --
[Issue 8172] OSX: symbols mangled on gdb,ggdb,cgdb,lldb but not on ubuntu; no line numbers on stacktraces
https://issues.dlang.org/show_bug.cgi?id=8172 Issue 8172 depends on issue 8207, which changed state. Issue 8207 Summary: OS X: Should extern(D) symbols include another underscore? https://issues.dlang.org/show_bug.cgi?id=8207 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 8207] OS X: Should extern(D) symbols include another underscore?
https://issues.dlang.org/show_bug.cgi?id=8207 github-bugzi...@puremagic.com changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 8207] OS X: Should extern(D) symbols include another underscore?
https://issues.dlang.org/show_bug.cgi?id=8207 --- Comment #4 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/db2976599db44f2163986ba9cb541afd7cfa8471 fix Issue 8207 - extern(D) symbols should include another underscore 1. Removed ABI name fiddling from the front-end. 2. Removed `Target.prefixName` and C++ tests for matching `__Z`. 3. Prepend prefixes for C++ and D symbols in the backend only for the targets that require it (Win32, OSX). 4. Removed `RTLSYM__DINVARIANT` runtime library symbol, name is now the same on all targets. 5. Correctly set C++ mangling on `LINK.cpp` symbols, before they were all being set as D mangled symbols. 6. Use System mangling as synonym for do not modify symbol. 7. Added workaround for `extern(D) ___tls_get_addr`. https://github.com/dlang/dmd/commit/9691eba9441f7f165359716f80f46486ea09fb46 Merge pull request #7620 from ibuclaw/ingcc2 fix Issue 8207 - extern(D) symbols should include another underscore merged-on-behalf-of: unknown --
[Issue 9841] std.algorithm.iFilter
https://issues.dlang.org/show_bug.cgi?id=9841 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #1 from Seb --- So summarizing the status quo in D is: --- auto names2 = ["Sam", "Pamela", "Dave", "Pascal", "Erik"]; auto nameRange2 = names2.enumerate.filter!(a => a.value.length <= a.index).map!(a => a.value); nameRange2.writeln; --- https://run.dlang.io/is/SzLRES It's not too bad and I doubt that filterIndex would be accepted. --
[Issue 17982] Support for const(Class) in algorithm.searching.extremum
https://issues.dlang.org/show_bug.cgi?id=17982 Sebchanged: What|Removed |Added Keywords||pull CC||greensunn...@gmail.com --- Comment #1 from Seb --- PR: https://github.com/dlang/phobos/pull/6157 > In the forum thread, @vit suggested using something like this instead: Yeah that's a good idea. --
[Issue 18415] Typedef ignores @disabled default constructor
https://issues.dlang.org/show_bug.cgi?id=18415 Alexchanged: What|Removed |Added CC||sascha.or...@gmail.com --
[Issue 12216] Overloading templates using alias
https://issues.dlang.org/show_bug.cgi?id=12216 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #1 from Seb --- This is going to be tough because some templates are written like this: foo() if (a) foo() if (!a) There overloading is rather hard. However, the following trick should always work: --- bool isSorted(alias less = "a < b", Range)(Range r) { import std.algorithm : isSortedImpl = isSorted; static if (isStaticArray!Range) { return isSortedImpl!less(r[]); } else { return isSortedImpl!less(r[]); } } --- https://run.dlang.io/is/EL3VEj Though nowadays this isn't even necessary for isSorted. --
[Issue 18416] New: Different Typedef share addresses of static arrays
https://issues.dlang.org/show_bug.cgi?id=18416 Issue ID: 18416 Summary: Different Typedef share addresses of static arrays Product: D Version: D2 Hardware: x86 OS: Mac OS X Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: sascha.or...@gmail.com Defining two Typedefs with different cookies, based on a struct with a static array, leads to different types, which shares the static array. /// --- code --- /// import std.typecons; import std.traits; static assert(!is(MyEA == MyEB)); static assert(!is(MyEA == E)); static assert(!is(MyEB == E)); void main() { MyEA ea; MyEB eb; eb.tarr.length = 4; assert(ea.tarr.ptr != eb.tarr.ptr); // line 14 assert(ea.tarr.length != eb.tarr.length); // line 15 } struct T { size_t i; } struct E { size_t i; static T[] tarr; } alias MyEA = Typedef!(E, E.init, "A"); alias MyEB = Typedef!(E, E.init, "B"); /// --- code ends --- /// Line 14 and 15 yields both an error, which is unexpected. See also https://forum.dlang.org/thread/ceilfwjlagdbyguda...@forum.dlang.org --
[Issue 11084] std.algorithm.scan
https://issues.dlang.org/show_bug.cgi?id=11084 --- Comment #5 from Seb--- PR to reference alternatives names: https://github.com/dlang/phobos/pull/6153 --
[Issue 8341] topN(zip()) too?
https://issues.dlang.org/show_bug.cgi?id=8341 Sebchanged: What|Removed |Added Keywords||pull CC||greensunn...@gmail.com --- Comment #1 from Seb --- PR https://github.com/dlang/phobos/pull/6156 --
[Issue 11084] std.algorithm.scan
https://issues.dlang.org/show_bug.cgi?id=11084 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #4 from Seb --- There's cumulativeFold since 2.072: --- import std.algorithm, std.range, std.stdio; void main() { 10.iota.cumulativeFold!((a, b) => a + b).writeln; } --- https://run.dlang.io/is/YIh6I8 --
[Issue 11084] std.algorithm.scan
https://issues.dlang.org/show_bug.cgi?id=11084 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/4775a5e3576843b58f99739d1a9141c810656679 Fix Issue 11084 - std.algorithm.scan https://github.com/dlang/phobos/commit/ae2219c562912e18d0f33fe641adadd18bb62e18 Merge pull request #6153 from wilzbach/mention-scan Fix Issue 11084 - Mention scan in cumulativeFold merged-on-behalf-of: Jack Stouffer--
[Issue 16578] bogus deprecation - switch skips declaration of variable
https://issues.dlang.org/show_bug.cgi?id=16578 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #1 from Seb --- The problem seems to be due to the associative array. Reduced a bit further: --- import std.stdio; void main() { string[string] opts; switch (2) { case 0: opts["a"] = ""; { case 1: break; } default: } } --- --
[Issue 10670] std.algorithm.reduce: no-seed initialization wrong design
https://issues.dlang.org/show_bug.cgi?id=10670 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #8 from Seb --- fold has been introduced as deprecating reduce wasn't an option. I don't think we can modify or deprecate the behavior of reduce, so I'm inclined to close this as WONTFIX. --
[Issue 11555] std.algorithm.reverse should return the just-reversed range
https://issues.dlang.org/show_bug.cgi?id=11555 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #6 from Seb --- What's the status of this? The way I see it: 1) There's now retro 2) reverse should have been in std.array 3) The naming is bad (reverse and reversed would have been better) But I doubt we can change any of this, except for moving reverse to std.array and doing a public import in std.algorithm. Thoughts? --
[Issue 11475] std.algorithm.multiSort.release or similar
https://issues.dlang.org/show_bug.cgi?id=11475 Sebchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 10379] std.string.translate (and others) for a Range of characters
https://issues.dlang.org/show_bug.cgi?id=10379 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |FIXED --- Comment #3 from Seb --- 2.079 will ship with substitute: https://dlang.org/changelog/pending.html#std-algorithm-iteration-substitute It doesn't use an internal table and is fully lazy and @nogc. Its generic and works with any kind of range (+strings) and single chars. Moreover, there's tr and translate in std.string: https://dlang.org/phobos/std_string.html#.tr https://dlang.org/phobos/std_string.html#.translate --
[Issue 5502] More handy ways to create associative arrays
https://issues.dlang.org/show_bug.cgi?id=5502 Sebchanged: What|Removed |Added Keywords||bootcamp CC||greensunn...@gmail.com --- Comment #5 from Seb --- > import std.array: AAFromKeys; > void main() { >bool[dchar] dcharSet = AAFromKeys("ABCD", true); > } This is already easily possible today: --- assocArray("ABCD".zip(true.repeat)).writeln; --- https://run.dlang.io/is/7j1ObE We could add another overload to assocArray that accepts two arguments: values + keys -> PR: https://github.com/dlang/phobos/pull/6155 --
[Issue 4936] Better error when type inference fails due to incorrect template parameter type
https://issues.dlang.org/show_bug.cgi?id=4936 Sebchanged: What|Removed |Added Status|ASSIGNED|RESOLVED CC||greensunn...@gmail.com Resolution|--- |WONTFIX --- Comment #4 from Seb --- This works: --- import std.stdio, std.algorithm, std.range; void main() { auto foo = ["a the way home", "can I say"]; auto bar = ["be it here or there", "you may"]; completeSort(foo.assumeSorted, bar.assumeSorted); } --- https://run.dlang.io/is/aeO4fp > Clearly, no one is using completeSort at all Yeah if it's open for eight years, that's a very good sign no one uses it... I'm closing this as it's too old for an regression and assumeSorted works. --
[Issue 12086] std.algorithm.remove + range of indices produces wrong results
https://issues.dlang.org/show_bug.cgi?id=12086 Sebchanged: What|Removed |Added Keywords||pull CC||greensunn...@gmail.com --- Comment #3 from Seb --- PR https://github.com/dlang/phobos/pull/6154 --
[Issue 9976] Needlessly large instantiation depth in std.typetuple algorithms
https://issues.dlang.org/show_bug.cgi?id=9976 Sebchanged: What|Removed |Added Keywords|pull|bootcamp CC||greensunn...@gmail.com --
[Issue 18415] New: Typedef ignores @disabled default constructor
https://issues.dlang.org/show_bug.cgi?id=18415 Issue ID: 18415 Summary: Typedef ignores @disabled default constructor Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: enhancement Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: simen.kja...@gmail.com When a type that has a disabled default constructor is used in std.typecons.Typedef, it's possible to create an uninitialized instance of the type, since Typedef doesn't disable its constructor: unittest { import std.typecons : Typedef; struct S { @disable this(); } //S s1; // Fails horribly. Typedef!S s1; // Compiles without issue. } --
[Issue 11475] std.algorithm.multiSort.release or similar
https://issues.dlang.org/show_bug.cgi?id=11475 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #1 from Seb --- This works since 2.072: Up to 2.071.2: Failure with output: onlineapp.d(12): Error: no property 'release' for type 'void' Since 2.072.2: Success with output: [Point(0, 0), Point(0, 1), Point(0, 2), Point(5, 5)] --- import std.algorithm, std.stdio; void main() { static struct Point { int x, y; } auto pts1 = [Point(0, 0), Point(5, 5), Point(0, 1), Point(0, 2)]; multiSort!("a.x < b.x", "a.y < b.y", SwapStrategy.unstable)(pts1).release.writeln; } --- https://run.dlang.io/is/MQrUn1 --
[Issue 9871] std.typecons.asArray
https://issues.dlang.org/show_bug.cgi?id=9871 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #3 from Seb --- > A simpler implementation: Well, it's just: --- tup.expand.only; --- https://run.dlang.io/is/vJaBtM I'm not so sure whether this will be added to Tuple, but as Tuples will hopefully soon be part of the language, they should be first-class range citizens too. --
[Issue 18322] void fun(string file=__FILE_FULL_PATH__)() returns relative path (pointing to nowhere)
https://issues.dlang.org/show_bug.cgi?id=18322 --- Comment #2 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/1927521a0450c9904a9ed8bada1a2b5f9a506718 Fix issue 18322 https://github.com/dlang/dmd/commit/6a2db254e9f0185676713db481ee3780d65bea68 Merge pull request #7798 from marler8997/bug18322 Fix issue 18322: __FILE_FULL_PATH__ doesn't work as a template parameter merged-on-behalf-of: Mike Franklin--
[Issue 8166] retro() of splitter() too
https://issues.dlang.org/show_bug.cgi?id=8166 --- Comment #6 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/c7b6aabfea45b2151f0f21548232242e896101d6 Issue 8166 - retro() of splitter() too https://github.com/dlang/phobos/commit/508337e0bbd3aba17e9235a0229b032da72b318d Merge pull request #6150 from wilzbach/splitter-back Issue 8166 - remove dead _backLength code in std.algorithm.splitter merged-on-behalf-of: Sebastian Wilzbach--
[Issue 17843] -betterC struct with `double` field generates references to TypeInfo
https://issues.dlang.org/show_bug.cgi?id=17843 Walter Brightchanged: What|Removed |Added CC||azi.has...@live.fr --- Comment #5 from Walter Bright --- *** Issue 17825 has been marked as a duplicate of this issue. *** --
[Issue 17825] Structs with floating point fields fail to compile in betterC
https://issues.dlang.org/show_bug.cgi?id=17825 Walter Brightchanged: What|Removed |Added Status|NEW |RESOLVED CC||bugzi...@digitalmars.com Resolution|--- |DUPLICATE --- Comment #1 from Walter Bright --- *** This issue has been marked as a duplicate of issue 17843 *** --
[Issue 18396] backtraces should demangle c++ symbols (eg via c++filt or __cxa_demangle)
https://issues.dlang.org/show_bug.cgi?id=18396 Timothee Courchanged: What|Removed |Added CC||timothee.co...@gmail.com --- Comment #1 from Timothee Cour --- https://github.com/dlang/druntime/pull/2083 --
[Issue 18010] Undefined reference to _d_arraycopy when copying arrays in -betterC
https://issues.dlang.org/show_bug.cgi?id=18010 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #2 from Walter Bright --- > -noboundscheck The trouble is dmd is relying on _d_arraycopy() to do the bounds check, and just uses memcpy() otherwise. --
[Issue 18312] string concatenation with -betterC fails with linker errors
https://issues.dlang.org/show_bug.cgi?id=18312 Walter Brightchanged: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #5 from Walter Bright --- The example needs to declare main() as extern(C). Anyhow, the trouble is _d_arraycatnTX(), which is in druntime and uses the GC to allocate the destination array. --
[Issue 5323] std.math: struct FloatingPointControl, duplicate code and assumes X86
https://issues.dlang.org/show_bug.cgi?id=5323 --- Comment #6 from Iain Buclaw--- Has been improved somewhat by: https://github.com/dlang/phobos/pull/4272 https://github.com/dlang/phobos/pull/5769 --
[Issue 14490] Deprecate .sort and .reverse properties for arrays
https://issues.dlang.org/show_bug.cgi?id=14490 Iain Buclawchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Iain Buclaw --- Gone in 2.075 --
[Issue 14489] Deprecate Floating point NCEG operators
https://issues.dlang.org/show_bug.cgi?id=14489 Iain Buclawchanged: What|Removed |Added Status|NEW |RESOLVED CC||ibuc...@gdcproject.org Resolution|--- |FIXED --- Comment #1 from Iain Buclaw --- This has been removed from the spec, and is currently and error in the compiler. Not aware of any "gone" status, but that's outside scope of original issue. --
[Issue 14491] Deprecate overriding without override
https://issues.dlang.org/show_bug.cgi?id=14491 Iain Buclawchanged: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #3 from Iain Buclaw --- This has been an error since 2.072. --
[Issue 14492] Deprecate scope for allocating classes on the stack
https://issues.dlang.org/show_bug.cgi?id=14492 Iain Buclawchanged: What|Removed |Added CC||ibuc...@gdcproject.org --- Comment #7 from Iain Buclaw --- DDMD still depends on this heavily. For now scope class is going nowhere, if the idea of deprecating it hasn't already been completely reversed. --
[Issue 15777] Premature expansion of overload set in tuples
https://issues.dlang.org/show_bug.cgi?id=15777 --- Comment #3 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/dmd https://github.com/dlang/dmd/commit/60ebdebc7cad480e4a0c3f97951e68d8d7bd8350 fix Issue 15777 - Premature expansion of overload set in tuples https://github.com/dlang/dmd/commit/0a111c872067b7c22bf7cea3f5ff2e1ce3f746a8 Merge pull request #7700 from ibuclaw/fix15777 fix Issue 15777 - Premature expansion of overload set in tuples merged-on-behalf-of: Mike Franklin--
[Issue 14492] Deprecate scope for allocating classes on the stack
https://issues.dlang.org/show_bug.cgi?id=14492 --- Comment #8 from Jonathan M Davis--- (In reply to Iain Buclaw from comment #7) > DDMD still depends on this heavily. For now scope class is going nowhere, > if the idea of deprecating it hasn't already been completely reversed. If I understand DIP 1000 correctly, I think that the original meaning of scope on class reference is basically becoming an optimization done with scope rather than the direct purpose of the feature, and the work with DIP 1000 should in theory make it @safe. So, if DIP 1000 is accepted (and I assume it will be once it's ready, since it's Walter who's doing it, and he's spent a lot of time on it), then scope on class references is here to stay. --
[Issue 13793] @nogc std.algorithm.count(std.range.only)
https://issues.dlang.org/show_bug.cgi?id=13793 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |FIXED --- Comment #1 from Seb --- Works in 2.078, It has been fixed in 2.069 https://run.dlang.io/is/RC554K --
[Issue 10009] AA.byKey/byValue should be bidirectional ranges
https://issues.dlang.org/show_bug.cgi?id=10009 Sebchanged: What|Removed |Added Keywords||bootcamp CC||greensunn...@gmail.com Summary|foreach_reverse and |AA.byKey/byValue should be |AA.byKey/byValue|bidirectional ranges --- Comment #31 from Seb --- > That leaves this with just the unlikely enhancement, of making byKey/byValue > into bidirectional ranges. Renamed the title to match this. --
[Issue 13591] [Enh] add std.algorithm.reinterpret
https://issues.dlang.org/show_bug.cgi?id=13591 Sebchanged: What|Removed |Added CC||greensunn...@gmail.com --- Comment #2 from Seb --- > Currently, it is clumsy to change the type of an Element in a pipeline Well, the status quo for whole elements a.b.pipe!(a => cast(T)).c.d And for elements: a.b.map!(a => cast(T)).c.d Or is this just a request to generalize std.exception.assumeUnique into assume!XYZ, but being @safe for all its generalizations? --
[Issue 10709] reduce 1-function + no seed, wrong type inference
https://issues.dlang.org/show_bug.cgi?id=10709 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |FIXED --- Comment #4 from Seb --- Since 2.067.1: Success with output: - 3 Tuple!(double, double)(3, 3) - https://run.dlang.io/is/6DV7gi --
[Issue 8750] ICE when using any and all as a template condition
https://issues.dlang.org/show_bug.cgi?id=8750 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |FIXED --- Comment #3 from Seb --- Fixed in 2.064: 2.062 to 2.063 : Status -6 with output: dmd: mangle.c:100: char* mangle(Declaration*, bool): Assertion `fd && fd->inferRetType' failed. 2.064 : Failure with output: - onlineapp.d(9): Error: template std.algorithm.all does not match any function template declaration. Candidates are: --
[Issue 11826] [ctfe] CTFE fails to issue diagnostic for unsupported feature of closures
https://issues.dlang.org/show_bug.cgi?id=11826 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |FIXED --- Comment #6 from Seb --- 2.062 to 2.066.0: Failure with output: --- killed by signal 11 Since 2.067.1: Success with output: [Tuple!(int, int)(1, 10), Tuple!(int, int)(1, 20), Tuple!(int, int)(1, 30), Tuple!(int, int)(2, 10), Tuple!(int, int)(2, 20), Tuple!(int, int)(2, 30), Tuple!(int, int)(3, 10), Tuple!(int, int)(3, 20), Tuple!(int, int)(3, 30)] https://run.dlang.io/is/Bb5RGA --
[Issue 10493] ICE with -inline, depending on order of source files
https://issues.dlang.org/show_bug.cgi?id=10493 Sebchanged: What|Removed |Added Status|NEW |RESOLVED CC||greensunn...@gmail.com Resolution|--- |WORKSFORME --- Comment #1 from Seb --- Compiles fine for me with 2.079 --