www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 690] New: ABI not fully documented

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

           Summary: ABI not fully documented
           Product: D
           Version: 0.177
          Platform: All
               URL: http://www.digitalmars.com/d/abi.html
        OS/Version: All
            Status: NEW
          Keywords: spec
          Severity: major
          Priority: P2
         Component: www.digitalmars.com
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: smjg iname.com
OtherBugsDependingO 677
             nThis:


There are still many instances of "TBD" in the ABI.  These need to be replaced
with real documentation.


-- 
Dec 16 2006
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690


tomas famolsen.dk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|major                       |blocker





This is a blocker for LLVMDC. We need proper ABI documentation or it's
impossible to live up to Don's pretty agressive stance on how ABI
incompatibility basically creates a new language.

Not only is there a bunch on TBD's scattered all over it, it also has
contradictory information, as well as differences to the actual code generated
by DMD.


-- 
Sep 15 2008
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






I fleshed out all the TBDs. As you find other problems with it, please add
specifics to this report.


-- 
Mar 01 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






On a quick look, I've found one thing that's puzzling me.  In the ABI for
interfaces, where does the object pointer itself come in?


-- 
Mar 01 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690


tomas famolsen.dk changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED





I think there should be some notes on what happens inside the class when an
interface is implemented. It took some serious trial and error to get this
working in LDC (we even fixed some issues DMD still has), but I'm not sure
we're ABI compatible.


-- 
Mar 01 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






especially cases where multiple interfaces are implemented but each of these
interface inherit the same base interface. also derived classes reimplementing
an interface etc... all these special cases should be documented, as I already
said, I spent a long time looking through the DMD sources and testing things on
DMD/LDC, doing obj2asm and so on to get to something that *seems* to work
identically!


-- 
Mar 01 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






I would argue that associative arrays need more definition than "pointer to
opaque type".  If a compiler compiles a source file with an assoc array, and
another compiler generates a reference to it, how will the 2nd compiler know
how to use it?

An API is needed to make this happen.  Because assoc arrays are part of the
core language, there needs to be a shareable interface, even though it can
allow for different definitions.  Only then can one compiler use the assoc
array generated by another compiler, if they don't share the same core runtime
library.


-- 
Mar 11 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






What issues does DMD still have with interfaces? Did you fix the dmd source?


-- 
Mar 12 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690


Brad Roberts <braddr puremagic.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |braddr puremagic.com





PDT ---
This bug needs to gain some specifics or, preferably, be broken into several
smaller bugs.  It's been open for a long time and it's not clear exactly what's
left to be done.

Thomas, the last comment was directed to you to add specifics about what LDC
had done or changed related to interfaces.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 07 2009
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690






03:10:48 PDT ---
I'm not sure about the interface differences anymore, I think they might be
fixed in DMD, in any case we didn't change the frontend code, just the backend.

However, what happens when a class implements an interface is still not
described in the spec. Especially the cases where multiple interface
inheritance is involved, and the case where an interface is reimplemented, are
not specified.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 08 2009
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=690


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED



18:11:50 PST ---
http://www.dsource.org/projects/phobos/changeset/2139

Not perfect, but better.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 08 2010