The goodness of goodness
Bernd Gehrmann
bernd at physik.hu-berlin.de
Mon May 14 20:15:12 UTC 2001
On Mon, 14 May 2001, Richard Dale wrote:
> > Hmm, aren't bundles just distiguished by their file name (i.e. directory
> > name)? How do you distinguish different versions of them?
> Yes, they were, but we gave them names like FooBar.17.bundle. I assume you
> would have to include the goodness number in the real name of KPart library too,
> but the 'KTrader/goodness as version number' gives you a level of indirection
> away from that. Perhaps there could also be some sort of KTrader service to give
> the the current version set of the app's KParts.
One thing you can do is to install different versions of a part
by using different library (i.e. .so) names. Then you can switch
between them by copy different variants of the according .desktop
to the service directory. For example, for the documentation tree,
you would have
[Desktop Entry]
Type=Service
Name=KDevDocTreeView
ServiceTypes=KDevelop/Part
X-KDE-Library=libkdevdoctreeview16
which refers to version 16. But this not a real solution. Parts may
also have different ui.rc files in different versions, so having
some versions installed at the time would require to give them different
KInstance names, so they can find their resources.
> It was quite a powerful feature to always be able to revert to a previous set
> of bundles if something went wrong with a new release. It meant that you
> rarely had to release the entire app (Objective-C also allows you to override
> and patch existing code at runtime with 'categories'). So for large, constantly
> changing custom apps this was very useful.
I'm still confused about this 'override' feature. How does the Objective C
runtime handle dynamically loaded code? Are methods defined in a plugin
automatically globally 'visible'? Then you can probably not have
different classes with the same name in different plugins. Since Objective
C doesn't have namespaces, how do you avoid conflicts then?
Bernd.
-
to unsubscribe from this list send an email to kdevelop-devel-request at kdevelop.org with the following body:
unsubscribe »your-email-address«
More information about the KDevelop-devel
mailing list