digitalmars.D.bugs - [Issue 9253] New: Review Phobos algorithms and make them transient-safe where possible
- d-bugmail puremagic.com (39/39) Jan 01 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9253
- d-bugmail puremagic.com (12/13) Jan 01 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9253
- d-bugmail puremagic.com (10/34) Jan 14 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9253
- d-bugmail puremagic.com (8/8) Jan 14 2013 http://d.puremagic.com/issues/show_bug.cgi?id=9253
http://d.puremagic.com/issues/show_bug.cgi?id=9253 Summary: Review Phobos algorithms and make them transient-safe where possible Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nobody puremagic.com ReportedBy: hsteoh quickfur.ath.cx This bug is to have a central place to keep the list of Phobos algorithms found to be transient-incompatible but could potentially be made transient-compatible, so that the list doesn't get lost in the dust of forum history. - std.algorithm.reduce (when no seed is given) - std.algorithm.joiner (both variants have been fixed in git HEAD) - std.algorithm.group - std.algorithm.minCount - std.algorithm.minPos (takes forward range; should use .save) - std.algorithm.Levenshtein (takes forward range; should use .save) - std.algorithm.makeIndex (takes forward range; should use .save) - std.algorithm.splitter (takes slices without checking for isSlicable) - std.algorithm.topNCopy - std.algorithm.NWayUnion - std.array.array (probably not fixable) - std.array.insertInPlace (probably not fixable) - std.array.join (copies input range; may not be fixable) - std.stdio.writeln & friends (need more testing, there are some deep bits that fail with transient ranges) While the whole transience issue hasn't been decided yet, Andrei has agreed that those algorithms that *can* be made transience-compatible, should be. The fate of the rest will be determined when this issue has been decided on. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 01 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9253 monarchdodra gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monarchdodra gmail.com- std.algorithm.splitter (takes slices without checking for isSlicable)For the record, I'm on splitter. I had a pull ready, but closed it for further improvements. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 01 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9253This bug is to have a central place to keep the list of Phobos algorithms found to be transient-incompatible but could potentially be made transient-compatible, so that the list doesn't get lost in the dust of forum history. - std.algorithm.reduce (when no seed is given) - std.algorithm.joiner (both variants have been fixed in git HEAD) - std.algorithm.group - std.algorithm.minCount - std.algorithm.minPos (takes forward range; should use .save) - std.algorithm.Levenshtein (takes forward range; should use .save) - std.algorithm.makeIndex (takes forward range; should use .save) - std.algorithm.splitter (takes slices without checking for isSlicable) - std.algorithm.topNCopy - std.algorithm.NWayUnion - std.array.array (probably not fixable) - std.array.insertInPlace (probably not fixable) - std.array.join (copies input range; may not be fixable) - std.stdio.writeln & friends (need more testing, there are some deep bits that fail with transient ranges) While the whole transience issue hasn't been decided yet, Andrei has agreed that those algorithms that *can* be made transience-compatible, should be. The fate of the rest will be determined when this issue has been decided on.I just fixed minPos to use safe, and it should now be transient safe. No unittest though (yet) to prevent future breakage. I'm fixing minCount: It will be transient safe for forward ranges. Input ranges will the thoroughly unsafe though, with no possibility of workaround. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 14 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9253 Yeah, some algorithms will have to be transient-unsafe, because it will either introduce unacceptable overhead, or it's plain impossible due to the nature of the algorithm. These cases will just have to be left as-is. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 14 2013