[Issue 18847] New: std.allocator: Region uses .parent before it can be set
https://issues.dlang.org/show_bug.cgi?id=18847 Issue ID: 18847 Summary: std.allocator: Region uses .parent before it can be set Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net CC: and...@erdani.com Here is one constructor of std.experimental.allocator.building_blocks.region.Region: static if (!is(ParentAllocator == NullAllocator)) this(size_t n) { this(cast(ubyte[])(parent.allocate(n.roundUpToAlignment(alignment; } If parent has state, then there is no way to set it before it is used in the constructor. There is a workaround: copy the contents of the constructor of the invoking code, then use the constructor taking a buffer, and only then initialize the parent. This is sub-ideal. The constructor(s) should probably accept a parent argument as needed, or the object should support deferred initialization. --
[Issue 18848] New: std.allocator: Regions are non-copyable, yet are passed around in examples
https://issues.dlang.org/show_bug.cgi?id=18848 Issue ID: 18848 Summary: std.allocator: Regions are non-copyable, yet are passed around in examples Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net CC: and...@erdani.com Here is an example from std.experimental.allocator.building_blocks.allocator_list.AllocatorList: // Ouroboros allocator list based upon 4MB regions, fetched directly from // mmap. All memory is released upon destruction. alias A1 = AllocatorList!((n) => Region!MmapAllocator(max(n, 1024 * 4096)), NullAllocator); The example features a lambda returning a Region. However, Regions cannot be copied, as they have a destructor which deallocates everything. A comment in the implementation says: /* TODO: The postblit of $(D BasicRegion) should be disabled because such objects should not be copied around naively. */ (That's the only occurrence of BasicRegion in Phobos, so I assume that's just an old name for Region.) Though NRVO may make the verbatim example code behave correctly, it is fragile, and small code modifications e.g. to work around issue 18848 can cause difficult-to-debug problems (due to dangling pointers in other Region instances). --
[Issue 18849] New: std.allocator: AllocatorList uses deallocate and ignores return value in deallocateAll
https://issues.dlang.org/show_bug.cgi?id=18849 Issue ID: 18849 Summary: std.allocator: AllocatorList uses deallocate and ignores return value in deallocateAll Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: dlang-bugzi...@thecybershadow.net AllocatorList's deallocateAll has the code: if (special) { special.deallocate(allocators); } This has the issues: - The return value is ignored. If the deallocation failed, the failure should be communicated to the caller. Currently, this causes a silent memory leak. - Some allocators, such as Region, can deallocateAll, but cannot deallocate. Ideally the complete inability to deallocate() should be detected at compile-time, and such combinations rejected. - The documentation of AllocatorList has two examples of using it with Region, which will not work (leak memory) due to the above. --
[Issue 18849] std.allocator: AllocatorList uses deallocate and ignores return value in deallocateAll
https://issues.dlang.org/show_bug.cgi?id=18849 Vladimir Panteleev changed: What|Removed |Added CC||and...@erdani.com --
[Issue 18849] std.allocator: AllocatorList uses deallocate and ignores return value in deallocateAll
https://issues.dlang.org/show_bug.cgi?id=18849 Andrei Alexandrescu changed: What|Removed |Added Assignee|nob...@puremagic.com|edi33...@gmail.com --
[Issue 18848] std.allocator: Regions are non-copyable, yet are passed around in examples
https://issues.dlang.org/show_bug.cgi?id=18848 Andrei Alexandrescu changed: What|Removed |Added Assignee|nob...@puremagic.com|edi33...@gmail.com --
[Issue 18110] most of phobos should be @safe-ly useable
https://issues.dlang.org/show_bug.cgi?id=18110 Issue 18110 depends on issue 18178, which changed state. Issue 18178 Summary: std.path should be usable in @safe https://issues.dlang.org/show_bug.cgi?id=18178 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --
[Issue 18178] std.path should be usable in @safe
https://issues.dlang.org/show_bug.cgi?id=18178 --- Comment #1 from github-bugzi...@puremagic.com --- Commits pushed to master at https://github.com/dlang/phobos https://github.com/dlang/phobos/commit/f6e4416a72a778bc6cd21fbefb6e72bfd9fb2976 Fix Issue 18178 - std.path should be usable in @safe https://github.com/dlang/phobos/commit/7ab0e8c4dc013b10c9e54d0f971ea257d6760fd5 Merge pull request #6274 from JackStouffer/issue18178 Fix Issue 18178 - std.path should be usable in @safe merged-on-behalf-of: Jack Stouffer --
[Issue 18176] std.numeric.gapWeightedSimilarity should be usable in @safe
https://issues.dlang.org/show_bug.cgi?id=18176 Jack Stouffer changed: What|Removed |Added CC||j...@jackstouffer.com --- Comment #1 from Jack Stouffer --- Currently this function is designed to be @nogc. This can't be both @safe and @nogc at the same time. --
[Issue 18743] ConditionalExpression and AssignExpression should require parentheses
https://issues.dlang.org/show_bug.cgi?id=18743 Nick Treleaven changed: What|Removed |Added Keywords||pull URL||https://github.com/dlang/dm ||d/pull/8237 --
[Issue 18850] New: Template overload incorrectly results in recursive expansion error
https://issues.dlang.org/show_bug.cgi?id=18850 Issue ID: 18850 Summary: Template overload incorrectly results in recursive expansion error Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: enhancement Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: johnnymar...@gmail.com bug.d struct Foo(T) { alias Foo = Foo!(T, T.init); } struct Foo(T, T initialValue) { private T value = initialValue; } Foo!int n; > dmd -c file.d bug.d(3): Error: template instance `Foo!(T, T.init)` recursive template expansion bug.d(9): Error: template instance `bug.Foo!int` error instantiating --
[Issue 18850] Template overload incorrectly results in recursive expansion error
https://issues.dlang.org/show_bug.cgi?id=18850 ag0aep6g changed: What|Removed |Added CC||ag0ae...@gmail.com --- Comment #1 from ag0aep6g --- (In reply to Jonathan Marler from comment #0) > alias Foo = Foo!(T, T.init); Just that line alone shows the same behavior. And that might make it more obvious what's happening: In the struct body, "Foo" refers to the alias, not the templates. You can refer to the templates with `.Foo`: struct Foo(T) { alias Foo = .Foo!(T, T.init); } struct Foo(T, T initialValue) { private T value = initialValue; } Foo!int n; --
[Issue 18851] New: std.net.curl.post cannot be used with !ubyte
https://issues.dlang.org/show_bug.cgi?id=18851 Issue ID: 18851 Summary: std.net.curl.post cannot be used with !ubyte Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: blocker Priority: P1 Component: phobos Assignee: nob...@puremagic.com Reporter: tech.vin...@gmail.com In file 'curl.d': T[] post(T = char)(const(char)[] url, string[string] postDict, HTTP conn = HTTP()) if (is(T == char) || is(T == ubyte)) //ignoring { import std.uri : urlEncode; return post(url, urlEncode(postDict), conn); //post!char by default } Correctly: T[] post(T = char)(const(char)[] url, string[string] postDict, HTTP conn = HTTP()) if (is(T == char) || is(T == ubyte)) { import std.uri : urlEncode; return post!T(url, urlEncode(postDict), conn); } --
[Issue 18851] std.net.curl.post cannot be used with !ubyte
https://issues.dlang.org/show_bug.cgi?id=18851 Eugene changed: What|Removed |Added Keywords||trivial URL||https://github.com/dlang/ph ||obos/blob/master/std/net/cu ||rl.d --
[Issue 18852] New: forum.dlang.org says down when redirect after posting
https://issues.dlang.org/show_bug.cgi?id=18852 Issue ID: 18852 Summary: forum.dlang.org says down when redirect after posting Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P1 Component: dlang.org Assignee: nob...@puremagic.com Reporter: john.michael.h...@gmail.com In recent days/weeks, I started constantly getting a message after posting that "forum.dlang.org is temporarily down for maintenance, and should be back up shortly. Apologies for the inconvenience." However, when I go back to forum.dlang.org it loads just fine and I can click through to my post. This is happening during the re-direct process. The post still shows up in the forum (I know because I see it and people respond). However, all these posts are still showing up in my drafts thing. Also, I just posted at the same time as I was loading some other pages and all the pages went to the maintenance thing. --
[Issue 18852] forum.dlang.org says down when redirect after posting
https://issues.dlang.org/show_bug.cgi?id=18852 greenify changed: What|Removed |Added CC||greeen...@gmail.com --- Comment #1 from greenify --- Please report this at the forum's issue tracker: https://github.com/CyberShadow/DFeed Thanks! --
[Issue 14171] Mark non-allocating GC functions as @nogc
https://issues.dlang.org/show_bug.cgi?id=14171 alexanderheisterm...@gmail.com changed: What|Removed |Added Blocks|13972 | Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=13972 [Issue 13972] Make scoped, Unique, and RefCounted @nogc --
[Issue 13972] Make scoped, Unique, and RefCounted @nogc
https://issues.dlang.org/show_bug.cgi?id=13972 alexanderheisterm...@gmail.com changed: What|Removed |Added CC||alexanderheistermann@gmail. ||com Depends on|14171 |15246 Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=14171 [Issue 14171] Mark non-allocating GC functions as @nogc https://issues.dlang.org/show_bug.cgi?id=15246 [Issue 15246] Destructor inheritance doesn't inherit attributes properly --
[Issue 15246] Destructor inheritance doesn't inherit attributes properly
https://issues.dlang.org/show_bug.cgi?id=15246 alexanderheisterm...@gmail.com changed: What|Removed |Added Blocks||13972 Referenced Issues: https://issues.dlang.org/show_bug.cgi?id=13972 [Issue 13972] Make scoped, Unique, and RefCounted @nogc --
[Issue 15246] Destructor inheritance doesn't inherit attributes properly
https://issues.dlang.org/show_bug.cgi?id=15246 --- Comment #17 from alexanderheisterm...@gmail.com --- This bug blocks certain Phobos functions from being @nogc as it involves the destroy function. I am bumping the importance of this to critical status, as the current workarounds I seen involves taking a sledge hammer approach, as it forces the compiler to assume @nogc. Here an example of what I was referring to. https://www.auburnsounds.com/blog/2016-11-10_Running-D-without-its-runtime.html --
[Issue 15246] Destructor inheritance doesn't inherit attributes properly
https://issues.dlang.org/show_bug.cgi?id=15246 alexanderheisterm...@gmail.com changed: What|Removed |Added Severity|normal |critical --
[Issue 18852] forum.dlang.org says down when redirect after posting
https://issues.dlang.org/show_bug.cgi?id=18852 Vladimir Panteleev changed: What|Removed |Added Status|NEW |RESOLVED Hardware|x86 |All Resolution|--- |FIXED OS|Windows |All --- Comment #2 from Vladimir Panteleev --- Fixed: https://github.com/CyberShadow/DFeed/commit/dc4cc60569975f1f5c893194a1cfc586790a09d6 Congratulations on being the first user to solve 10 CAPTCHAs and becoming the first trusted user! You should see them no longer. (Hopefully, that was the only bug in the trusted user implementation...) --
[Issue 18852] forum.dlang.org says down when redirect after posting
https://issues.dlang.org/show_bug.cgi?id=18852 --- Comment #3 from John Hall --- @Vladamir Thanks for fixing this. It's been driving me a bit nuts. I often get the CAPTCHAs at home because I'm behind a VPN. I might get them at work too, but really it's the VPN that is the big driver of it. --
[Issue 18853] New: std.allocator: AllocatorList fails to allocate after a deallocation
https://issues.dlang.org/show_bug.cgi?id=18853 Issue ID: 18853 Summary: std.allocator: AllocatorList fails to allocate after a deallocation Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: normal Priority: P1 Component: phobos Assignee: edi33...@gmail.com Reporter: dlang-bugzi...@thecybershadow.net CC: and...@erdani.com / test.d import std.algorithm.comparison; import std.experimental.allocator; import std.experimental.allocator.building_blocks.allocator_list; import std.experimental.allocator.building_blocks.region; import std.experimental.allocator.gc_allocator; void main() { AllocatorList!((n) => Region!GCAllocator(max(n, 4096)), GCAllocator) allocator; auto buf = allocator.allocate(2048); allocator.deallocate(buf); buf = allocator.allocate(4097); assert(buf.length); } / At a glance, looks like it's caused by the thrashing protection not taking deallocations into account. --