std.experimental.yesnogc
Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei std.experimental.mm ? mm => memory management It would be interesting to know what you plan on putting in there. There's a few functions that duplicate utility in Phobos but one allocates and the other doesn't — e.g, lineSplitter. lineSplitter is 4-5x faster than the equivalent GC version(splitLines) according to my benchmarks. I think one of the bigger issues with Phobos using the GC isn't that it uses the GC, but many functions allocate far more than they need to. I've seen Rust referred to as too focused on memory management(in fact, I think it was you that referred to Rust as this) but I think D sometimes goes in the opposite direction making it too easy to forget about memory management and just allocate everywhere because it's very implicit. Bye.
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei std.experimental.gcfree std.experimental.unmanaged std.experimental.uncollected std.experimental.mmm (manual mem managment)
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei std.memory --Ilya
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei Aside from that, naming it std.experimental.nogc is a bad idea because it'll confuse newcomers, thinking it's somehow related to @nogc... Which it is, but we don't want people importing std.experimental.nogc because they think they need to do that to use @nogc. Ideas: std.experimental.gcless (still negative) std.experimental.gcfree std.experimental.realtime std.experimental.pausefree std.experimental.manualheap std.experimental.manualmem
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton I'd go with std.memory or std.memory_management as others have suggested.
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. std.samesamebutdifferent
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? std.experimental.lifetime
Re: std.experimental.yesnogc
On 2016-01-14 01:35, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. std.experimental.memory with submodules for the different use cases: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something -- /Jacob Carlborg
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory with submodules for the different use cases: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something Agreed.
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Ideas? Andrei std.experimental.rusty
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory with submodules for the different use cases: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something this has my vote I guess the first submodule should be the allocators!?
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Ideas? import std.experimental.gcbypass; import std.experimental.gcfreedom; import std.experimental.shuntgc; import std.experimental.rcinstead; import std.experimental.manual;
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 02:13:20 UTC, Ilya wrote: std.memory --Ilya That's a good one.
Re: std.experimental.yesnogc
On 01/14/2016 12:48 AM, Vladimir Panteleev wrote: On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? std.experimental.lifetime noice -- Andrei
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something +1
Re: std.experimental.yesnogc
On 01/14/2016 09:50 AM, bachmeier wrote: On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something +1 I don't see how this categorization works. E.g. there's no need for special tooling related to the GC. -- Andrei
Re: std.experimental.yesnogc
On 2016-01-14 15:52, Andrei Alexandrescu wrote: I don't see how this categorization works. E.g. there's no need for special tooling related to the GC. -- Andrei It was just a couple of suggestions. I don't know exactly what you're going to include in this module. -- /Jacob Carlborg
Re: std.experimental.yesnogc
On 01/14/2016 10:46 AM, Jacob Carlborg wrote: On 2016-01-14 15:52, Andrei Alexandrescu wrote: I don't see how this categorization works. E.g. there's no need for special tooling related to the GC. -- Andrei It was just a couple of suggestions. I don't know exactly what you're going to include in this module. Me neither, which adds to the problem :o). -- Andrei
Re: std.experimental.yesnogc
On 2016-01-14 17:11, Andrei Alexandrescu wrote: Me neither, which adds to the problem :o). -- Andrei You need to at least have some ideas, otherwise there's no point in a new module :) -- /Jacob Carlborg
Re: std.experimental.yesnogc
On 15/01/16 5:11 AM, Andrei Alexandrescu wrote: On 01/14/2016 10:46 AM, Jacob Carlborg wrote: On 2016-01-14 15:52, Andrei Alexandrescu wrote: I don't see how this categorization works. E.g. there's no need for special tooling related to the GC. -- Andrei It was just a couple of suggestions. I don't know exactly what you're going to include in this module. Me neither, which adds to the problem :o). -- Andrei I can already suggest one thing. I'm currently working on a library solution to my managed memory concept. I should have it completed within a day or so. I will be replacing the dummy ref counted solution I built for alphaPhobos with this. As it allows me a LOT more control over the memory. And it will be wonderful for containers with secondary ownership and all that :) http://wiki.dlang.org/User:Alphaglosined/ManagedMemory
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. Ideas? Andrei Will there also be an article about how to integrate the new memory model(s) into existing code? Something along the lines of "How to make existing code GC free". It'd be great to have a guide that shows how to do it properly.
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: On 2016-01-14 01:35, Andrei Alexandrescu wrote: Hey folks, I want to push things forward with artifacts dedicated to avoiding the GC, and of course my main worry is finding the right name. An obvious choice is std.experimental.nogc but we know from Marketing 101 that expressing something as a positive is better than a negative. Another possibility is std.experimental.rc, but that's imprecise because the artifacts in there will contain a variety of things in addition to reference counting-related artifacts. std.experimental.memory with submodules for the different use cases: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something +1
Re: std.experimental.yesnogc
On Saturday, 16 January 2016 at 15:56:39 UTC, karabuta wrote: On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something +1 Simplifies things IMO
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 14:52:19 UTC, Andrei Alexandrescu wrote: On 01/14/2016 09:50 AM, bachmeier wrote: On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something +1 I don't see how this categorization works. E.g. there's no need for special tooling related to the GC. -- Andrei That's not true. All of http://dlang.org/phobos/core_memory is about the GC. If some of the low-level stuff are put in druntime, then this categorization would look nice: core.memory.gc (previously just core.memory) core.memory.manual (something along the lines of https://github.com/D-Programming-Language/phobos/pull/3031) core.memory.rc (Unique/Isolated and Shared smart pointers)
Re: std.experimental.yesnogc
On Thursday, 14 January 2016 at 07:44:16 UTC, Jacob Carlborg wrote: std.experimental.memory.rc std.experimental.memory.gc std.experimental.memory.manual // or something This "rc" is "reference counting"? Reference counting is also a form of garbage collection ("gc"). So I don't like this classification. If we really want "rc", then something like "trace" instead of "gc" should be the alternative.
Re: std.experimental.yesnogc
On 2016-01-18 09:40, qznc wrote: This "rc" is "reference counting"? Reference counting is also a form of garbage collection ("gc"). So I don't like this classification. If we really want "rc", then something like "trace" instead of "gc" should be the alternative. They are suggestions. More an indication that he doesn't need to come up with a weird name that can fit anything. -- /Jacob Carlborg