New kdelibs policy starting monday
Peter Kümmel
syntheticpp at gmx.net
Sat Jul 15 13:00:18 BST 2006
Stephan Kulow wrote:
> Hi!
>
> As there doesn't seem to be a real discussion going on anymore,
> I declare the new trunk/KDE policy applying starting this monday.
>
> This means:
> - next monday we will erase kdelibs4_snapshot and from that time
> trunk/KDE/kdelibs is the kdelibs to compile against
> - all of trunk is supposed to compile at any time against that very
> kdelibs
> - Source and binary incompatible changes are only allowed on mondays
> (on every monday though) and porting efforts should be finished the
> same evening (that means every developer is allowed to start changing
> 8am her timezone and has to make sure trunk is compiling till 10pm his
> timezone (being around in #kde4-devel and awaiting people complaining
> might be enough).
> - Source incompatible changes shall be developed in an extra branch before
> they hit trunk. As trunk is supposed to compile at any time, you can branch
> off trunk and make your changes till your branch compiles again.
>
> Now I hope we can get kdepim and kdewebdev to compile before monday,
> otherwise this policy will be a bit complicated to enforce. And I hope
> everyone makes sure we make this a dynamic process, i.e. update the policy if
> it turns out it's imperfect.
>
> Greetings, Stephan
Here my consequence:
SVN commit 562605 by kuemmel:
Don't add a macro when a real C++ (template) solution possible.
Undo all pimpl changes. I'll also stop working on this because of
the new kdelibs-commit-policy, which is like freezing kdelibs.
Now I have to care about too much: branching, changing hole
trunk, waiting for Monday - this is annoying even if it helps
the application developers.
Time to leave with 'rm -rf *', hope I've not forgotten something to revert.
CCMAIL:kde-core-devel at kde.org
M +0 -1 TODO
M +0 -62 kdemacros.h.cmake
--- trunk/KDE/kdelibs/TODO #562604:562605
@@ -10,7 +10,6 @@
help prevent mistakes where developers forget to delete the pointer. Maybe
make use of
Qt4 helper macros?
(Frerich)
- Use KDE_PIMPL_EN(DIS)ABLE_COPY to avoid compiler generated copy functions
(Kümmel)
- Move all utility functions away from KApplication. TBD: Make KApplication
a very thin wrapper around QApplication. Ideally, KApplication should go
--- trunk/KDE/kdelibs/kdemacros.h.cmake #562604:562605
@@ -361,66 +361,4 @@
# define KDE_DUMMY_QHASH_FUNCTION(C)
#endif
-/**
- * @def KDE_PIMPL_ENABLE_COPY
- *
- * KDE_PIMPL_ENABLE_COPY is a macro for the
- * consistent Pimpl (Pointer to Implementation) usage.
- *
- * It ensures that the code shows explicit how
- * assignment and copying is handled.
- *
- * Using KDE_PIMPL_ENABLE_COPY one must also implement
- * the copy constructor and the assignment operator.
- *
- * Using KDE_PIMPL_DISABLE_COPY makes the class NOT copyable
- * by declaring the related functions as private.
- *
- * Example:
- *
- * \code
- * class KClass {
- * public:
- * KClass();
- * ~KClass();
- * private:
- * KDE_PIMPL_ENABLE_COPY(KClass);
- * };
- *
- * class KClass::KClassPrivate {
- * public:
- * int data;
- * };
- *
- * KClass::KClass() : d(new KClassPrivate) {}
- * KClass::~KClass() { delete d; }
- * KClass::KClass(const KClass& rhs) : d(new KClassPrivate) { operator=(rhs);}
- * KClass& KClass::operator=(const KClass& rhs) {
- * if(this!=&rhs)
- * d->data = rhs.d->data;
- * return *this;
- * }
- * \endcode
- *
- */
-
- /**
- * @def KDE_PIMPL_DISABLE_COPY
- *
- * see:
- * @sa KDE_PIMPL_ENABLE_COPY
- */
-
-#define KDE_PIMPL_BASE_MACRO(COPY_ACCESS,X) \
-COPY_ACCESS: \
- X(const X##&); \
- X##& operator=(const X##&); \
-private: \
- class X##Private; \
- X##Private * const d;
-
-#define KDE_PIMPL_ENABLE_COPY(X) KDE_PIMPL_BASE_MACRO(public, X)
-#define KDE_PIMPL_DISABLE_COPY(X) KDE_PIMPL_BASE_MACRO(private,X)
-
-
#endif /* _KDE_MACROS_H_ */
More information about the kde-core-devel
mailing list