You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(188) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(59) |
Feb
(13) |
Mar
(4) |
Apr
(1) |
May
(15) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: stephan b. <st...@s1...> - 2004-12-25 17:24:08
|
How about this idea: Dispatch DLL loads based on the extension of the actual file. Platforms which support more than one loader/binary format could use this to load different lib formats. Also, client code could subclasses SharedLib to provide DLL-like interfaces into non-DLL structures, like XML files or app-specific plugin interfaces. The implementation for this is trivial: SharedLibDispatcher : public PluginManager<SharedLib> { // this class inherits: // void registerFactory( const string & extension, // SharedLib * (*factory_func)() ); virtual SharedLib * create(const string &); // ^^^ overridden, assuming string is a file name, loads // the proper extension handler, and returns that handler ... // plus convenience funcs for finding DLLs via // path searching. }; One implication is that we would need to: a) change SharedLib to be default constructable (so we can instantiate it via a generic factory) and add API to be able to open the lib post-ctor. We should do this, anyway. or b) refactor the factory support ("refactorying") to somehow support passing args to ctors via factories. So far i don't have an idea for how to generically pass args to ctors via factories. or c) It wouldn't be hard to implement a custom factory interface which forces passing one argument to the ctor. In this case we would pass a string (the file name): class Factory<InterfaceT,[ContextT,?]KeyT,Arg1T> { void registerFactory( const KeyT & key, InterfaceT * (*fac_func) (Arg1T) ); InterfaceT * create( const KeyT & key, Arg1T arg ); ... }; ??? -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 16:59:56
|
We could use traits. template <typename SharedLibImplTag> HandleTraits { typedef unsigned long handle_type; } Inside SharedLib.ltdl.cpp we define the following: template <> HandleTraits<lt_handle_t> // or some internal marker type { typedef lt_handle_t handle_type; } And in SharedLib's impl we reference _handle via the traits type. The problem with that is that client code using SharedLib.ltdl only has access to HandleTraits's *default* implementation, because the specialization must live in hidden impl code. This means that clients won't be able to get at the handle in it's native form. This isn't a bad thing, but it means that the handle() function in SharedLib.ltdl would still need to return the default handle_type. That means that we're still basically stuck with not being able to pass the handle back to the client properly (currently requires 2 casts: one to void *, then one to ulong). Or we could put the traits types in public headers and #ifdef the proper specialization(s) in. One idea might be making a base class for SharedLib: AbstractSharedLib<HandleT> SharedLib : public AbstractSharedLib<ulong> SharedLibLtDl : public AbstractSharedLib<lt_handle_t> i don't know if this buys us any flexibility, though. ??? -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: Marc D. <bdu...@gm...> - 2004-12-25 16:47:42
|
Having Url in IO makes sense to me. Marc On Saturday 25 Dec 2004 17:19, stephan beal wrote: > Yo, > > Last night i realized that from a dependencies point of view, URL is not > really a Net class. It doesn't depend on any Net functionality, but > does depend on Unicode. URL doesn't really belong to Unicode, either, > though. IO and Net both currently use URL (zB, IOHandler::get(URL)), > but IO should not depend on Net (aber anders rum). > > So how about moving URL to IO? A URL does not represent an IO operation, > but does hold data for a potential IO operation. A URL is essentially a > pointer to an abstract data source, and data sources are used for IO. > > This change would eliminate one circular dep on Net and IO, and would > also allow the IOManager to not depend on Net (which it shouldn't have > to). If URL stays in Net then the whole IO and Net modules have a > circular dep, which complicates building them and will make code > maintenance more difficult at some point. > > Another option is we combine IO and Net into one module. Logically > speaking, IO/Net are quite similar, and will be used in similar > contexts. There IS a distinction between them, and 2 separate modules > is certainly justifiable, but i don't know if most people will realize > these subtle distinctions. > > ??? |
From: stephan b. <st...@s1...> - 2004-12-25 16:20:41
|
Yo, Last night i realized that from a dependencies point of view, URL is not really a Net class. It doesn't depend on any Net functionality, but does depend on Unicode. URL doesn't really belong to Unicode, either, though. IO and Net both currently use URL (zB, IOHandler::get(URL)), but IO should not depend on Net (aber anders rum). So how about moving URL to IO? A URL does not represent an IO operation, but does hold data for a potential IO operation. A URL is essentially a pointer to an abstract data source, and data sources are used for IO. This change would eliminate one circular dep on Net and IO, and would also allow the IOManager to not depend on Net (which it shouldn't have to). If URL stays in Net then the whole IO and Net modules have a circular dep, which complicates building them and will make code maintenance more difficult at some point. Another option is we combine IO and Net into one module. Logically speaking, IO/Net are quite similar, and will be used in similar contexts. There IS a distinction between them, and 2 separate modules is certainly justifiable, but i don't know if most people will realize these subtle distinctions. ??? -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 16:06:52
|
Yo, Christian! If you're busy on other code, i will be happy to port the IOManager. i believe it can be effectively implemented by subclassing PluginManager and adding convenience overloads for the string-taking functions: normal func: bool provides( const std::string & feature ); overload: bool provides( const URL & feature ) { return provides(feature.protocol()); } -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 15:46:39
|
Yo, s11n-devel! i thought i'd make an "official" announcement that s11n and pclasses.com are "officially" colaborating now. The past week we have been feverishly refactoring P1.x into P2.x, but we have no timeline for when this will be finished. Christian Prochnow, the P project lead, has been gracious enough to allow me a lot of leeway in the P2 refactoring, and we've been making some great progress. P2 is going to be even more amazing than P1 already is :). The plan isn't to integrate P support directly into s11n, because that would require a hard dependency on P. Neither will we integrate s11n directly into P (at least, that's not the current plan). Instead we will simply provide a middle-man API, ps11n, which is basically 's11nlite with P support'. i have started refactoring s11nlite, in the 1.1dev tree, to move most of it's interface into a class template, so that ps11n and s11nlite can share more core. s11nlite's interface won't change, but it's implementation will be a wrapper around the class client_interface<NodeType>. i'm pretty excited about the collaboration, as it marks several "firsts", both for me and for this project: - This is the first time i was contacted by another team about collaboration. - It broadens the potential user audience for s11n. - The projects are able to feed off of one another. For example, P2's factory/plugin layer was written from scratch to take elements from P1's and cllite's. Also, we developed a template-based way to allow clients to swap out the shared objects in the system, meaning that the core APIs can serve different behaviours to different clients if they want them to. We use this to transparently plug in the DLL support into the core API (which doesn't know about DLLs), for example. - i'm learning a lot (that's not a "first", but it's always a nice bonus). And - martin, this is especially for you, though i know you're out of town and won't see this for a while - Christian actually asked me to port their build tree from autotools to toc. :) At the moment AT and toc both work in the tree, proving that they can co-exist. i still need to port in a lot of obscure config tests, though. Unrelated: s11n 1.0 is frozen, and i will not be touching the tree any more, except possibly for updates to the documentation and example code. The tarball will be released on 1 Jan 2005, but note that i will see 1 Jan 2005 much earlier than most of you will, so you may actually see it on 31 Dec in your time zone. Merry Christmas! -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 15:12:43
|
On Saturday 25 December 2004 08:07, Christian Prochnow wrote: > It's OK for me to not close shared libraries upon destruction. > However, if we do so, we should cache and re-use sharedlib handles. > Simply not closing the handle is not an option. Sounds fair. i've kept a list of the SharedLibs so that we have their handles. See PluginManager::sharedLibs(). > I've added a SharedLibCache to dl, shl and win32 implementations. > Please have a look at it. Excellent :). It's funny that you added 'extension()' to SharedLib - i was going to add the same (but called platformExtension()) the first thing this morning. :) -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 14:55:25
|
On Saturday 25 December 2004 11:05, Marc Duerner wrote: > just checked out CVS freshly cleaned up the bugs and recommitted. I > assumed that was a rather safe thing to do. It's my fault: toc doesn't auto-generate a configure script - it uses a small stub file which calls configure.PACKAGE_NAME. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 14:54:09
|
On Saturday 25 December 2004 08:13, Christian Prochnow wrote: > For the ltdl impl to work we have to templatize the handle type in > the SharedLibCache class as well. Yes, that's a tricky problem - the handle is not void *. i once had a similar problem in some lex code which i was able solve via a couple templates. i'll see what i can come up with. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: Marc D. <bdu...@gm...> - 2004-12-25 10:04:50
|
> marc could you please check what you commit. configure is an autogenerated > script and should not be in CVS. If configure is autogenerated why is it in CVS in the first place? I just=20 checked out CVS freshly cleaned up the bugs and recommitted. I assumed that= =20 was a rather safe thing to do. > pclasses2.develop should'nt commited either. I didnt expect a .kdevelop file to be in CVS at all. Marc On Friday 24 Dec 2004 18:41, Christian Prochnow wrote: > It already happened ... > > marc could you please check what you commit. configure is an autogenerated > script and should not be in CVS. > pclasses2.develop should'nt commited either. > > stephan: could you rollback configure to the last version ? > i'll roll back pclasses2.kdevelop > > Am Freitag 24 Dezember 2004 18:15 schrieb Marc Duerner: > > Update of /cvsroot/pclasses/pclasses2 > > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7400 > > > > Modified Files: > > configure pclasses2.kdevelop > > Log Message: > > 3.4.4 fixes > > > > > > Index: pclasses2.kdevelop > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > RCS file: /cvsroot/pclasses/pclasses2/pclasses2.kdevelop,v > > retrieving revision 1.2 > > retrieving revision 1.3 > > diff -u -d -r1.2 -r1.3 > > --- pclasses2.kdevelop 23 Dec 2004 04:32:14 -0000 1.2 > > +++ pclasses2.kdevelop 24 Dec 2004 17:15:49 -0000 1.3 > > @@ -1,84 +1,24 @@ > > <?xml version =3D '1.0'?> > > <kdevelop> > > <general> > > - <author>Christian Prochnow</author> > > - <email>cp...@se...</email> > > + <author>pclasses</author> > > + <email>arklinux@localhost.localdomain</email> > > <version>$VERSION$</version> > > - <projectmanagement>KDevAutoProject</projectmanagement> > > + <projectmanagement>KDevCustomProject</projectmanagement> > > <primarylanguage>C++</primarylanguage> > > - <keywords> > > - <keyword>C++</keyword> > > - <keyword>Code</keyword> > > - </keywords> > > - <projectdirectory>.</projectdirectory> > > - <absoluteprojectpath>false</absoluteprojectpath> > > - <description/> > > - <ignoreparts> > > - <part>Unterst=C3=BCtzung f=C3=BCr ClearCase (KDevelop)</part> > > - <part>Unterst=C3=BCtzung f=C3=BCr Perforce (KDevelop)</part> > > - </ignoreparts> > > - <secondaryLanguages/> > > + <ignoreparts/> > > </general> > > - <kdevautoproject> > > - <general> > > - <activetarget>src/net/libpclasses_net.la</activetarget> > > - <useconfiguration>debug</useconfiguration> > > - </general> > > + <kdevcustomproject> > > <run> > > - <mainprogram>test/ThreadTest</mainprogram> > > - <terminal>true</terminal> > > + <mainprogram>pclasses2</mainprogram> > > <directoryradio>executable</directoryradio> > > - <runarguments> > > - <PtrTest/> > > - <QueueTest/> > > - <StackTest/> > > - <IntTypeTest/> > > - <ListTest/> > > - <ThreadTest/> > > - </runarguments> > > - <customdirectory>/</customdirectory> > > - <programargs/> > > - <autocompile>true</autocompile> > > - <envvars/> > > </run> > > - <configurations> > > - <optimized> > > - <builddir>optimized</builddir> > > - <ccompiler>kdevgccoptions</ccompiler> > > - <cxxcompiler>kdevgppoptions</cxxcompiler> > > - <f77compiler>kdevg77options</f77compiler> > > - <cxxflags>-O2 -g0</cxxflags> > > - </optimized> > > - <debug> > > - <configargs>--with-stl --enable-debug=3Dfull</configargs> > > - <builddir>debug</builddir> > > - <ccompiler>kdevgccoptions</ccompiler> > > - <cxxcompiler>kdevgppoptions</cxxcompiler> > > - <f77compiler>kdevg77options</f77compiler> > > - <cxxflags>-O0 -g3</cxxflags> > > - <envvars/> > > - <topsourcedir/> > > - <cppflags/> > > - <ldflags/> > > - <ccompilerbinary/> > > - <cxxcompilerbinary/> > > - <f77compilerbinary/> > > - <cflags/> > > - <f77flags/> > > - </debug> > > - </configurations> > > - <make> > > - <envvars> > > - <envvar value=3D"1" name=3D"WANT_AUTOCONF_2_5" /> > > - <envvar value=3D"1" name=3D"WANT_AUTOMAKE_1_6" /> > > - </envvars> > > - <abortonerror>true</abortonerror> > > - <numberofjobs>1</numberofjobs> > > - <dontact>false</dontact> > > - <makebin/> > > - <prio>0</prio> > > - </make> > > - </kdevautoproject> > > + </kdevcustomproject> > > + <kdevdebugger> > > + <general> > > + <dbgshell/> > > + </general> > > + </kdevdebugger> > > <kdevdoctreeview> > > <ignoretocs> > > <toc>ada</toc> > > @@ -86,7 +26,6 @@ > > <toc>bash</toc> > > <toc>bash_bugs</toc> > > <toc>clanlib</toc> > > - <toc>w3c-dom-level2-html</toc> > > <toc>fortran_bugs_gcc</toc> > > <toc>gnome1</toc> > > <toc>gnustep</toc> > > @@ -109,10 +48,11 @@ > > <toc>ruby</toc> > > <toc>ruby_bugs</toc> > > <toc>sdl</toc> > > - <toc>w3c-svg</toc> > > <toc>sw</toc> > > + <toc>w3c-dom-level2-html</toc> > > + <toc>w3c-svg</toc> > > <toc>w3c-uaag10</toc> > > - <toc>wxwindows_bugs</toc> > > + <toc>wxwidgets_bugs</toc> > > </ignoretocs> > > <ignoreqt_xml> > > <toc>Guide to the Qt Translation Tools</toc> > > @@ -124,39 +64,22 @@ > > <ignoredoxygen> > > <toc>KDE Libraries (Doxygen)</toc> > > </ignoredoxygen> > > - <projectdoc> > > - <userdocDir>html/</userdocDir> > > - <apidocDir>html/</apidocDir> > > - </projectdoc> > > - <ignorekdocs/> > > - <ignoredevhelp/> > > </kdevdoctreeview> > > <kdevfilecreate> > > <filetypes/> > > <useglobaltypes> > > + <type ext=3D"ui" /> > > <type ext=3D"cpp" /> > > <type ext=3D"h" /> > > </useglobaltypes> > > </kdevfilecreate> > > - <kdevfileview> > > - <groups> > > - <group pattern=3D"*.h" name=3D"Header files" /> > > - <group pattern=3D"*.cpp" name=3D"Source files" /> > > - <hidenonprojectfiles>false</hidenonprojectfiles> > > - <hidenonlocation>false</hidenonlocation> > > - </groups> > > - <tree> > > - <hidepatterns>*.o,*.lo,CVS</hidepatterns> > > - <hidenonprojectfiles>false</hidenonprojectfiles> > > - </tree> > > - </kdevfileview> > > <kdevcppsupport> > > <references/> > > <codecompletion> > > <includeGlobalFunctions>true</includeGlobalFunctions> > > <includeTypes>true</includeTypes> > > <includeEnums>true</includeEnums> > > - <includeTypedefs>true</includeTypedefs> > > + <includeTypedefs>false</includeTypedefs> > > <automaticCodeCompletion>true</automaticCodeCompletion> > > <automaticArgumentsHint>true</automaticArgumentsHint> > > <automaticHeaderCompletion>true</automaticHeaderCompletion> > > @@ -165,37 +88,6 @@ > > <headerCompletionDelay>250</headerCompletionDelay> > > </codecompletion> > > </kdevcppsupport> > > - <cppsupportpart> > > - <filetemplates> > > - <interfacesuffix>.h</interfacesuffix> > > - <implementationsuffix>.cpp</implementationsuffix> > > - </filetemplates> > > - </cppsupportpart> > > - <kdevdebugger> > > - <general> > > - <programargs/> > > - <gdbpath/> > > - <dbgshell>libtool</dbgshell> > > - <configGdbScript/> > > - <runShellScript/> > > - <runGdbScript/> > > - <breakonloadinglibs>true</breakonloadinglibs> > > - <separatetty>false</separatetty> > > - <floatingtoolbar>false</floatingtoolbar> > > - </general> > > - <display> > > - <staticmembers>false</staticmembers> > > - <demanglenames>true</demanglenames> > > - <outputradix>10</outputradix> > > - </display> > > - </kdevdebugger> > > - <kdevdocumentation> > > - <projectdoc> > > - <docsystem>Doxygen-Dokumentation</docsystem> > > - <docurl>doc/PClasses.tag</docurl> > > - <usermanualurl/> > > - </projectdoc> > > - </kdevdocumentation> > > <kdevcvsservice> > > <recursivewhenupdate>true</recursivewhenupdate> > > <prunedirswhenupdate>true</prunedirswhenupdate> > > @@ -203,4 +95,15 @@ > > <recursivewhencommitremove>true</recursivewhencommitremove> > > <revertoptions>-C</revertoptions> > > </kdevcvsservice> > > + <kdevfileview> > > + <groups> > > + <hidenonprojectfiles>false</hidenonprojectfiles> > > + <hidenonlocation>false</hidenonlocation> > > + </groups> > > + <tree> > > + <showvcsfields>false</showvcsfields> > > + <hidenonprojectfiles>false</hidenonprojectfiles> > > + <hidepatterns>*.o,*.lo,CVS</hidepatterns> > > + </tree> > > + </kdevfileview> > > </kdevelop> > > > > Index: configure > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > RCS file: /cvsroot/pclasses/pclasses2/configure,v > > retrieving revision 1.3 > > retrieving revision 1.4 > > diff -u -d -r1.3 -r1.4 > > --- configure 23 Dec 2004 00:06:16 -0000 1.3 > > +++ configure 24 Dec 2004 17:15:48 -0000 1.4 > > @@ -1,6 +1,27323 @@ > > -#!/bin/sh > > -# This is the toc-based configure script. If you use autotools they > > -# will overwrite this file, which is fine. > > -# CVS users: please do not commit an autotools-generated > > -# configure over this one! > > -exec ./configure.toc "$@" > > +#! /bin/sh > > +# Guess values for system-dependent variables and create Makefiles. > > +# Generated by GNU Autoconf 2.59. > > +# > > +# Copyright (C) 2003 Free Software Foundation, Inc. > > [...27298 lines suppressed...] > > + echo '#ifndef '$ac_prefix_conf_DEF >$ac_prefix_conf_OUT > > + echo '#define '$ac_prefix_conf_DEF' 1' >>$ac_prefix_conf_OUT > > + echo ' ' >>$ac_prefix_conf_OUT > > + echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of > > configure. '*'/ >>$ac_prefix_conf_OUT + > > + echo 's/#undef */#undef '$ac_prefix_conf_PRE'_/' >conftest.sed > > + echo 's/#define *\([A-Za-z0-9_]*\)\(.*\)/#ifndef > > '$ac_prefix_conf_PRE"_\\1 \\" >>conftest.sed + echo '#define > > '$ac_prefix_conf_PRE"_\\1 \\2 \\" >>conftest.sed + echo '#endif/' > > > > >>conftest.sed > > > > + sed -f conftest.sed $ac_prefix_conf_INP >>$ac_prefix_conf_OUT > > + echo ' ' >>$ac_prefix_conf_OUT > > + echo '/*' $ac_prefix_conf_DEF '*/' >>$ac_prefix_conf_OUT > > + echo '#endif' >>$ac_prefix_conf_OUT > > + else > > + { { echo "$as_me:$LINENO: error: input file $ac_prefix_conf_IN does > > not exist, skip generating $ac_prefix_conf_OUT" >&5 +echo "$as_me: > > error: input file $ac_prefix_conf_IN does not exist, skip generating > > $ac_prefix_conf_OUT" >&2;} + { (exit 1); exit 1; }; } > > + fi > > + rm -f conftest.* > > +fi > > > > > > > > ------------------------------------------------------- > > SF email is sponsored by - The IT Product Guide > > Read honest & candid reviews on hundreds of IT Products from real users. > > Discover which products truly live up to the hype. Start reading now. > > http://productguide.itmanagersjournal.com/ > > _______________________________________________ > > pclasses-cvs mailing list > > pcl...@li... > > https://lists.sourceforge.net/lists/listinfo/pclasses-cvs > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > pclasses-devel mailing list > pcl...@li... > https://lists.sourceforge.net/lists/listinfo/pclasses-devel |
From: Marc D. <bdu...@gm...> - 2004-12-25 09:32:25
|
Well, there was a cut'n'paste error, you were just slightly faster to commit ;). My modem connection is awfully slow too. Marc On Friday 24 Dec 2004 18:38, Christian Prochnow wrote: > Hi ! > > The Patch on AtomicTraits.h changes nothing .. it was already fixed in CVS. > > Am Freitag 24 Dezember 2004 18:15 schrieb Marc Duerner: > > Update of /cvsroot/pclasses/pclasses2/include/pclasses > > In directory > > sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7400/include/pclasses > > > > Modified Files: > > AtomicTraits.h IntTypes.h > > Log Message: > > 3.4.4 fixes > > > > > > Index: AtomicTraits.h > > =================================================================== > > RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/AtomicTraits.h,v > > retrieving revision 1.1.1.1 > > retrieving revision 1.2 > > diff -u -d -r1.1.1.1 -r1.2 > > --- AtomicTraits.h 22 Dec 2004 17:54:39 -0000 1.1.1.1 > > +++ AtomicTraits.h 24 Dec 2004 17:15:50 -0000 1.2 > > @@ -41,10 +41,10 @@ > > atomic->value = val; > > } > > > > - static Type get(const AtomicType* val) throw() > > + static Type get(const AtomicType* atomic) throw() > > { > > System::CriticalSection::ScopedLock lck(atomic->lock); > > - return val->value; > > + return atomic->value; > > } > > > > static void inc(AtomicType* val) throw() > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > pclasses-devel mailing list > pcl...@li... > https://lists.sourceforge.net/lists/listinfo/pclasses-devel |
From: Christian P. <cp...@se...> - 2004-12-25 07:13:00
|
Am Samstag 25 Dezember 2004 08:07 schrieb Christian Prochnow: > Am Freitag 24 Dezember 2004 23:59 schrieb stephan beal: > > No, i didn't do this on purpose: while testing the plugins layer i found > > a very simple case where dlclose() causes a problem: > > > > i just tried out the libdl impl of SharedLib on an arbitrary test. At > > shutdown i delete the SharedLib objects, which causes dlcose() to be > > called in the dtor: > > > > #0 0x4001272b in strlen () from /lib/ld-linux.so.2 > > #1 0x4000ce20 in _dl_signal_error () from /lib/ld-linux.so.2 > > #2 0x40331947 in _dl_close () from /lib/tls/libc.so.6 > > #3 0x40370d1a in dlclose_doit () from /lib/libdl.so.2 > > #4 0x4000cd56 in _dl_catch_error () from /lib/ld-linux.so.2 > > #5 0x40371085 in _dlerror_run () from /lib/libdl.so.2 > > #6 0x40370cf0 in dlclose () from /lib/libdl.so.2 > > #7 0x400398eb in ~SharedLib (this=0x8053c60) at SharedLib.dl.cpp:77 > > #8 0x0804c9d8 in ~PluginCleaner (this=0x8051ec4) at Plugin.h:43 > > #9 0x0804ea7c in ~PluginManager (this=0x8051ec0) at Plugin.h:106 > > #10 0x0804d8cf in ~Phoenix (this=0x8051ec0) at Phoenix.h:196 > > #11 0x0804bce5 in __tcf_1 () at Phoenix.h:161 > > #12 0x40271820 in exit () from /lib/tls/libc.so.6 > > #13 0x4025cb1a in __libc_start_main () from /lib/tls/libc.so.6 > > #14 0x0804a1f1 in _start () at start.S:119 > > > > The libltdl-based SharedLib does not do a dlcose, and does not exhibit > > this behaviour. Also, taking out the dlclose() causes the segfault to > > go away. > > > > If i put the dlclose() back in, i get segfaults again. > > It's OK for me to not close shared libraries upon destruction. However, if > we do so, we should cache and re-use sharedlib handles. Simply not closing > the handle is not an option. > > I've added a SharedLibCache to dl, shl and win32 implementations. Please > have a look at it. For the ltdl impl to work we have to templatize the handle type in the SharedLibCache class as well. > > Quasi-related: > > > > In the SharedLib ctors i have REMOVED the part which automatically adds > > ".so". It took me 1/2 hour to figure out why SharedLib kept throwing > > when i passed it a valid file name, and that was why. This convention > > doesn't belong in SharedLib, because it is possible to use shared libs > > with any extension. e.g., in one project i worked on we compiled > > mini-libs into *.gcom. The plugin layer can put these extensions on > > them - and will if they are needed - there is no reason to do this in > > SharedLib ctor. > > Agreed. > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > pclasses-devel mailing list > pcl...@li... > https://lists.sourceforge.net/lists/listinfo/pclasses-devel |
From: Christian P. <cp...@se...> - 2004-12-25 07:06:52
|
Am Freitag 24 Dezember 2004 23:59 schrieb stephan beal: > No, i didn't do this on purpose: while testing the plugins layer i found > a very simple case where dlclose() causes a problem: > > i just tried out the libdl impl of SharedLib on an arbitrary test. At > shutdown i delete the SharedLib objects, which causes dlcose() to be > called in the dtor: > > #0 0x4001272b in strlen () from /lib/ld-linux.so.2 > #1 0x4000ce20 in _dl_signal_error () from /lib/ld-linux.so.2 > #2 0x40331947 in _dl_close () from /lib/tls/libc.so.6 > #3 0x40370d1a in dlclose_doit () from /lib/libdl.so.2 > #4 0x4000cd56 in _dl_catch_error () from /lib/ld-linux.so.2 > #5 0x40371085 in _dlerror_run () from /lib/libdl.so.2 > #6 0x40370cf0 in dlclose () from /lib/libdl.so.2 > #7 0x400398eb in ~SharedLib (this=0x8053c60) at SharedLib.dl.cpp:77 > #8 0x0804c9d8 in ~PluginCleaner (this=0x8051ec4) at Plugin.h:43 > #9 0x0804ea7c in ~PluginManager (this=0x8051ec0) at Plugin.h:106 > #10 0x0804d8cf in ~Phoenix (this=0x8051ec0) at Phoenix.h:196 > #11 0x0804bce5 in __tcf_1 () at Phoenix.h:161 > #12 0x40271820 in exit () from /lib/tls/libc.so.6 > #13 0x4025cb1a in __libc_start_main () from /lib/tls/libc.so.6 > #14 0x0804a1f1 in _start () at start.S:119 > > The libltdl-based SharedLib does not do a dlcose, and does not exhibit > this behaviour. Also, taking out the dlclose() causes the segfault to > go away. > > If i put the dlclose() back in, i get segfaults again. It's OK for me to not close shared libraries upon destruction. However, if we do so, we should cache and re-use sharedlib handles. Simply not closing the handle is not an option. I've added a SharedLibCache to dl, shl and win32 implementations. Please have a look at it. > Quasi-related: > > In the SharedLib ctors i have REMOVED the part which automatically adds > ".so". It took me 1/2 hour to figure out why SharedLib kept throwing > when i passed it a valid file name, and that was why. This convention > doesn't belong in SharedLib, because it is possible to use shared libs > with any extension. e.g., in one project i worked on we compiled > mini-libs into *.gcom. The plugin layer can put these extensions on > them - and will if they are needed - there is no reason to do this in > SharedLib ctor. Agreed. |
From: stephan b. <st...@s1...> - 2004-12-25 03:04:12
|
Returning to Marc's comments about s11n support on IRC today (yesterday?): How big of a role would you like s11n to play in the P distribution? We have at least these options: a) i can integrate P::s11n directly into P's tree. This requires a dependency on libs11n. Since s11n will be 1.0.0 in a few days, stability shouldn't be too much of a concern. However, s11n isn't yet ported to Windows, and i don't know how difficult it would be to port it (it uses very, very little Unix-only code, but porting build process would be a lot of work). b) Add optional support for s11n directly into the P tree, so the dep on s11n is optional. i think this will turn into a huge #ifdef problem, though, and probably cause dev problems for developers not using the s11n support. c) Provide no s11n-related support in the main P distribution, and i can provide P::s11n as an add-on. IMO this is the most practical, cleanest approach, with the least pain for the developers. We can keep P::s11n either in the s11n CVS tree or the P CVS tree, whichever you prefer. ??? Right now i'm more focused on seeing P2 reach a usable state than i am in extending the current P::s11n code (it works with P1, CVS version - but only with the hacked copy on my box). Once the IOManager is working and has at least one supported protocol i can really start with the P2::s11n support. i've already started some minor architectural changes in s11n 1.1-dev to make the P::s11n implementation easier to do. To be clear, s11n can be used in lots of P contexts other than IO/Net, like App or Pref serialization, but it is the IO/Net options which are ultimately the most interesting. Why? Because we can already serialize objects, but we can't yet do it over the net. i really want to see the network channels working :). The prototype code works, and so i know P can do this, but P2 isn't yet in a state to support it. Soon... soon... -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 01:59:42
|
On Saturday 25 December 2004 02:53, stephan beal wrote: > MyType * m = P::Factory<MyType>::create( "MyType" ); Sorry, that's a lie. It should read: MyType * m = P::Factory<MyType>::instance().create( "MyType" ); This works for any factory types: mime, IO, etc. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-25 01:54:30
|
Yo! Forget all that code i showed you earlier regarding plugins. i mean, it still works, but it just got a lot easier: MyType * m = P::Factory<MyType>::create( "MyType" ); If MyType isn't registered that will look for a DLL named MyType.(so| dll). If that is found, it is opened and we check again for a factory. TODO: implement a way to hook in arbitrary classname-to-dll-name translations. The cool part is: the core doesn't know it's doing this. i used a FactoryInstanceHook<> partial specialization in Plugin.h. The hook simply returns a DLL-aware Factory instance (A PluginManager, which is a Factory subclass). Any client which includes Plugin.h automatically gets DLL-aware factory lookups through the core API. If they don't include Plugin.h, they don't get this feature. It is experimental, but this hook approach appears to work how i wanted it to. It's a tiny bit clumsy to implement, but not too bad. :) Demo of an app which doesn't know it's using DLL lookups: ./FactoryTest <snip> ../include/pclasses/Plugin/Plugin.h:325 : Initializing a PluginManager instance() we hacked in via FactoryInstanceHook! FactoryTest.cpp:19 : Factory tests... FactoryTest.cpp:67 : DefaultDocumentType NamedTypeFactory::create()ed? == 0 FactoryTest.cpp:67 : DefaultDocumentType classload()ed? == 0 /// DLL load was triggered by call to create("CType") here: CType.cpp:28 : CType_bogo_init() FactoryTest.h:27 : AType() FactoryTest.h:50 : BType() CType.cpp:9 : CType() FactoryTest.cpp:68 : CType NamedTypeFactory::create(CType)ed? == 0x8058c98 -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-24 23:34:05
|
File: test/FactoryTest.cpp Loads an interface type (TheBase) from FactoryTest.h. The interface is implemented in 3 types defined in CType.cpp, which we compile to CType.so. We open CType.so: typedef P::Plugin::PluginManager<TheBase> PM; PM & pm = PM::instance(); ::P::System::SharedLib * sh = pm.addPlugin( "CType" ); // ^^^ throws on error The try-to-find-a-DLL-when-class-not-found behaviour should be transparently hidden behind the PM interface, but it is not yet. That's on my TODO list. test/CType.cpp demonstrates classloader registration and the customize-registration-via-static-init technique. If you're using the toc tree the test will build as-is, if not you'll need to add the appropriate code to Makefile.am. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-24 23:00:53
|
No, i didn't do this on purpose: while testing the plugins layer i found a very simple case where dlclose() causes a problem: i just tried out the libdl impl of SharedLib on an arbitrary test. At shutdown i delete the SharedLib objects, which causes dlcose() to be called in the dtor: #0 0x4001272b in strlen () from /lib/ld-linux.so.2 #1 0x4000ce20 in _dl_signal_error () from /lib/ld-linux.so.2 #2 0x40331947 in _dl_close () from /lib/tls/libc.so.6 #3 0x40370d1a in dlclose_doit () from /lib/libdl.so.2 #4 0x4000cd56 in _dl_catch_error () from /lib/ld-linux.so.2 #5 0x40371085 in _dlerror_run () from /lib/libdl.so.2 #6 0x40370cf0 in dlclose () from /lib/libdl.so.2 #7 0x400398eb in ~SharedLib (this=0x8053c60) at SharedLib.dl.cpp:77 #8 0x0804c9d8 in ~PluginCleaner (this=0x8051ec4) at Plugin.h:43 #9 0x0804ea7c in ~PluginManager (this=0x8051ec0) at Plugin.h:106 #10 0x0804d8cf in ~Phoenix (this=0x8051ec0) at Phoenix.h:196 #11 0x0804bce5 in __tcf_1 () at Phoenix.h:161 #12 0x40271820 in exit () from /lib/tls/libc.so.6 #13 0x4025cb1a in __libc_start_main () from /lib/tls/libc.so.6 #14 0x0804a1f1 in _start () at start.S:119 The libltdl-based SharedLib does not do a dlcose, and does not exhibit this behaviour. Also, taking out the dlclose() causes the segfault to go away. If i put the dlclose() back in, i get segfaults again. Quasi-related: In the SharedLib ctors i have REMOVED the part which automatically adds ".so". It took me 1/2 hour to figure out why SharedLib kept throwing when i passed it a valid file name, and that was why. This convention doesn't belong in SharedLib, because it is possible to use shared libs with any extension. e.g., in one project i worked on we compiled mini-libs into *.gcom. The plugin layer can put these extensions on them - and will if they are needed - there is no reason to do this in SharedLib ctor. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-24 21:16:21
|
Yo! If possible we need to eliminate these, as they will complicate the build process as the dependencies get more complex. i've got most of the libs linking properly, so we'll soon have a fully building toc tree. :) -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-24 19:24:26
|
On Friday 24 December 2004 18:41, Christian Prochnow wrote: > marc could you please check what you commit. configure is an > autogenerated script and should not be in CVS. Jein - the toc version of configure is not auto-generated. It will be really easy to accidentally commit an AT version over it. No big deal, though. You guys still need AT, so don't worry about this detail - if the configure is hammered i'll replace it. > pclasses2.develop should'nt commited either. i think each user should have his own, because we might set different build flags. > stephan: could you rollback configure to the last version ? > i'll roll back pclasses2.kdevelop It seems it was already done - i already tried to roll it back. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: stephan b. <st...@s1...> - 2004-12-24 19:21:42
|
Yo! include/pclasses/Plugin/Plugin.h Deps: Phoenix, Factory, SharedLib, PathFinder, Directory @Christian: look at the implementation and i think you'll see why i like PathFinder so much. :) i changed the Factory interface a bit to make it consistent with the P1.x plugin interface: instantiate() ==> create() isRegistered() ==> provides() And renamed a couple typedefs (don't remember which ones). The PluginManager interface is essentially the same as in P1, but it has been reimplemented from scratch on top of the new Factory. It now has a searchPath() member, which can be be used to query or modify the plugins search path. Additionally, clients no longer need to add ".so" or ".dll" when adding a plugin. Sample usage: typedef PluginManager<MyType> PM; PM & pm = PM::instance(); try { pm.addPluginDir( ... ); pm.addPluginDir( ... ); //^^^^ "." and PREFIX/{lib,lib/pclasses} are // already added by default SharedLib * sh = pm.addPlugin( "psql_mysql" ); // ^^^ might throw SystemError ... do something with sh if you like ... ... sh is owned by pm, not by us ... if( ! pm.provides( "mysql" ) ) { // error: i expected mysql to be registered by // opening psql_mysql.so... } } catch( const RuntimeError & re ) { CERR << re.where() <<"\n\t"<<re.what()<<"\n"; // ^^^^ where() was comitted to CVS earlier today. } The returned (SharedLib *) is owned by PM. Clients don't need to watch this return value - it is mainly for informational purposes, but they may also hold on to it if they like. Clients may also call sharedLibs() to get at the list of (SharedLib *) opened by PM. The list is cleaned up, and each SharedLib deleted, post-main(). Aside from the xxxPlugin() and searchPath() functions, PM is just a normal Factory subtype. i'm not 100% sure yet, but i think the idea of the type-specific plugin manager subclasses is now obsoleted. i believe the following can replace them: typedef PluginManager<SQLDriver> SQLDriverPluginFactory; It may still be useful to subclass them, but at the moment i can't see a reason to (except one which is too complex to contemplate at the moment). An interesting thing about this above typedef is that it uses the same factory database as: Factory<SQLDriver,string,P::Sharing::FactoryContext> which means that the plugin layer can inherently load any types which have been registered with that base Factory. Conversely, once a PluginManager loads a DLL containing class registrations, those factories become available via the base factory, without the base knowing they come from a DLL. By changing the 3rd template arg (ContextType) we can narrow or widen the focus of the factory sharing for a given T. For example, we could tell 2 Factory<T> types to use different factory databases with: typedef Factory<T,string,X> F1; typedef Factory<T,string,Y> F2; This allows us to install, e.g., 2 different factories for the same T: F1::instance().registerFactory( "T", func_creating_t ); F2::instance().registerFactory( "T", func_creating_special_t ); The 2 factories may be used for different contexts (as defined by the ContextType argument). Anyway... still lots of experimentation to do, but there's the first try. One idea i'm playing with, but not sure if it is worth keeping, are namespace-scope convenience functions: P::Plugin::addPluginDir<SQLDriver>( "..." ); SharedLib * = P::Plugin::addPlugin<SQLDriver>( "..." ); -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |
From: Christian P. <cp...@se...> - 2004-12-24 17:50:04
|
Both commits are now reverted. Am Freitag 24 Dezember 2004 18:41 schrieb Christian Prochnow: > It already happened ... > > marc could you please check what you commit. configure is an autogenerated > script and should not be in CVS. > pclasses2.develop should'nt commited either. > > stephan: could you rollback configure to the last version ? > i'll roll back pclasses2.kdevelop > > Am Freitag 24 Dezember 2004 18:15 schrieb Marc Duerner: > > Update of /cvsroot/pclasses/pclasses2 > > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7400 > > > > Modified Files: > > configure pclasses2.kdevelop > > Log Message: > > 3.4.4 fixes > > > > > > Index: pclasses2.kdevelop > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > RCS file: /cvsroot/pclasses/pclasses2/pclasses2.kdevelop,v > > retrieving revision 1.2 > > retrieving revision 1.3 > > diff -u -d -r1.2 -r1.3 > > --- pclasses2.kdevelop 23 Dec 2004 04:32:14 -0000 1.2 > > +++ pclasses2.kdevelop 24 Dec 2004 17:15:49 -0000 1.3 > > @@ -1,84 +1,24 @@ > > <?xml version =3D '1.0'?> > > <kdevelop> > > <general> > > - <author>Christian Prochnow</author> > > - <email>cp...@se...</email> > > + <author>pclasses</author> > > + <email>arklinux@localhost.localdomain</email> > > <version>$VERSION$</version> > > - <projectmanagement>KDevAutoProject</projectmanagement> > > + <projectmanagement>KDevCustomProject</projectmanagement> > > <primarylanguage>C++</primarylanguage> > > - <keywords> > > - <keyword>C++</keyword> > > - <keyword>Code</keyword> > > - </keywords> > > - <projectdirectory>.</projectdirectory> > > - <absoluteprojectpath>false</absoluteprojectpath> > > - <description/> > > - <ignoreparts> > > - <part>Unterst=C3=BCtzung f=C3=BCr ClearCase (KDevelop)</part> > > - <part>Unterst=C3=BCtzung f=C3=BCr Perforce (KDevelop)</part> > > - </ignoreparts> > > - <secondaryLanguages/> > > + <ignoreparts/> > > </general> > > - <kdevautoproject> > > - <general> > > - <activetarget>src/net/libpclasses_net.la</activetarget> > > - <useconfiguration>debug</useconfiguration> > > - </general> > > + <kdevcustomproject> > > <run> > > - <mainprogram>test/ThreadTest</mainprogram> > > - <terminal>true</terminal> > > + <mainprogram>pclasses2</mainprogram> > > <directoryradio>executable</directoryradio> > > - <runarguments> > > - <PtrTest/> > > - <QueueTest/> > > - <StackTest/> > > - <IntTypeTest/> > > - <ListTest/> > > - <ThreadTest/> > > - </runarguments> > > - <customdirectory>/</customdirectory> > > - <programargs/> > > - <autocompile>true</autocompile> > > - <envvars/> > > </run> > > - <configurations> > > - <optimized> > > - <builddir>optimized</builddir> > > - <ccompiler>kdevgccoptions</ccompiler> > > - <cxxcompiler>kdevgppoptions</cxxcompiler> > > - <f77compiler>kdevg77options</f77compiler> > > - <cxxflags>-O2 -g0</cxxflags> > > - </optimized> > > - <debug> > > - <configargs>--with-stl --enable-debug=3Dfull</configargs> > > - <builddir>debug</builddir> > > - <ccompiler>kdevgccoptions</ccompiler> > > - <cxxcompiler>kdevgppoptions</cxxcompiler> > > - <f77compiler>kdevg77options</f77compiler> > > - <cxxflags>-O0 -g3</cxxflags> > > - <envvars/> > > - <topsourcedir/> > > - <cppflags/> > > - <ldflags/> > > - <ccompilerbinary/> > > - <cxxcompilerbinary/> > > - <f77compilerbinary/> > > - <cflags/> > > - <f77flags/> > > - </debug> > > - </configurations> > > - <make> > > - <envvars> > > - <envvar value=3D"1" name=3D"WANT_AUTOCONF_2_5" /> > > - <envvar value=3D"1" name=3D"WANT_AUTOMAKE_1_6" /> > > - </envvars> > > - <abortonerror>true</abortonerror> > > - <numberofjobs>1</numberofjobs> > > - <dontact>false</dontact> > > - <makebin/> > > - <prio>0</prio> > > - </make> > > - </kdevautoproject> > > + </kdevcustomproject> > > + <kdevdebugger> > > + <general> > > + <dbgshell/> > > + </general> > > + </kdevdebugger> > > <kdevdoctreeview> > > <ignoretocs> > > <toc>ada</toc> > > @@ -86,7 +26,6 @@ > > <toc>bash</toc> > > <toc>bash_bugs</toc> > > <toc>clanlib</toc> > > - <toc>w3c-dom-level2-html</toc> > > <toc>fortran_bugs_gcc</toc> > > <toc>gnome1</toc> > > <toc>gnustep</toc> > > @@ -109,10 +48,11 @@ > > <toc>ruby</toc> > > <toc>ruby_bugs</toc> > > <toc>sdl</toc> > > - <toc>w3c-svg</toc> > > <toc>sw</toc> > > + <toc>w3c-dom-level2-html</toc> > > + <toc>w3c-svg</toc> > > <toc>w3c-uaag10</toc> > > - <toc>wxwindows_bugs</toc> > > + <toc>wxwidgets_bugs</toc> > > </ignoretocs> > > <ignoreqt_xml> > > <toc>Guide to the Qt Translation Tools</toc> > > @@ -124,39 +64,22 @@ > > <ignoredoxygen> > > <toc>KDE Libraries (Doxygen)</toc> > > </ignoredoxygen> > > - <projectdoc> > > - <userdocDir>html/</userdocDir> > > - <apidocDir>html/</apidocDir> > > - </projectdoc> > > - <ignorekdocs/> > > - <ignoredevhelp/> > > </kdevdoctreeview> > > <kdevfilecreate> > > <filetypes/> > > <useglobaltypes> > > + <type ext=3D"ui" /> > > <type ext=3D"cpp" /> > > <type ext=3D"h" /> > > </useglobaltypes> > > </kdevfilecreate> > > - <kdevfileview> > > - <groups> > > - <group pattern=3D"*.h" name=3D"Header files" /> > > - <group pattern=3D"*.cpp" name=3D"Source files" /> > > - <hidenonprojectfiles>false</hidenonprojectfiles> > > - <hidenonlocation>false</hidenonlocation> > > - </groups> > > - <tree> > > - <hidepatterns>*.o,*.lo,CVS</hidepatterns> > > - <hidenonprojectfiles>false</hidenonprojectfiles> > > - </tree> > > - </kdevfileview> > > <kdevcppsupport> > > <references/> > > <codecompletion> > > <includeGlobalFunctions>true</includeGlobalFunctions> > > <includeTypes>true</includeTypes> > > <includeEnums>true</includeEnums> > > - <includeTypedefs>true</includeTypedefs> > > + <includeTypedefs>false</includeTypedefs> > > <automaticCodeCompletion>true</automaticCodeCompletion> > > <automaticArgumentsHint>true</automaticArgumentsHint> > > <automaticHeaderCompletion>true</automaticHeaderCompletion> > > @@ -165,37 +88,6 @@ > > <headerCompletionDelay>250</headerCompletionDelay> > > </codecompletion> > > </kdevcppsupport> > > - <cppsupportpart> > > - <filetemplates> > > - <interfacesuffix>.h</interfacesuffix> > > - <implementationsuffix>.cpp</implementationsuffix> > > - </filetemplates> > > - </cppsupportpart> > > - <kdevdebugger> > > - <general> > > - <programargs/> > > - <gdbpath/> > > - <dbgshell>libtool</dbgshell> > > - <configGdbScript/> > > - <runShellScript/> > > - <runGdbScript/> > > - <breakonloadinglibs>true</breakonloadinglibs> > > - <separatetty>false</separatetty> > > - <floatingtoolbar>false</floatingtoolbar> > > - </general> > > - <display> > > - <staticmembers>false</staticmembers> > > - <demanglenames>true</demanglenames> > > - <outputradix>10</outputradix> > > - </display> > > - </kdevdebugger> > > - <kdevdocumentation> > > - <projectdoc> > > - <docsystem>Doxygen-Dokumentation</docsystem> > > - <docurl>doc/PClasses.tag</docurl> > > - <usermanualurl/> > > - </projectdoc> > > - </kdevdocumentation> > > <kdevcvsservice> > > <recursivewhenupdate>true</recursivewhenupdate> > > <prunedirswhenupdate>true</prunedirswhenupdate> > > @@ -203,4 +95,15 @@ > > <recursivewhencommitremove>true</recursivewhencommitremove> > > <revertoptions>-C</revertoptions> > > </kdevcvsservice> > > + <kdevfileview> > > + <groups> > > + <hidenonprojectfiles>false</hidenonprojectfiles> > > + <hidenonlocation>false</hidenonlocation> > > + </groups> > > + <tree> > > + <showvcsfields>false</showvcsfields> > > + <hidenonprojectfiles>false</hidenonprojectfiles> > > + <hidepatterns>*.o,*.lo,CVS</hidepatterns> > > + </tree> > > + </kdevfileview> > > </kdevelop> > > > > Index: configure > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > RCS file: /cvsroot/pclasses/pclasses2/configure,v > > retrieving revision 1.3 > > retrieving revision 1.4 > > diff -u -d -r1.3 -r1.4 > > --- configure 23 Dec 2004 00:06:16 -0000 1.3 > > +++ configure 24 Dec 2004 17:15:48 -0000 1.4 > > @@ -1,6 +1,27323 @@ > > -#!/bin/sh > > -# This is the toc-based configure script. If you use autotools they > > -# will overwrite this file, which is fine. > > -# CVS users: please do not commit an autotools-generated > > -# configure over this one! > > -exec ./configure.toc "$@" > > +#! /bin/sh > > +# Guess values for system-dependent variables and create Makefiles. > > +# Generated by GNU Autoconf 2.59. > > +# > > +# Copyright (C) 2003 Free Software Foundation, Inc. > > [...27298 lines suppressed...] > > + echo '#ifndef '$ac_prefix_conf_DEF >$ac_prefix_conf_OUT > > + echo '#define '$ac_prefix_conf_DEF' 1' >>$ac_prefix_conf_OUT > > + echo ' ' >>$ac_prefix_conf_OUT > > + echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of > > configure. '*'/ >>$ac_prefix_conf_OUT + > > + echo 's/#undef */#undef '$ac_prefix_conf_PRE'_/' >conftest.sed > > + echo 's/#define *\([A-Za-z0-9_]*\)\(.*\)/#ifndef > > '$ac_prefix_conf_PRE"_\\1 \\" >>conftest.sed + echo '#define > > '$ac_prefix_conf_PRE"_\\1 \\2 \\" >>conftest.sed + echo '#endif/' > > > > >>conftest.sed > > > > + sed -f conftest.sed $ac_prefix_conf_INP >>$ac_prefix_conf_OUT > > + echo ' ' >>$ac_prefix_conf_OUT > > + echo '/*' $ac_prefix_conf_DEF '*/' >>$ac_prefix_conf_OUT > > + echo '#endif' >>$ac_prefix_conf_OUT > > + else > > + { { echo "$as_me:$LINENO: error: input file $ac_prefix_conf_IN does > > not exist, skip generating $ac_prefix_conf_OUT" >&5 +echo "$as_me: > > error: input file $ac_prefix_conf_IN does not exist, skip generating > > $ac_prefix_conf_OUT" >&2;} + { (exit 1); exit 1; }; } > > + fi > > + rm -f conftest.* > > +fi > > > > > > > > ------------------------------------------------------- > > SF email is sponsored by - The IT Product Guide > > Read honest & candid reviews on hundreds of IT Products from real users. > > Discover which products truly live up to the hype. Start reading now. > > http://productguide.itmanagersjournal.com/ > > _______________________________________________ > > pclasses-cvs mailing list > > pcl...@li... > > https://lists.sourceforge.net/lists/listinfo/pclasses-cvs > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > pclasses-devel mailing list > pcl...@li... > https://lists.sourceforge.net/lists/listinfo/pclasses-devel |
From: Christian P. <cp...@se...> - 2004-12-24 17:41:15
|
It already happened ... marc could you please check what you commit. configure is an autogenerated= =20 script and should not be in CVS.=20 pclasses2.develop should'nt commited either. stephan: could you rollback configure to the last version ? i'll roll back pclasses2.kdevelop Am Freitag 24 Dezember 2004 18:15 schrieb Marc Duerner: > Update of /cvsroot/pclasses/pclasses2 > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7400 > > Modified Files: > configure pclasses2.kdevelop > Log Message: > 3.4.4 fixes > > > Index: pclasses2.kdevelop > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/pclasses/pclasses2/pclasses2.kdevelop,v > retrieving revision 1.2 > retrieving revision 1.3 > diff -u -d -r1.2 -r1.3 > --- pclasses2.kdevelop 23 Dec 2004 04:32:14 -0000 1.2 > +++ pclasses2.kdevelop 24 Dec 2004 17:15:49 -0000 1.3 > @@ -1,84 +1,24 @@ > <?xml version =3D '1.0'?> > <kdevelop> > <general> > - <author>Christian Prochnow</author> > - <email>cp...@se...</email> > + <author>pclasses</author> > + <email>arklinux@localhost.localdomain</email> > <version>$VERSION$</version> > - <projectmanagement>KDevAutoProject</projectmanagement> > + <projectmanagement>KDevCustomProject</projectmanagement> > <primarylanguage>C++</primarylanguage> > - <keywords> > - <keyword>C++</keyword> > - <keyword>Code</keyword> > - </keywords> > - <projectdirectory>.</projectdirectory> > - <absoluteprojectpath>false</absoluteprojectpath> > - <description/> > - <ignoreparts> > - <part>Unterst=C3=BCtzung f=C3=BCr ClearCase (KDevelop)</part> > - <part>Unterst=C3=BCtzung f=C3=BCr Perforce (KDevelop)</part> > - </ignoreparts> > - <secondaryLanguages/> > + <ignoreparts/> > </general> > - <kdevautoproject> > - <general> > - <activetarget>src/net/libpclasses_net.la</activetarget> > - <useconfiguration>debug</useconfiguration> > - </general> > + <kdevcustomproject> > <run> > - <mainprogram>test/ThreadTest</mainprogram> > - <terminal>true</terminal> > + <mainprogram>pclasses2</mainprogram> > <directoryradio>executable</directoryradio> > - <runarguments> > - <PtrTest/> > - <QueueTest/> > - <StackTest/> > - <IntTypeTest/> > - <ListTest/> > - <ThreadTest/> > - </runarguments> > - <customdirectory>/</customdirectory> > - <programargs/> > - <autocompile>true</autocompile> > - <envvars/> > </run> > - <configurations> > - <optimized> > - <builddir>optimized</builddir> > - <ccompiler>kdevgccoptions</ccompiler> > - <cxxcompiler>kdevgppoptions</cxxcompiler> > - <f77compiler>kdevg77options</f77compiler> > - <cxxflags>-O2 -g0</cxxflags> > - </optimized> > - <debug> > - <configargs>--with-stl --enable-debug=3Dfull</configargs> > - <builddir>debug</builddir> > - <ccompiler>kdevgccoptions</ccompiler> > - <cxxcompiler>kdevgppoptions</cxxcompiler> > - <f77compiler>kdevg77options</f77compiler> > - <cxxflags>-O0 -g3</cxxflags> > - <envvars/> > - <topsourcedir/> > - <cppflags/> > - <ldflags/> > - <ccompilerbinary/> > - <cxxcompilerbinary/> > - <f77compilerbinary/> > - <cflags/> > - <f77flags/> > - </debug> > - </configurations> > - <make> > - <envvars> > - <envvar value=3D"1" name=3D"WANT_AUTOCONF_2_5" /> > - <envvar value=3D"1" name=3D"WANT_AUTOMAKE_1_6" /> > - </envvars> > - <abortonerror>true</abortonerror> > - <numberofjobs>1</numberofjobs> > - <dontact>false</dontact> > - <makebin/> > - <prio>0</prio> > - </make> > - </kdevautoproject> > + </kdevcustomproject> > + <kdevdebugger> > + <general> > + <dbgshell/> > + </general> > + </kdevdebugger> > <kdevdoctreeview> > <ignoretocs> > <toc>ada</toc> > @@ -86,7 +26,6 @@ > <toc>bash</toc> > <toc>bash_bugs</toc> > <toc>clanlib</toc> > - <toc>w3c-dom-level2-html</toc> > <toc>fortran_bugs_gcc</toc> > <toc>gnome1</toc> > <toc>gnustep</toc> > @@ -109,10 +48,11 @@ > <toc>ruby</toc> > <toc>ruby_bugs</toc> > <toc>sdl</toc> > - <toc>w3c-svg</toc> > <toc>sw</toc> > + <toc>w3c-dom-level2-html</toc> > + <toc>w3c-svg</toc> > <toc>w3c-uaag10</toc> > - <toc>wxwindows_bugs</toc> > + <toc>wxwidgets_bugs</toc> > </ignoretocs> > <ignoreqt_xml> > <toc>Guide to the Qt Translation Tools</toc> > @@ -124,39 +64,22 @@ > <ignoredoxygen> > <toc>KDE Libraries (Doxygen)</toc> > </ignoredoxygen> > - <projectdoc> > - <userdocDir>html/</userdocDir> > - <apidocDir>html/</apidocDir> > - </projectdoc> > - <ignorekdocs/> > - <ignoredevhelp/> > </kdevdoctreeview> > <kdevfilecreate> > <filetypes/> > <useglobaltypes> > + <type ext=3D"ui" /> > <type ext=3D"cpp" /> > <type ext=3D"h" /> > </useglobaltypes> > </kdevfilecreate> > - <kdevfileview> > - <groups> > - <group pattern=3D"*.h" name=3D"Header files" /> > - <group pattern=3D"*.cpp" name=3D"Source files" /> > - <hidenonprojectfiles>false</hidenonprojectfiles> > - <hidenonlocation>false</hidenonlocation> > - </groups> > - <tree> > - <hidepatterns>*.o,*.lo,CVS</hidepatterns> > - <hidenonprojectfiles>false</hidenonprojectfiles> > - </tree> > - </kdevfileview> > <kdevcppsupport> > <references/> > <codecompletion> > <includeGlobalFunctions>true</includeGlobalFunctions> > <includeTypes>true</includeTypes> > <includeEnums>true</includeEnums> > - <includeTypedefs>true</includeTypedefs> > + <includeTypedefs>false</includeTypedefs> > <automaticCodeCompletion>true</automaticCodeCompletion> > <automaticArgumentsHint>true</automaticArgumentsHint> > <automaticHeaderCompletion>true</automaticHeaderCompletion> > @@ -165,37 +88,6 @@ > <headerCompletionDelay>250</headerCompletionDelay> > </codecompletion> > </kdevcppsupport> > - <cppsupportpart> > - <filetemplates> > - <interfacesuffix>.h</interfacesuffix> > - <implementationsuffix>.cpp</implementationsuffix> > - </filetemplates> > - </cppsupportpart> > - <kdevdebugger> > - <general> > - <programargs/> > - <gdbpath/> > - <dbgshell>libtool</dbgshell> > - <configGdbScript/> > - <runShellScript/> > - <runGdbScript/> > - <breakonloadinglibs>true</breakonloadinglibs> > - <separatetty>false</separatetty> > - <floatingtoolbar>false</floatingtoolbar> > - </general> > - <display> > - <staticmembers>false</staticmembers> > - <demanglenames>true</demanglenames> > - <outputradix>10</outputradix> > - </display> > - </kdevdebugger> > - <kdevdocumentation> > - <projectdoc> > - <docsystem>Doxygen-Dokumentation</docsystem> > - <docurl>doc/PClasses.tag</docurl> > - <usermanualurl/> > - </projectdoc> > - </kdevdocumentation> > <kdevcvsservice> > <recursivewhenupdate>true</recursivewhenupdate> > <prunedirswhenupdate>true</prunedirswhenupdate> > @@ -203,4 +95,15 @@ > <recursivewhencommitremove>true</recursivewhencommitremove> > <revertoptions>-C</revertoptions> > </kdevcvsservice> > + <kdevfileview> > + <groups> > + <hidenonprojectfiles>false</hidenonprojectfiles> > + <hidenonlocation>false</hidenonlocation> > + </groups> > + <tree> > + <showvcsfields>false</showvcsfields> > + <hidenonprojectfiles>false</hidenonprojectfiles> > + <hidepatterns>*.o,*.lo,CVS</hidepatterns> > + </tree> > + </kdevfileview> > </kdevelop> > > Index: configure > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/pclasses/pclasses2/configure,v > retrieving revision 1.3 > retrieving revision 1.4 > diff -u -d -r1.3 -r1.4 > --- configure 23 Dec 2004 00:06:16 -0000 1.3 > +++ configure 24 Dec 2004 17:15:48 -0000 1.4 > @@ -1,6 +1,27323 @@ > -#!/bin/sh > -# This is the toc-based configure script. If you use autotools they > -# will overwrite this file, which is fine. > -# CVS users: please do not commit an autotools-generated > -# configure over this one! > -exec ./configure.toc "$@" > +#! /bin/sh > +# Guess values for system-dependent variables and create Makefiles. > +# Generated by GNU Autoconf 2.59. > +# > +# Copyright (C) 2003 Free Software Foundation, Inc. > [...27298 lines suppressed...] > + echo '#ifndef '$ac_prefix_conf_DEF >$ac_prefix_conf_OUT > + echo '#define '$ac_prefix_conf_DEF' 1' >>$ac_prefix_conf_OUT > + echo ' ' >>$ac_prefix_conf_OUT > + echo /'*' $ac_prefix_conf_OUT. Generated automatically at end of > configure. '*'/ >>$ac_prefix_conf_OUT + > + echo 's/#undef */#undef '$ac_prefix_conf_PRE'_/' >conftest.sed > + echo 's/#define *\([A-Za-z0-9_]*\)\(.*\)/#ifndef > '$ac_prefix_conf_PRE"_\\1 \\" >>conftest.sed + echo '#define > '$ac_prefix_conf_PRE"_\\1 \\2 \\" >>conftest.sed + echo '#endif/' > >>conftest.sed > + sed -f conftest.sed $ac_prefix_conf_INP >>$ac_prefix_conf_OUT > + echo ' ' >>$ac_prefix_conf_OUT > + echo '/*' $ac_prefix_conf_DEF '*/' >>$ac_prefix_conf_OUT > + echo '#endif' >>$ac_prefix_conf_OUT > + else > + { { echo "$as_me:$LINENO: error: input file $ac_prefix_conf_IN does > not exist, skip generating $ac_prefix_conf_OUT" >&5 +echo "$as_me: > error: input file $ac_prefix_conf_IN does not exist, skip generating > $ac_prefix_conf_OUT" >&2;} + { (exit 1); exit 1; }; } > + fi > + rm -f conftest.* > +fi > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://productguide.itmanagersjournal.com/ > _______________________________________________ > pclasses-cvs mailing list > pcl...@li... > https://lists.sourceforge.net/lists/listinfo/pclasses-cvs |
From: Christian P. <cp...@se...> - 2004-12-24 17:38:26
|
Hi ! The Patch on AtomicTraits.h changes nothing .. it was already fixed in CVS. Am Freitag 24 Dezember 2004 18:15 schrieb Marc Duerner: > Update of /cvsroot/pclasses/pclasses2/include/pclasses > In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7400/include/pclasses > > Modified Files: > AtomicTraits.h IntTypes.h > Log Message: > 3.4.4 fixes > > > Index: AtomicTraits.h > =================================================================== > RCS file: /cvsroot/pclasses/pclasses2/include/pclasses/AtomicTraits.h,v > retrieving revision 1.1.1.1 > retrieving revision 1.2 > diff -u -d -r1.1.1.1 -r1.2 > --- AtomicTraits.h 22 Dec 2004 17:54:39 -0000 1.1.1.1 > +++ AtomicTraits.h 24 Dec 2004 17:15:50 -0000 1.2 > @@ -41,10 +41,10 @@ > atomic->value = val; > } > > - static Type get(const AtomicType* val) throw() > + static Type get(const AtomicType* atomic) throw() > { > System::CriticalSection::ScopedLock lck(atomic->lock); > - return val->value; > + return atomic->value; > } > > static void inc(AtomicType* val) throw() > |
From: stephan b. <st...@s1...> - 2004-12-24 15:16:57
|
On Friday 24 December 2004 15:16, Christian Prochnow wrote: > Great work! :) Several changes just commited. > but... we should move MimeType and MimeTypeDb to a different module, > since it is on a higher level than the System abstraction classes. > How about IO/ or Util/ or even Net/ ? i put it in System because that was the "path of least dependencies." Also, the mime db IS a system-level service. We can move it wherever you like, however. > I would like to see a MimeMagic (detection of the Mimetype by reading > the contents of the file) feature added to MimeType/MimeTypeDb. i was thinking about how to do that last night, actually. i don't yet have a plan, but i will keep it in mind. -- ----- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |