std.experimental.yesnogc

2016-01-13 Thread Andrei Alexandrescu via Digitalmars-d
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

2016-01-13 Thread rsw0x via Digitalmars-d
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

2016-01-13 Thread userABCabc123 via Digitalmars-d
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

2016-01-13 Thread Ilya via Digitalmars-d
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

2016-01-13 Thread Meta via Digitalmars-d
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

2016-01-13 Thread Jack Stouffer via Digitalmars-d
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

2016-01-13 Thread Anonymouse via Digitalmars-d
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

2016-01-13 Thread Vladimir Panteleev via Digitalmars-d
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

2016-01-13 Thread Jacob Carlborg via Digitalmars-d

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

2016-01-14 Thread Brian Schott via Digitalmars-d
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

2016-01-14 Thread Jack via Digitalmars-d
On Thursday, 14 January 2016 at 00:35:53 UTC, Andrei Alexandrescu 
wrote:


Ideas?

Andrei


std.experimental.rusty


Re: std.experimental.yesnogc

2016-01-14 Thread Robert burner Schadek via Digitalmars-d
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

2016-01-14 Thread Guillaume Piolat via Digitalmars-d
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

2016-01-14 Thread ref2401 via Digitalmars-d

On Thursday, 14 January 2016 at 02:13:20 UTC, Ilya wrote:


std.memory --Ilya


That's a good one.


Re: std.experimental.yesnogc

2016-01-14 Thread Andrei Alexandrescu via Digitalmars-d

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

2016-01-14 Thread bachmeier via Digitalmars-d
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

2016-01-14 Thread Andrei Alexandrescu via Digitalmars-d

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

2016-01-14 Thread Jacob Carlborg via Digitalmars-d

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

2016-01-14 Thread Andrei Alexandrescu via Digitalmars-d

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

2016-01-14 Thread Jacob Carlborg via Digitalmars-d

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

2016-01-14 Thread Rikki Cattermole via Digitalmars-d

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

2016-01-15 Thread Chris via Digitalmars-d
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

2016-01-16 Thread karabuta via Digitalmars-d
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

2016-01-16 Thread karabuta via Digitalmars-d

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

2016-01-17 Thread ZombineDev via Digitalmars-d
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

2016-01-18 Thread qznc via Digitalmars-d
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

2016-01-18 Thread Jacob Carlborg via Digitalmars-d

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