www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 9769] New: Remove opEquals from Object

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769

           Summary: Remove opEquals from Object
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: druntime
        AssignedTo: nobody puremagic.com
        ReportedBy: jmdavisProg gmx.com


--- Comment #0 from Jonathan M Davis <jmdavisProg gmx.com> 2013-03-21 00:02:44
PDT ---
Per this thread http://forum.dlang.org/post/jtlj1k$1fdj$1 digitalmars.com , it
was decided to try and go the path of removing opEquals, opCmp, toHash, and
toString from Object, as they don't need to be there, and the fact that they're
there is causing issues with attributes such as const ( issue# 1824 ).

This issue is specifically for opEquals so that any work towards making it
unnecessary and removing it can be referenced here, whereas the other 3 have
separate bugzilla entries, as the work for them isn't necessarily related to
each other. opEquals, opCmp, and toHash in particular may require substantial
work to be done on the built-in AAs before they can actually be removed from
Object, as the AA implementation is not currently templated like it should be.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 21 2013
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769



--- Comment #1 from Jonathan M Davis <jmdavisProg gmx.com> 2013-03-21 00:05:46
PDT ---
Related:

opCmp: issue# 9770
toHash: issue# 9771
toString: issue# 9772

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 21 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769


Jacob Carlborg <doob me.com> changed:

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


--- Comment #2 from Jacob Carlborg <doob me.com> 2013-03-21 00:25:12 PDT ---
Was there a conclusion on how this will affect backwards compatible?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 21 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769



--- Comment #3 from Jonathan M Davis <jmdavisProg gmx.com> 2013-03-21 00:42:37
PDT ---
https://github.com/D-Programming-Language/druntime/pull/459

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Mar 21 2013
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769



--- Comment #4 from Jonathan M Davis <jmdavisProg gmx.com> 2013-03-21 00:45:19
PDT ---
 Was there a conclusion on how this will affect backwards compatible?

No, other than the fact that we'd probably have to keep the functions on opEquals for a while as part of the transition. I expect that the steps will be something like 1. Convert everything over in druntime so that those functions don't have to be on Object. 2. Deprecate the functions on Object. 3. Remove the functions from Object. I expect that it'll take quite a while to go through those stages though, and it may be the case that we'll be forced to remove them from Object faster than we'd like due to some implementation issue that makes it so that keeping it around is a problem; I don't know. Regardless, the first step is making those functions on Object unnecessary, and that's going to take a while (primarily due to AAs). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 21 2013
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=9769



--- Comment #5 from Jonathan M Davis <jmdavisProg gmx.com> 2013-10-13 16:17:16
PDT ---
Relevant discussion on how to transition away from having these functions on
Object (the thread got broken up a bit - probably by the mailman bug):

http://forum.dlang.org/post/mailman.214.1369617617.13711.digitalmars-d puremagic.com
http://forum.dlang.org/post/mailman.280.1369712394.13711.digitalmars-d puremagic.com

The key suggestion is to change the compiler so that those 4 functions can be
free functions in object_.d, similar to how the compiler already does special
stuff for == rather than simply calling Object's opEquals.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 13 2013