July 17, 2014
On Thursday, 17 July 2014 at 13:29:18 UTC, John wrote:
<snip>
>
> If D came without GC, it would have replaced C++ a long time ago!

Agree +1000.

If GC is so good, why not make it an option, have a base lib w/o GC.

If I want GC, I got me JRE. It seems that some in D want to write a better JRE, and that just won't happen ever.

Cheers,
Vic
July 17, 2014
On Thursday, 17 July 2014 at 16:56:56 UTC, Vic wrote:
> If GC is so good, why not make it an option, have a base lib w/o GC.

Much of Phobos already is GC free. The parts that aren't should be easy to convert to use user-supplied buffers. Please add enhancement requests for cases where there isn't a GC-free alternative to a standard library routine.
July 17, 2014
On Thursday, 17 July 2014 at 17:13:04 UTC, Peter Alexander wrote:
> On Thursday, 17 July 2014 at 16:56:56 UTC, Vic wrote:
>> If GC is so good, why not make it an option, have a base lib w/o GC.
>
> Much of Phobos already is GC free. The parts that aren't should be easy to convert to use user-supplied buffers. Please add enhancement requests for cases where there isn't a GC-free alternative to a standard library routine.

If that is true, I may even do a $ bounty to make Phobos GC free.

I may do the same, $ bounty on vibe.d port to GC free.

I don't know D enough to be able to do that, but good news to me.

Cheers,
Vic
July 17, 2014
Vic:

>> If D came without GC, it would have replaced C++ a long time ago!
>
> Agree +1000.

I see no proof of this. And not everybody hates GCs.

Bye,
bearophile
July 17, 2014
 I hate GC, so there.

> I see no proof of this. And not everybody hates GCs.
>
> Bye,
> bearophile

July 17, 2014
On Thursday, 17 July 2014 at 13:02:22 UTC, Remo wrote:
<snip>
> The quality of GC implementation is probably more important.
>

I disagree, I am a burn victim and don't trust smoke.

Ideally it is optional.

Cheers,
Vic
July 17, 2014
On Thu, Jul 17, 2014 at 05:32:36PM +0000, Right via Digitalmars-d wrote:
>  I hate GC, so there.
> 
> >I see no proof of this. And not everybody hates GCs.
[...]

I don't, so here. :D


T

-- 
I see that you JS got Bach.
July 17, 2014
On Thu, Jul 17, 2014 at 05:28:01PM +0000, Vic via Digitalmars-d wrote:
> On Thursday, 17 July 2014 at 17:13:04 UTC, Peter Alexander wrote:
> >On Thursday, 17 July 2014 at 16:56:56 UTC, Vic wrote:
> >>If GC is so good, why not make it an option, have a base lib w/o GC.
> >
> >Much of Phobos already is GC free. The parts that aren't should be easy to convert to use user-supplied buffers. Please add enhancement requests for cases where there isn't a GC-free alternative to a standard library routine.
> 
> If that is true, I may even do a $ bounty to make Phobos GC free.
> 
> I may do the same, $ bounty on vibe.d port to GC free.
> 
> I don't know D enough to be able to do that, but good news to me.
[...]

Over the last year or so, IIRC, there has been a push (a slow but nonetheless steady push) to make as much of Phobos GC-free as possible. I'd say most (all?) of std.algorithm and std.range should be GC-free by now, and probably many of the others can be made GC-free quite easily with the tools that we now have.

AFAIK some work still needs to be done with std.string; Walter for one has started some work to implement range-based equivalents for std.string functions, which would be non-allocating; we just need a bit of work to push things through.

DMD 2.066 will have @nogc, which will make it easy to discover which remaining parts of Phobos are still not GC-free. Then we'll know where to direct our efforts. :-)


T

-- 
Elegant or ugly code as well as fine or rude sentences have something in common: they don't depend on the language. -- Luca De Vitis
July 17, 2014
On Thursday, 17 July 2014 at 17:49:24 UTC, H. S. Teoh via Digitalmars-d wrote:
> On Thu, Jul 17, 2014 at 05:28:01PM +0000, Vic via Digitalmars-d wrote:
>> On Thursday, 17 July 2014 at 17:13:04 UTC, Peter Alexander wrote:
>> >On Thursday, 17 July 2014 at 16:56:56 UTC, Vic wrote:
>> >>If GC is so good, why not make it an option, have a base lib w/o GC.
>> >
>> >Much of Phobos already is GC free. The parts that aren't should be
>> >easy to convert to use user-supplied buffers. Please add enhancement
>> >requests for cases where there isn't a GC-free alternative to a
>> >standard library routine.
>> 
>> If that is true, I may even do a $ bounty to make Phobos GC free.
>> 
>> I may do the same, $ bounty on vibe.d port to GC free.
>> 
>> I don't know D enough to be able to do that, but good news to me.
> [...]
>
> Over the last year or so, IIRC, there has been a push (a slow but
> nonetheless steady push) to make as much of Phobos GC-free as possible.
> I'd say most (all?) of std.algorithm and std.range should be GC-free by
> now, and probably many of the others can be made GC-free quite easily
> with the tools that we now have.
>
> AFAIK some work still needs to be done with std.string; Walter for one
> has started some work to implement range-based equivalents for
> std.string functions, which would be non-allocating; we just need a bit
> of work to push things through.
>
> DMD 2.066 will have @nogc, which will make it easy to discover which
> remaining parts of Phobos are still not GC-free. Then we'll know where
> to direct our efforts. :-)
>
>
> T

That's good news! See, we're getting there, just bear with us. This begs the question of course, how will this affect existing code? My code is string intensive.
July 17, 2014
On Thursday, 17 July 2014 at 17:28:02 UTC, Vic wrote:
> If that is true, I may even do a $ bounty to make Phobos GC free.

Unless you do some hard real-time barebone stuff it is quite likely you can do with limited usage of GC. Hiring some of experienced D user to make a one-time case study with detailed recommendation can be an option if you are seriously concerned.

> I may do the same, $ bounty on vibe.d port to GC free.

vibe.d has -version=VibedManualMemoryManagement which removes much of GC usage from its internals. Not 100% @nogc but some entry point to start with for interested parties.

> I don't know D enough to be able to do that, but good news to me.

Here Don mentions some of techniques we (Sociomantic) use to minimize GC impact : https://www.youtube.com/watch?v=WmE7ZR1_YKs

In the end it comes to famous Bjarne quote : "C++ may be the best language for garbage collection because it generates so few garbage". Same can be applied to D with proper coding style.