[webkit-dev] webkit core need to be cleanly separated from "ports", behind a vector table
lkcl at lkcl.net
Sat Oct 25 13:28:02 PDT 2008
Paul Pedriana-3 wrote:
> While a COM or similar interface may result in a library which makes
> porting easiest for new platforms, it sometimes can be harder to
> develop and maintain. We've been there and I can say that in some cases
an earlier reply mentioned also that the idea i suggested is "COM-like",
and, thus, if that is _believed_, then yes, absolutely, it will be found to
be a complete nightmare.
background: COM is an object-orientated layer that allows you to define
objects. the COM part of Common Object Model is incredibly similar to what
GLib / GObjects have become (right down to the horrible c macros, the object
refcounting, the interfaces, the object inheritance, everything). COM is a
stripped-down version of DCOM (distributed COM) where the much-hated windows
95 team got a hold of the much-better-trained windows nt team's code, and
ripped it to shreds.
what the windows 95 team took out was the D - DCE/RPC. DCE/RPC is a
"functional-programming" style RPC system (and is a perfect candidate for
building object-orientated technology, such as DCOM, on top of it). it is
_this_ technology that is *purely* c-based and is RPC middleware, and it's
unbelievably brilliant beyond belief.
in DCE/RPC, there is support for "interface versioning", where each
interface can have a single 16-bit number - a "version" - associated with
it. servers are expected to support all versions of interfaces, and thus
you can upgrade the servers first, and the clients last.
so, to cut a long story short, when the earlier poster said "yes, you're
suggesting that we implement a cut-down version of COM" - no, not exactly,
all you do is shove a 16-bit number at the beginning of the struct, that
says "version 1".
_definitely_ not "drag in all the object inheritance, ref-counting".
View this message in context: http://www.nabble.com/webkit-core-need-to-be-cleanly-separated-from-%22ports%22%2C-behind-a-vector-table-tp19982522p20167648.html
Sent from the Webkit mailing list archive at Nabble.com.
More information about the webkit-dev