Thread overview
[Issue 13182] extern(C++) classes cause crash when allocated on the stack with scope
Jul 22, 2014
yebblies
Jul 22, 2014
yebblies
Jul 22, 2014
Jacob Carlborg
Jul 22, 2014
yebblies
Jul 22, 2014
Jacob Carlborg
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #1 from yebblies <yebblies@gmail.com> ---
https://github.com/D-Programming-Language/dmd/pull/3797

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

bearophile_hugs@eml.cc changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bearophile_hugs@eml.cc

--- Comment #2 from bearophile_hugs@eml.cc ---
(In reply to yebblies from comment #0)

> void main()
> {
>     scope C c = new C();
> }

Isn't that usage of scope deprecated? And isn't it better to fix language parts that are not deprecated?

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #3 from yebblies <yebblies@gmail.com> ---
(In reply to bearophile_hugs from comment #2)
> (In reply to yebblies from comment #0)
> 
> > void main()
> > {
> >     scope C c = new C();
> > }
> 
> Isn't that usage of scope deprecated?

I don't know if it's really deprecated.  I thought it was, but then Walter told me to use it.  If we do get proper 'scope' in the language then this code will become perfectly safe, so...

> And isn't it better to fix language
> parts that are not deprecated?

No.  It is better to fix the parts that are useful, like this is for me.  I marked it as a blocker because it's currently blocking DDMD.

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

Jacob Carlborg <doob@me.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |doob@me.com

--- Comment #4 from Jacob Carlborg <doob@me.com> ---
(In reply to bearophile_hugs from comment #2)

> Isn't that usage of scope deprecated? And isn't it better to fix language parts that are not deprecated?

No, everyone is saying that but it's not officially deprecated. No update documentation, no deprecation or warning messages.

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #5 from bearophile_hugs@eml.cc ---
(In reply to yebblies from comment #3)

> I don't know if it's really deprecated.  I thought it was, but then Walter told me to use it.

Then it's in a grey area, like several other things in D.


> If we do get proper 'scope' in the language then this
> code will become perfectly safe, so...

I agree.

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #6 from yebblies <yebblies@gmail.com> ---
(In reply to Jacob Carlborg from comment #4)
> 
> No, everyone is saying that but it's not officially deprecated. No update documentation, no deprecation or warning messages.

Actually it _is_ listed on the deprecated features page.

I can guarantee that while it is still useful to ddmd it will not be removed from the language.

--
July 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #7 from Jacob Carlborg <doob@me.com> ---
(In reply to yebblies from comment #6)

> Actually it _is_ listed on the deprecated features page.

Aha, I didn't even know there was a deprecated features page.

--
July 23, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #8 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d2328d90739f205e176603519ffe8e65a60247ef
Fix Issue 13182 - extern(C++) classes cause crash when allocated on the stack
with scope

Destructors are not currently allowed on extern(C++) classes, so it should not
call delete at all.

https://github.com/D-Programming-Language/dmd/commit/f740f0da160ec7896472736c0d6418916ac6650a Merge pull request #3797 from yebblies/cppscope

[DDMD] Issue 13182 - extern(C++) classes cause crash when allocated on the
stack with scope

--
July 23, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #9 from github-bugzilla@puremagic.com ---
Commit pushed to 2.066 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/7602561892bf1722f82cdff8f66e7480364b4d82 Merge pull request #3797 from yebblies/cppscope

[DDMD] Issue 13182 - extern(C++) classes cause crash when allocated on the
stack with scope

--
August 22, 2014
https://issues.dlang.org/show_bug.cgi?id=13182

--- Comment #10 from github-bugzilla@puremagic.com ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/7602561892bf1722f82cdff8f66e7480364b4d82 Merge pull request #3797 from yebblies/cppscope

--