More radical ideas about gc and reference counting

Manu via Digitalmars-d digitalmars-d at puremagic.com
Mon May 12 00:12:18 PDT 2014


On 12 May 2014 10:50, Walter Bright via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
>
>> They are using Rust to write a safe and performant web browser while
>> developing
>> the language.
>
>
> Sure. But that browser hasn't been released yet. Consider that I've written
> safe and performant code in D, but others tell me I am unique and that I
> cannot expect average programmers to get it right.
>
> I repeatedly point out to Manu that he can write performant code in D that
> does not suffer from GC stalls, and he repeatedly replies that he has to
> work with average programmers who are not capable of doing this.

What? You've never offered me a practical solution.

You tell me I have to sacrifice any dependency on libraries
(ridiculous), and all the modern conveniences and safety of automatic
memory management to do it!
Indeed, average programmers are a real-life practical problem, and
it's not just them, I also appreciate the convenience offered
personally. I only have one life, I *really* appreciate saving time on
mundane and otherwise inconsequential tasks.
Tell me some other reasons why I would be attracted to D? Take that
all away, and what's the point? Automating some boilerplate is nice,
but it's not the motivating reason for a wholesale adoption.

You haven't told me how I can use the GC (or whatever memory
management scheme, I really don't care) in the low frequency code
(again, read: almost all code ever), and not have it interfere with
the high frequency code.
This is the fundamental problem with the GC. I can't use it
***ANYWHERE***, including any libraries I link. You can't isolate a
GC, it's effects are not localised. If you could, maybe it'd be more
workable... but even if it were properly concurrent and didn't halt
the realtime threads when it collected, it's still totally impractical
for any background thread to freeze for 10s-100s of ms while it runs a
collect because I received a network packet which needs to be sent
somewhere for processing or whatever.

What do I do?


> So while I have no doubt that the Mozilla team may be very effective at
> using Rust and making it shine, that may not be transferable to the larger
> community.


More information about the Digitalmars-d mailing list