D Language 2.0
Craig Black
craigblack2 at cox.net
Wed Jan 20 18:58:47 PST 2010
"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message
news:hj7vnu$2008$1 at digitalmars.com...
> BCS wrote:
>> Hello Andrei,
>>
>>> The nice part about refcounting is that for the most part you don't
>>> need to cripple the language.
>>>
>>
>> I think people are trying to say that disallowing use of GC stuff
>> wouldn't cripple the language.
>
> Well it's a fact that there would be fewer idioms and options accessible.
> So I didn't mean it in a derogatory way as much as a factual statement.
>
>> Also there is one thing that -nogc would have over what you are talking
>> about; you could use it on some modules and not others. If I have some
>> performance critical code where attempting to use the GC would break it's
>> perf contract, I can put it in it's own module and compile just it
>> with -nogc and then link it in with code that does use the GC.
>
> Meh. This has been discussed in the C++ standardization committee, and it
> gets really tricky real fast when you e.g. use together several libraries,
> each with its own view of memory management. My impression: don't.
There are certainly challenges, even perhaps some that I haven't thought of,
with mixing manual memory management and GC code. But perhaps there is a
bigger problem with the approach you describe. Correct me if I'm wrong, but
it seems that what you propose is a -nogc option that would fragment all D
code into two incompatible groups. If my -nogc code could not be used with
anyone else's D code, then what I have is not a dialect of D at all, but a
different incompatible language.
I know this issue is a challenging problem from a language design
standpoint, and I see why you would have some disdain for it. However, this
is not an impossible problem to solve. For example, I believe Managed C++
does this, albeit with some weird syntax, but this proves that it can be
done. Anyway, just my 2 cents.
-Craig
More information about the Digitalmars-d
mailing list