D Language 2.0
Craig Black
craigblack2 at cox.net
Thu Jan 21 19:23:35 PST 2010
"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message
news:hj8gd7$2soe$1 at digitalmars.com...
> Craig Black wrote:
>>
>> "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.
>
> It's reasonable to say that you decide at application design level what
> memory management approach you want to choose. That doesn't fragment the
> community. The decision is similar to many others made at the same level:
> libraries used, build flags, target platform(s), pointer size (32 vs. 64,
> not an option yet for dmd), etc.
>
> Andrei
Are we talking about the same thing here? The things you mention here do
not create two incompatible styles of programming. I would like to point
out how great it is that Phobos and Tango can be compiled together in the
same application. Now they are interoperable. If -nogc code can't be used
together with GC code, then we create a similar schism as having two
incompatible "standard" libraries.
-Craig
More information about the Digitalmars-d
mailing list