From: <baz...@us...> - 2008-02-22 21:23:46
|
Revision: 8062 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8062&view=rev Author: bazaarmagetron Date: 2008-02-22 13:23:50 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Repaired enum test: enum creation and destruction is now non-breaking. Modified Paths: -------------- clio/trunk/clio/enum.hpp clio/trunk/clio/factory.hpp Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info + timestamp: 2008-02-22 21:28:21.690000057 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio rebase-of: z-...@us...-20080222202821-9zo7j8wua9rjprg8 Name: bzr:file-ids + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj Modified: clio/trunk/clio/enum.hpp =================================================================== --- clio/trunk/clio/enum.hpp 2008-02-22 20:27:29 UTC (rev 8061) +++ clio/trunk/clio/enum.hpp 2008-02-22 21:23:50 UTC (rev 8062) @@ -70,6 +70,9 @@ info.template CreateCopyConstructor< E > ( BoolToType< true >() ); info.CreateDestructor ( BoolToType< true >() ); + // enums are harmless to create and destroy + info.GetFactory().NonBreaking(); + // register helper functions CLIO_METHOD_IMPORT( EnumWrapper<CLASS>::GetName_ ).NonBreaking(); CLIO_METHOD_IMPORT( EnumWrapper<CLASS>::GetStatic_ ).NonBreaking(); @@ -109,7 +112,7 @@ #define CLIO_ENUM( NAME ) CLIO_ENUM_EX( NAME, "" ) // macro to add enum values. -#define CLIO_ENUM_VALUE_EX( VALUE, NAME ) CLIO_METHOD_IMPORT_EX( EnumWrapper< CLASS >::ReturnValue<VALUE>,, NAME ).NonBreaking(); EnumWrapper< CLASS >::RegisterValue( VALUE, NAME ) +#define CLIO_ENUM_VALUE_EX( VALUE, NAME ) CLIO_METHOD_IMPORT_EX( EnumWrapper< CLASS >::ReturnValue<VALUE>,, NAME ).NonBreaking().TransferOwnership(); EnumWrapper< CLASS >::RegisterValue( VALUE, NAME ) #define CLIO_ENUM_VALUE( VALUE ) CLIO_ENUM_VALUE_EX( VALUE, clio::GetFunctionName( #VALUE, "" ).c_str() ) #endif Modified: clio/trunk/clio/factory.hpp =================================================================== --- clio/trunk/clio/factory.hpp 2008-02-22 20:27:29 UTC (rev 8061) +++ clio/trunk/clio/factory.hpp 2008-02-22 21:23:50 UTC (rev 8062) @@ -22,8 +22,24 @@ class IFactory { public: + IFactory() + : breaking_( true ){} + virtual ~IFactory(){} + void NonBreaking() + { + breaking_ = false; + } + + void Break() const + { + if ( breaking_ ) + { + ObjectWrapper::BreakAll(); + } + } + // create an object virtual void * Create( ObjectWrapper * wrapper ) const = 0; @@ -38,6 +54,9 @@ // see if destruction is possible virtual bool CanDestroy() const CLIO_NOTHROW = 0; + +private: + bool breaking_; // does creating/destroying objects of this class break references? }; // factory delegating the core work to three separate factories @@ -61,8 +80,8 @@ { if ( !create_ ) throw Exception("Creation of C++ object not available"); - - ObjectWrapper::BreakAll(); + + this->Break(); return (*create_)( wrapper ); } @@ -78,7 +97,7 @@ if ( !clone_ ) throw Exception("Cloning of C++ object not available"); - ObjectWrapper::BreakAll(); + this->Break(); return (*clone_)( wrapper, original ); } @@ -92,7 +111,7 @@ return; } - ObjectWrapper::BreakAll(); + this->Break(); return (*destroy_)( object ); } @@ -154,7 +173,7 @@ // create an object virtual T * Create( ObjectWrapper * wrapper ) const { - ObjectWrapper::BreakAll(); + Break(); // if you get an error here, this means you need to declare T an abstract class using // the CLIO_CLASS_ABSTRACT macro. @@ -167,7 +186,7 @@ // copy an object virtual T * Clone( ObjectWrapper * wrapper, T const & original ) const { - ObjectWrapper::BreakAll(); + Break(); // if you get an error here, this means you need to declare T an abstract class using // the CLIO_CLASS_ABSTRACT macro. @@ -177,7 +196,8 @@ // destroy an object virtual void Destroy( T * object ) const { - ObjectWrapper::BreakAll(); + Break(); + delete object; } @@ -194,8 +214,6 @@ // create an object static void * Create( ObjectWrapper * wrapper ) { - ObjectWrapper::BreakAll(); - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv DERIVED * o = new DERIVED; // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv @@ -221,8 +239,6 @@ // copy an object static void * Clone( ObjectWrapper * wrapper, void const * original ) { - ObjectWrapper::BreakAll(); - T const * t = static_cast< T const * >( original ); // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv @@ -251,8 +267,6 @@ // destroy an object static void Destroy( void * object ) { - ObjectWrapper::BreakAll(); - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv T * t = static_cast< T *>( object ); // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 21:24:05
|
Revision: 8063 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8063&view=rev Author: bazaarmagetron Date: 2008-02-22 13:24:09 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Added ignore files. Added Paths: ----------- clio/trunk/clio/.bzrignore Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-22 21:28:21.690000057 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio rebase-of: z-...@us...-20080222202821-9zo7j8wua9rjprg8 + timestamp: 2008-02-22 21:29:57.319000006 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio rebase-of: z-...@us...-20080222202957-p0yr5yfhjvwjghr9 Name: bzr:file-ids - + .bzrignore bzrignore-20080222202855-2m1hhkpyrbi0v267-1 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e Added: clio/trunk/clio/.bzrignore =================================================================== --- clio/trunk/clio/.bzrignore (rev 0) +++ clio/trunk/clio/.bzrignore 2008-02-22 21:24:09 UTC (rev 8063) @@ -0,0 +1,7 @@ +tests/*.result +tests/*/test +tests/lastchanged +tests/*.failed +tests/output.txt +tests/output_raw.txt + \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 21:27:47
|
Revision: 8064 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8064&view=rev Author: bazaarmagetron Date: 2008-02-22 13:27:53 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Moved to automake. Tests currently don't work. Modified Paths: -------------- clio/trunk/clio/.bzrignore Added Paths: ----------- clio/trunk/clio/AUTHORS clio/trunk/clio/Makefile.am clio/trunk/clio/NEWS clio/trunk/clio/README clio/trunk/clio/bootstrap.sh clio/trunk/clio/configure.ac clio/trunk/clio/src/ clio/trunk/clio/src/Makefile.am clio/trunk/clio/src/argument_lists.hpp clio/trunk/clio/src/argument_lists_undef.hpp clio/trunk/clio/src/argumentquality.hpp clio/trunk/clio/src/autoarray.cpp clio/trunk/clio/src/autoarray.hpp clio/trunk/clio/src/autoinstantiation.cpp clio/trunk/clio/src/autoinstantiation.hpp clio/trunk/clio/src/classinfo.cpp clio/trunk/clio/src/classinfo.hpp clio/trunk/clio/src/classname.cpp clio/trunk/clio/src/classname.hpp clio/trunk/clio/src/classregistrator.cpp clio/trunk/clio/src/classregistrator.hpp clio/trunk/clio/src/classregistratorset.cpp clio/trunk/clio/src/classregistratorset.hpp clio/trunk/clio/src/classstateinfo.cpp clio/trunk/clio/src/classstateinfo.hpp clio/trunk/clio/src/clio_config.hpp clio/trunk/clio/src/codeinjection.cpp clio/trunk/clio/src/codeinjection.hpp clio/trunk/clio/src/dataconversion.cpp clio/trunk/clio/src/dataconversion.hpp clio/trunk/clio/src/dataconversion_extended.cpp clio/trunk/clio/src/dataconversion_extended.hpp clio/trunk/clio/src/enum.cpp clio/trunk/clio/src/enum.hpp clio/trunk/clio/src/error.cpp clio/trunk/clio/src/error.hpp clio/trunk/clio/src/factory.cpp clio/trunk/clio/src/factory.hpp clio/trunk/clio/src/forcesemicolon.hpp clio/trunk/clio/src/function.hpp clio/trunk/clio/src/function_single.hpp clio/trunk/clio/src/functioninfo.cpp clio/trunk/clio/src/functioninfo.hpp clio/trunk/clio/src/functioninfo_nadic.hpp clio/trunk/clio/src/functioninfo_single.hpp clio/trunk/clio/src/functiontype_base.hpp clio/trunk/clio/src/gcmarker.cpp clio/trunk/clio/src/gcmarker.hpp clio/trunk/clio/src/gcpointer.cpp clio/trunk/clio/src/gcpointer.hpp clio/trunk/clio/src/helptest.hpp clio/trunk/clio/src/icaster.cpp clio/trunk/clio/src/icaster.hpp clio/trunk/clio/src/ichained.cpp clio/trunk/clio/src/ichained.hpp clio/trunk/clio/src/iclassinfo.cpp clio/trunk/clio/src/iclassinfo.hpp clio/trunk/clio/src/ifunctioninfo.cpp clio/trunk/clio/src/ifunctioninfo.hpp clio/trunk/clio/src/includeloop.hpp clio/trunk/clio/src/linkedlist.cpp clio/trunk/clio/src/linkedlist.hpp clio/trunk/clio/src/macrorecursion.hpp clio/trunk/clio/src/macros.cpp clio/trunk/clio/src/macros.hpp clio/trunk/clio/src/namemangling.cpp clio/trunk/clio/src/namemangling.hpp clio/trunk/clio/src/namespace.cpp clio/trunk/clio/src/namespace.hpp clio/trunk/clio/src/nocopy.cpp clio/trunk/clio/src/nocopy.hpp clio/trunk/clio/src/objectwrapper.cpp clio/trunk/clio/src/objectwrapper.hpp clio/trunk/clio/src/objectwrapperaware.cpp clio/trunk/clio/src/objectwrapperaware.hpp clio/trunk/clio/src/property.cpp clio/trunk/clio/src/property.hpp clio/trunk/clio/src/proxy.cpp clio/trunk/clio/src/proxy.hpp clio/trunk/clio/src/security.cpp clio/trunk/clio/src/security.hpp clio/trunk/clio/src/state.cpp clio/trunk/clio/src/state.hpp clio/trunk/clio/src/stateregistrator.cpp clio/trunk/clio/src/stateregistrator.hpp clio/trunk/clio/src/std_container.cpp clio/trunk/clio/src/std_container.hpp clio/trunk/clio/src/templatearglist.hpp clio/trunk/clio/src/totype.hpp clio/trunk/clio/src/typelist.hpp clio/trunk/clio/src/typetraits.cpp clio/trunk/clio/src/typetraits.hpp clio/trunk/clio/src/virtual.hpp clio/trunk/clio/src/virtual_base.hpp clio/trunk/clio/src/virtual_helper.cpp clio/trunk/clio/src/virtual_helper.hpp clio/trunk/clio/src/virtual_nadic.hpp clio/trunk/clio/src/virtual_single.hpp clio/trunk/clio/tests/Makefile.am clio/trunk/clio/tests/MakefileManual Removed Paths: ------------- clio/trunk/clio/Makefile clio/trunk/clio/argument_lists.hpp clio/trunk/clio/argument_lists_undef.hpp clio/trunk/clio/argumentquality.hpp clio/trunk/clio/autoarray.cpp clio/trunk/clio/autoarray.hpp clio/trunk/clio/autoinstantiation.cpp clio/trunk/clio/autoinstantiation.hpp clio/trunk/clio/classinfo.cpp clio/trunk/clio/classinfo.hpp clio/trunk/clio/classname.cpp clio/trunk/clio/classname.hpp clio/trunk/clio/classregistrator.cpp clio/trunk/clio/classregistrator.hpp clio/trunk/clio/classregistratorset.cpp clio/trunk/clio/classregistratorset.hpp clio/trunk/clio/classstateinfo.cpp clio/trunk/clio/classstateinfo.hpp clio/trunk/clio/clio_config.hpp clio/trunk/clio/codeinjection.cpp clio/trunk/clio/codeinjection.hpp clio/trunk/clio/dataconversion.cpp clio/trunk/clio/dataconversion.hpp clio/trunk/clio/dataconversion_extended.cpp clio/trunk/clio/dataconversion_extended.hpp clio/trunk/clio/enum.cpp clio/trunk/clio/enum.hpp clio/trunk/clio/error.cpp clio/trunk/clio/error.hpp clio/trunk/clio/factory.cpp clio/trunk/clio/factory.hpp clio/trunk/clio/forcesemicolon.hpp clio/trunk/clio/function.hpp clio/trunk/clio/function_single.hpp clio/trunk/clio/functioninfo.cpp clio/trunk/clio/functioninfo.hpp clio/trunk/clio/functioninfo_nadic.hpp clio/trunk/clio/functioninfo_single.hpp clio/trunk/clio/functiontype_base.hpp clio/trunk/clio/gcmarker.cpp clio/trunk/clio/gcmarker.hpp clio/trunk/clio/gcpointer.cpp clio/trunk/clio/gcpointer.hpp clio/trunk/clio/helptest.hpp clio/trunk/clio/icaster.cpp clio/trunk/clio/icaster.hpp clio/trunk/clio/ichained.cpp clio/trunk/clio/ichained.hpp clio/trunk/clio/iclassinfo.cpp clio/trunk/clio/iclassinfo.hpp clio/trunk/clio/ifunctioninfo.cpp clio/trunk/clio/ifunctioninfo.hpp clio/trunk/clio/includeloop.hpp clio/trunk/clio/linkedlist.cpp clio/trunk/clio/linkedlist.hpp clio/trunk/clio/macrorecursion.hpp clio/trunk/clio/macros.cpp clio/trunk/clio/macros.hpp clio/trunk/clio/namemangling.cpp clio/trunk/clio/namemangling.hpp clio/trunk/clio/namespace.cpp clio/trunk/clio/namespace.hpp clio/trunk/clio/nocopy.cpp clio/trunk/clio/nocopy.hpp clio/trunk/clio/objectwrapper.cpp clio/trunk/clio/objectwrapper.hpp clio/trunk/clio/objectwrapperaware.cpp clio/trunk/clio/objectwrapperaware.hpp clio/trunk/clio/property.cpp clio/trunk/clio/property.hpp clio/trunk/clio/proxy.cpp clio/trunk/clio/proxy.hpp clio/trunk/clio/security.cpp clio/trunk/clio/security.hpp clio/trunk/clio/state.cpp clio/trunk/clio/state.hpp clio/trunk/clio/stateregistrator.cpp clio/trunk/clio/stateregistrator.hpp clio/trunk/clio/std_container.cpp clio/trunk/clio/std_container.hpp clio/trunk/clio/templatearglist.hpp clio/trunk/clio/tests/Makefile clio/trunk/clio/totype.hpp clio/trunk/clio/typelist.hpp clio/trunk/clio/typetraits.cpp clio/trunk/clio/typetraits.hpp clio/trunk/clio/virtual.hpp clio/trunk/clio/virtual_base.hpp clio/trunk/clio/virtual_helper.cpp clio/trunk/clio/virtual_helper.hpp clio/trunk/clio/virtual_nadic.hpp clio/trunk/clio/virtual_single.hpp Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-22 21:29:57.319000006 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio rebase-of: z-...@us...-20080222202957-p0yr5yfhjvwjghr9 + timestamp: 2008-02-22 22:18:06.773000002 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: refactor Name: bzr:file-ids - .bzrignore bzrignore-20080222202855-2m1hhkpyrbi0v267-1 + bootstrap.sh bootstrap.sh-20080222211625-ywl4x5mamxyyugek-4 configure.ac configure.ac-20080222211625-ywl4x5mamxyyugek-6 Makefile.am makefile.am-20080222211625-ywl4x5mamxyyugek-5 AUTHORS authors-20080222211625-ywl4x5mamxyyugek-1 README readme-20080222211625-ywl4x5mamxyyugek-2 NEWS news-20080222211625-ywl4x5mamxyyugek-3 src src-20080222203757-y1e5vpr93avq2ya5-1 src/nocopy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.cpp src/error.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.cpp src/macrorecursion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macrorecursion.hpp src/linkedlist.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.cpp src/factory.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.cpp src/stateregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.hpp src/objectwrapperaware.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.cpp src/nocopy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.hpp src/typetraits.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.hpp src/virtual_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_base.hpp src/functioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.hpp src/namemangling.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.cpp src/namespace.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.cpp src/argument_lists.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists.hpp src/ichained.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.hpp src/function_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function_single.hpp src/classstateinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.cpp src/includeloop.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:includeloop.hpp src/typelist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typelist.hpp src/iclassinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.hpp src/std_container.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.cpp src/iclassinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.cpp src/functioninfo_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_single.hpp src/property.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.hpp src/virtual_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_nadic.hpp src/autoarray.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.hpp src/functiontype_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functiontype_base.hpp src/classinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.cpp src/proxy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.hpp src/dataconversion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.hpp src/virtual_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_single.hpp src/clio_config.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:clio_config.hpp src/classname.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.cpp src/gcmarker.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.cpp src/proxy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.cpp src/std_container.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.hpp src/security.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.hpp src/dataconversion.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.cpp src/icaster.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.cpp src/ichained.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.cpp src/autoinstantiation.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.hpp src/classregistratorset.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.hpp src/functioninfo_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_nadic.hpp src/codeinjection.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.cpp src/namemangling.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.hpp src/codeinjection.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.hpp src/ifunctioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.cpp src/linkedlist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.hpp src/security.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.cpp src/icaster.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.hpp src/classstateinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.hpp src/classregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.hpp src/typetraits.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.cpp src/function.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function.hpp src/factory.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.hpp src/classregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.cpp src/macros.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.cpp src/virtual.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual.hpp src/property.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.cpp src/state.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.cpp src/objectwrapperaware.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.hpp src/ifunctioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.hpp src/functioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.cpp src/stateregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.cpp src/objectwrapper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.cpp src/classinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.hpp src/templatearglist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:templatearglist.hpp src/state.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.hpp src/macros.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.hpp src/virtual_helper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.hpp src/classname.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.hpp src/forcesemicolon.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:forcesemicolon.hpp src/autoarray.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.cpp src/gcpointer.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.cpp src/argument_lists_undef.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists_undef.hpp src/virtual_helper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.cpp src/error.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.hpp src/namespace.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.hpp src/Makefile.am makefile.am-20080222211634-7re12gmo7ct68f04-1 src/gcmarker.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.hpp src/totype.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:totype.hpp src/objectwrapper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.hpp src/enum.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.hpp src/enum.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.cpp src/autoinstantiation.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.cpp src/dataconversion_extended.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.hpp src/helptest.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:helptest.hpp src/dataconversion_extended.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.cpp src/classregistratorset.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.cpp src/gcpointer.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.hpp src/argumentquality.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argumentquality.hpp tests/MakefileManual 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2FMakefile tests/Makefile.am makefile.am-20080222211641-wybkjc03x3690bp1-1 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j Modified: clio/trunk/clio/.bzrignore =================================================================== --- clio/trunk/clio/.bzrignore 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/.bzrignore 2008-02-22 21:27:53 UTC (rev 8064) @@ -4,4 +4,16 @@ tests/*.failed tests/output.txt tests/output_raw.txt - \ No newline at end of file +./COPYING +./ChangeLog +./INSTALL +Makefile.in +./aclocal.m4 +./autom4te.cache +./clio_config.h.in +./configure +./depcomp +./install-sh +./missing + + \ No newline at end of file Added: clio/trunk/clio/AUTHORS =================================================================== --- clio/trunk/clio/AUTHORS (rev 0) +++ clio/trunk/clio/AUTHORS 2008-02-22 21:27:53 UTC (rev 8064) @@ -0,0 +1,5 @@ +Manuel Moos <z-...@us...> + +With help from: +Daniel Harple +The Io developers Deleted: clio/trunk/clio/Makefile =================================================================== --- clio/trunk/clio/Makefile 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/Makefile 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,36 +0,0 @@ -IOINCLUDE=/usr/local/include/io -#IOINCLUDE=/home/moos/usr/include/io -#CXX = g++-4.1.1 -#CXX = gcc-40-g++ -CXX = g++ -CXXFLAGS = -Wall -pedantic -g -I${IOINCLUDE} -#CXXFLAGS = -Os -I${IOINCLUDE} -Wall -pedantic -finline-limit=3000000 -DNDEBUG - -CFILES:=$(wildcard *.cpp) -OBJFILES:=$(CFILES:.cpp=.o) -DEPFILES:=$(CFILES:.cpp=.dep.o) -LIBFILES:=$(OBJFILES) - -%.dep.o: %.cpp - @touch $@ - rm -f $*.o - -%.o: %.cpp Makefile - @rm -f $*.dep.o - ${CXX} $(CXXFLAGS) -o $*.o -c $< - @${CXX} $(CXXFLAGS) $< -MM > $*.dep.o - -libclio.a: ${LIBFILES} ${DEPFILES} - ar cru $@ ${LIBFILES} - ranlib $@ - -clean: - rm -f *.a *.o test - make -C tests subclean - -beautify: - astyle -s *.hpp - astyle -s *.cpp - -sinclude ${DEPFILES} - Added: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am (rev 0) +++ clio/trunk/clio/Makefile.am 2008-02-22 21:27:53 UTC (rev 8064) @@ -0,0 +1,2 @@ +SUBDIRS = src tests + Added: clio/trunk/clio/NEWS =================================================================== Added: clio/trunk/clio/README =================================================================== Deleted: clio/trunk/clio/argument_lists.hpp =================================================================== --- clio/trunk/clio/argument_lists.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/argument_lists.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,40 +0,0 @@ -/* Header that generates macros for various argument lists with numerated types. When including this, - CLIO_MACRORECURSION should be set to to the CLIO_MACRORECURSION<N> macro from macrorecursion.hpp - that corresponds to the numeber of arguments you want to have in the list. - - Since this header does not depend on anything, you should include it outside of any namespace scope - relative at the beginning of your files. - Also, note that there is no include guard. This header is supposed to be included multiple times. - - This header is not for manual inclusion by the user. -*/ - -// construct the various lists of types and argument names of the N function arguments -// The arguments are numerated from last to first, because the TypeList can only -// be constructed that way. - -// this gives the list of template arguments, for example ", class T3, class T2, class T1" -#define CLIO_TYPELIST_ARG_HEAD(N) , class T##N -#define CLIO_TYPELIST_ARG_TAIL(N) -#define CLIO_TYPELIST_ARG_START(N) , class T1 -#define CLIO_TYPELIST_ARG CLIO_MACRORECURSION(CLIO_TYPELIST_ARG_HEAD,CLIO_TYPELIST_ARG_TAIL,CLIO_TYPELIST_ARG_START,CLIO_ZERO) - -// this gives the typelist representing the template arguments, for example "TypeList<T3, TypeList<T2>, TypeList<T3> > >" -#define CLIO_TYPELIST_HEAD(N) clio::TypeList<T##N, -#define CLIO_TYPELIST_TAIL(N) > -#define CLIO_TYPELIST_START(N) TypeList<T1> -#define CLIO_TYPELIST_ZERO(N) TypeListEmpty -#define CLIO_TYPELIST_FIXED CLIO_MACRORECURSION(CLIO_TYPELIST_HEAD,CLIO_TYPELIST_TAIL,CLIO_TYPELIST_START,CLIO_TYPELIST_ZERO) - -// this defines the arguments a function is declared with, for example "T3 a3, T2 a2, T1 a2" -#define CLIO_TYPELIST_FUNCARG_HEAD(N) T##N a##N, -#define CLIO_TYPELIST_FUNCARG_TAIL(N) -#define CLIO_TYPELIST_FUNCARG_START(N) T1 a1 -#define CLIO_TYPELIST_FUNCARG CLIO_MACRORECURSION(CLIO_TYPELIST_FUNCARG_HEAD,CLIO_TYPELIST_FUNCARG_TAIL,CLIO_TYPELIST_FUNCARG_START,CLIO_ZERO) - -// this defines the arguments of the function as they are passed on, for example "a3, a2, a1" -#define CLIO_FUNCARGS_HEAD(N) a##N, -#define CLIO_FUNCARGS_TAIL(N) -#define CLIO_FUNCARGS_START(N) a1 -#define CLIO_FUNCARGS CLIO_MACRORECURSION(CLIO_FUNCARGS_HEAD,CLIO_FUNCARGS_TAIL,CLIO_FUNCARGS_START,CLIO_ZERO) - Deleted: clio/trunk/clio/argument_lists_undef.hpp =================================================================== --- clio/trunk/clio/argument_lists_undef.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/argument_lists_undef.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,23 +0,0 @@ -// undefines the macros defined in argument_list.hpp - -#undef CLIO_TYPELIST_ARG_HEAD -#undef CLIO_TYPELIST_ARG_TAIL -#undef CLIO_TYPELIST_ARG_START -#undef CLIO_TYPELIST_ARG - -#undef CLIO_TYPELIST_HEAD -#undef CLIO_TYPELIST_TAIL -#undef CLIO_TYPELIST_START -#undef CLIO_TYPELIST_ZERO -#undef CLIO_TYPELIST_FIXED - -#undef CLIO_TYPELIST_FUNCARG_HEAD -#undef CLIO_TYPELIST_FUNCARG_TAIL -#undef CLIO_TYPELIST_FUNCARG_START -#undef CLIO_TYPELIST_FUNCARG - -#undef CLIO_FUNCARGS_HEAD -#undef CLIO_FUNCARGS_TAIL -#undef CLIO_FUNCARGS_START -#undef CLIO_FUNCARGS - Deleted: clio/trunk/clio/argumentquality.hpp =================================================================== --- clio/trunk/clio/argumentquality.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/argumentquality.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,149 +0,0 @@ -#ifndef CLIO_ARGUMENTQUALITY_H -#define CLIO_ARGUMENTQUALITY_H - -namespace clio -{ - -template< class T > class GCPointer; - -// inheritend badness of accepted arguments -template< class T > struct ArgumentBadness -{ - enum { Badness = 0 }; -}; - -// const types of complex types are bad, const types of primitives are good -template< class T > struct ArgumentBadness< const T > -{ - enum { Badness = ArgumentBadness<T>::Badness + ( TestPrimitive<T>::IsPrimitive ? -1 : +1 ) }; -}; - -// references to primitives are bad -template< class T > struct ArgumentBadness< T & > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 100 + ArgumentBadness<T>::Badness }; -}; - -// smart pointers are also not favored -template< class T > struct ArgumentBadness< GCPointer< T > > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 200 + ArgumentBadness<T>::Badness + 10 }; -}; - -// pointers to primitives are worst -template< class T > struct ArgumentBadness< T * > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 400 + ArgumentBadness<T>::Badness + 20 }; -}; - -#define CLIO_BAD_ARGUMENT( TYPE, BADNESS ) \ -template<> struct ArgumentBadness< TYPE >{ enum { Badness = BADNESS }; } - -#define CLIO_BAD_ARGUMENT_INT( TYPE, BADNESS ) \ -CLIO_BAD_ARGUMENT( TYPE, BADNESS ); \ -CLIO_BAD_ARGUMENT( unsigned TYPE, BADNESS + 2 ) - -// IoObject. Only in emergencies. -CLIO_BAD_ARGUMENT( IoObject, 1000 ); - -// voids. Very bad. -CLIO_BAD_ARGUMENT( void, 10000 ); - -// Io knows only doubles, so prefer doubles to floats -CLIO_BAD_ARGUMENT( float, 2 ); - -// various ints are also bad. The smaller, the worse. -CLIO_BAD_ARGUMENT_INT( long int, 6 ); -CLIO_BAD_ARGUMENT_INT( int, 10 ); -CLIO_BAD_ARGUMENT_INT( short int, 14 ); -CLIO_BAD_ARGUMENT_INT( char, 18 ); - -// struct giving the quality of an argument, used to select function overloads -struct ArgumentQuality -{ - enum QualityClass - { - Quality_Perfect = 0, // all arguments are perfect fits - Quality_Upcast, // a C++ argument is given of a derived class of the expected class - Quality_Conversion, // conversion is required - Quality_NoMatch, // can't match - Quality_Max - }; - - QualityClass quality; // the type of the mismatch - int conversionSteps; // the number of conversion steps required for the conversion - int badness; // inheritent badness of target type - - // compares this with other. Returns +1 if this is better, -1 if other is better, 0 if - // they are equal. - int Compare( ArgumentQuality const & other ) const - { - if ( quality < other.quality ) - return +1; - if ( quality > other.quality ) - return -1; - - if ( conversionSteps < other.conversionSteps ) - return +1; - if ( conversionSteps > other.conversionSteps ) - return -1; - - if ( badness < other.badness ) - return +1; - if ( badness > other.badness ) - return -1; - - return 0; - } - - ArgumentQuality() - : quality( Quality_Perfect ) - , conversionSteps( 0 ) - , badness( 0 ) - {} -}; - -struct ArgumentTotalQuality: public ArgumentQuality -{ - int argument; // the number of the argument with the worst mismatch - - int Compare( ArgumentTotalQuality const & other ) const - { - // the quality class counts most - if ( quality < other.quality ) - return +1; - if ( quality > other.quality ) - return -1; - - // a mismatch in a later argument is better - if ( argument > other.argument ) - return +1; - if ( argument < other.argument ) - return -1; - - // only after all that, the number of conversion steps is taken into account - if ( conversionSteps < other.conversionSteps ) - return +1; - if ( conversionSteps > other.conversionSteps ) - return -1; - - if ( badness < other.badness ) - return +1; - if ( badness > other.badness ) - return -1; - - return 0; - } - - ArgumentTotalQuality() - : argument(-1) - {} - - ArgumentTotalQuality( ArgumentQuality const & quality, int argnum ) - : ArgumentQuality( quality ), argument( argnum ) - {} -}; - -} - -#endif Deleted: clio/trunk/clio/autoarray.cpp =================================================================== --- clio/trunk/clio/autoarray.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/autoarray.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1 +0,0 @@ -#include "autoarray.hpp" Deleted: clio/trunk/clio/autoarray.hpp =================================================================== --- clio/trunk/clio/autoarray.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/autoarray.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,33 +0,0 @@ -#ifndef CLIO_AUTOARRAY_H -#define CLIO_AUTOARRAY_H - -#include "nocopy.hpp" -#include <set> - -namespace clio -{ -// array of stuff that is supposed to get automatically deleted later -template< class T > class AutoArray: public NoCopy -{ -public: - typedef std::set< T * > Array; // type to store the items - - ~AutoArray() - { - // delete all passed pointers - for ( typename Array::iterator iter = array_.begin(); iter != array_.end(); ++iter ) - delete( *iter ); - } - - // add an object for later deletion - void Add( T * item ) - { - array_.insert( item ); - } -private: - Array array_; // the data -}; - -} - -#endif Deleted: clio/trunk/clio/autoinstantiation.cpp =================================================================== --- clio/trunk/clio/autoinstantiation.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/autoinstantiation.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,5 +0,0 @@ -#include "autoinstantiation.hpp" - -namespace clio -{ -} Deleted: clio/trunk/clio/autoinstantiation.hpp =================================================================== --- clio/trunk/clio/autoinstantiation.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/autoinstantiation.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,60 +0,0 @@ -#ifndef CLIO_AUTOINSTANTIATION_H -#define CLIO_AUTOINSTANTIATION_H - -#include "clio_config.hpp" - -namespace clio -{ - -// objects of this template class handle the instantiation of the template. That -// is a two stage process, the call triggered here instantiates another static object -// that does the registration call in its constructor. That way, the registration -// happens only once. - -struct InstantiatorDummy -{ - // the constructor is getting specialized - inline InstantiatorDummy(){}; -}; - -template< class T > struct Instantiator: public InstantiatorDummy{}; - -// same for template instantiations ( only here so we don't have to generate a new name later ) -template< class T > struct InstantiatorTemplate: public InstantiatorDummy{}; - -// this class makes sure that one object of class T exists if you -// call the static method Instantiate() from anywhere. Alternatively, -// explicitly instantiating the whole template also works. -template< class T > -class InstantiatorHelperReal: public T -{ -public: - static inline void Instantiate(){ instantiator_.InstantiateNonStatic(); } - -private: - // this function does nothing, but calling it triggers the generation of the object - inline void InstantiateNonStatic(){} - - static InstantiatorHelperReal instantiator_; -}; - -template< class T > -InstantiatorHelperReal<T> InstantiatorHelperReal<T>::instantiator_; - -// this class fakes that, doing nothing -struct InstantiatorHelperFake -{ - static inline void Instantiate(){} -}; - -// this class gets specialized whenever Instantiator is specialized to -// be derived of InstantiatorHelperReal so real work is done then. -template< class T > -struct InstantiatorHelper: public InstantiatorHelperFake{}; - -// this class is actually used all over the place -template< class T > struct AutoInstantiator: public InstantiatorHelper< Instantiator< T > >{}; - -} - -#endif Added: clio/trunk/clio/bootstrap.sh =================================================================== --- clio/trunk/clio/bootstrap.sh (rev 0) +++ clio/trunk/clio/bootstrap.sh 2008-02-22 21:27:53 UTC (rev 8064) @@ -0,0 +1,16 @@ +#! /bin/sh + +touch NEWS +touch AUTHORS +touch README +touch ChangeLog + +echo "Running aclocal..." +aclocal || rm aclocal.m4 +echo "Running autoheader..." +rm -f config.h.in +autoheader || rm config.h.in +echo "Running autoconf..." +autoconf || rm configure +echo "Running automake..." +automake -a Property changes on: clio/trunk/clio/bootstrap.sh ___________________________________________________________________ Name: svn:executable + * Deleted: clio/trunk/clio/classinfo.cpp =================================================================== --- clio/trunk/clio/classinfo.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classinfo.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,13 +0,0 @@ -#include "classinfo.hpp" - -namespace clio -{ - -// returns the size of the wrapped object -template<> -size_t ClassInfo<void>::DoGetSize() const CLIO_NOTHROW -{ - return 0; -} - -} Deleted: clio/trunk/clio/classinfo.hpp =================================================================== --- clio/trunk/clio/classinfo.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classinfo.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,248 +0,0 @@ -#ifndef CLIO_CLASSINFO_H -#define CLIO_CLASSINFO_H - -#include "iclassinfo.hpp" -#include "totype.hpp" -#include "classname.hpp" -#include "objectwrapperaware.hpp" -#include "forcesemicolon.hpp" -#include "factory.hpp" -#include "icaster.hpp" -#include "typetraits.hpp" -#include "autoinstantiation.hpp" -#include <string> - -// implementation - -#include <assert.h> -#include <typeinfo> - -namespace clio -{ - -template< class T > -class ClassInfo: public IClassInfo -{ -public: - // this is a singleton class - static ClassInfo & Get() CLIO_NOTHROW; - - // extracts the object managed by this class - T * ExtractObject( ObjectWrapper & wrapper ) const CLIO_NOTHROW - { - // delegate and cast - return static_cast< T * >( IClassInfo::ExtractObject( wrapper ) ); - } - - // extracts the object managed by this class - T * ExtractObject( ObjectWrapper & wrapper, int & casts ) const CLIO_NOTHROW - { - // delegate and cast - return static_cast< T * >( IClassInfo::ExtractObject( wrapper, casts ) ); - } - - // really create default consructor factory - template< class DERIVED > - void CreateDefaultConstructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetCreate( CreateFactoryCreate< T, DERIVED >( a, b ) ); - } - - // pretend to create default consructor factory - template< class DERIVED > - void CreateDefaultConstructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetCreate( 0 ); - } - - // really create copy consructor factory - template< class DERIVED > - void CreateCopyConstructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetClone( CreateFactoryClone< T, DERIVED >( a, b ) ); - } - - // pretend to create copy consructor factory - template< class DERIVED > - void CreateCopyConstructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetClone( 0 ); - } - - // really create destructor factory - void CreateDestructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetDestroy( CreateFactoryDestroy< T, T >( a, b ) ); - } - - // pretend to create destructor factory - void CreateDestructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetDestroy( 0 ); - } - -private: - // returns the size of the wrapped object - virtual size_t DoGetSize() const CLIO_NOTHROW - { - return sizeof(T); - } - - // checks if wrapper wraps an ObjectWrapperAware object , and if yes, informs it. - virtual void DoSetAwareObject( ObjectWrapper & wrapper ) const CLIO_NOTHROW - { - wrapper.SetAwareObject( ExtractObject( wrapper ) ); - } - - ClassInfo() - { - SetNameGetter( Name_Template , classname::ClassNameDefaultGetter< T, Name_Template >::Get ); - SetNameGetter( Name_C , classname::ClassNameDefaultGetter< T, Name_C >::Get ); - SetNameGetter( Name_IoComplete, classname::ClassNameDefaultGetter< T, Name_IoComplete >::Get ); - // GetName( Name_Template ); - - // instantiate (sneaky recursion: if anyone instantiates this template, - // the code below triggers the clio glue instantiation, which makes this - // constructor acutally get called exactly once) - AutoInstantiator< T >::Instantiate(); - } - - // object creator - static IoObject * CreateStatic( IoState * state ) - { - return Get().Create( state ); - } - - virtual IoStateProtoFunc * DoGetStateProtoFunc() const CLIO_NOTHROW - { - return (IoStateProtoFunc *)&CreateStatic; - } -}; - -template< class DERIVED, class BASE > class StaticCaster: public ICaster -{ -public: - StaticCaster() CLIO_NOTHROW - : ICaster( &ClassInfo< DERIVED >::Get(), &ClassInfo< BASE >::Get() ) - {} - - virtual void * DoCast ( void * source ) const CLIO_NOTHROW - { - // simple upcast - DERIVED * derived = static_cast< DERIVED * >( source ); - BASE * base = derived; - return base; - } - - virtual void * DoCastBack ( void * source ) const CLIO_NOTHROW - { - // downcast not possible - return NULL; - } -}; - -template< class DERIVED, class BASE > class Caster: public StaticCaster< DERIVED, BASE > -{ -public: - Caster() - {} - - virtual void * DoCastBack ( void * source ) const CLIO_NOTHROW - { - // downcast - BASE * base = static_cast< BASE * >( source ); - - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv - DERIVED * derived = dynamic_cast< DERIVED * >( base ); - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv -/* - If you get an error here, saying something like - " cannot dynamic_cast `base' (of type `class BASE*') to type `class DERIVED*' - (source type is not polymorphic), " - you were using the CLIO_CLASS_BASE macro on non-polymorphic types. Either give - your designed base class at least one virtual function (preferably the destructor) - or use CLIO_CLASS_SET_POLYMORPHIC( BASE, false ) to inform clio about the lack of - virtual functions in BASE. -*/ - - return derived; - } -}; - -// ClassInfo is a singleton class -template< class T > -ClassInfo<T> & ClassInfo<T>::Get() CLIO_NOTHROW -{ -// set to 0 to disable class specific code generation -#if 1 - // instead of the complicated template, we could just - // write ClassInfo. But this way, we catch errors where - // ClassInfo is instantiated with const types. - static ClassInfo< typename TestConst< T >::NoConst > info; - return info; -#else - return *(ClassInfo *)0; -#endif -} - -// register a polymorphic (dynamic casts work) superclass/subclass relationship -template< class DERIVED, class BASE > void RegisterBaseClass( BoolToType< true > polymorphic ) CLIO_NOTHROW -{ - static Caster< DERIVED, BASE > caster; - - ClassInfo< DERIVED >::Get().RegisterBaseClass( ClassInfo< BASE >::Get(), &caster ); -} - -// register a superclass/subclass relationship. No dynamic casts here. -template< class DERIVED, class BASE > void RegisterBaseClass( BoolToType< false > polymorphic ) CLIO_NOTHROW -{ - static StaticCaster< DERIVED, BASE > caster; - - ClassInfo< DERIVED >::Get().RegisterBaseClass( ClassInfo< BASE >::Get(), &caster ); -} - -template< class DERIVED, class BASE > void RegisterBaseClass() CLIO_NOTHROW -{ - // usually, testing BASE for polymorphism should be enough; however, a corner case is - // that BASE may not have the sticky properties solidified, but DERIVED has, then the - // test on DERIVED is more reliable. - RegisterBaseClass< DERIVED, BASE >( TypeAnd( CLIO_CLASS_GET_POLYMORPHIC( BASE ), CLIO_CLASS_GET_POLYMORPHIC( DERIVED ) ) ); -} - -// register a nesting parent class -template< class INNER, class OUTER > void RegisterNestingParentClass() CLIO_NOTHROW -{ - ClassInfo< INNER >::Get().SetNestingParent( &ClassInfo< OUTER >::Get() ); -} - -// returns the size of the wrapped object, specialized for voids. -template<> -size_t ClassInfo<void>::DoGetSize() const CLIO_NOTHROW; - -} - -#endif Deleted: clio/trunk/clio/classname.cpp =================================================================== --- clio/trunk/clio/classname.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classname.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,106 +0,0 @@ -#include "classname.hpp" -#include <ctype.h> -#include <iostream> - -namespace clio -{ -namespace classname -{ - -std::string GetName( std::type_info const & type ) -{ - std::string rawName = type.name(); - - // strip away non-letters - unsigned int i = 0; - while ( i < rawName.size() && !isalpha(rawName[i]) ) - ++i; - - std::string ret = rawName.c_str()+i; - - static bool warn = true; - if ( warn ) - { - std::cerr << "Warning: class name of class " << ret - << " determined via type_info mechanism which is horribly broken and impossible to get right for all but basic classes outside of namespaces and even there probably only works for GCC. Use the CLIO_CLASSNAME macro if you want good type info in error messages.\n"; - warn = false; - } - - return ret; -} - -#ifdef __GNUC__ -std::string GetName( char const * type ) -{ - char const * start = "[with T = "; - char const * end = "]"; - char const * s = strstr( type, start ); - if ( s ) - { - s += strlen( start ); - char const * e = strstr( s, end ); - if ( e ) - { - /* - std::stringstream ret; - bool capitalize = true; - while ( s < e ) - { - switch (*s) - { - case ',': - ret << *s; - capitalize = true; - break; - case '<': - ret << " with("; - capitalize = true; - break; - case '>': - ret << ")"; - break; - case ':': - s++; - if ( s < e && *s == ':' ) - { - ret << ' '; - capitalize = true; - } - break; - default: - if ( capitalize ) - { - ret << (char)toupper(*s); - capitalize = false; - } - else - { - ret << *s; - } - break; - } - - s++; - } - */ - std::string ret( s, e-s ); - - static bool warn = true; - if ( warn ) - { - std::cerr << "Warning: class name of class " << ret - << " determined via GNU C specific mechanism. Use the CLIO_CLASSNAME macro if you want good type info in error messages on all compilers.\n"; - warn = false; - } - - return ret; - } - } - - return "Unknown"; -} -#endif - -} - -} Deleted: clio/trunk/clio/classname.hpp =================================================================== --- clio/trunk/clio/classname.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classname.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,342 +0,0 @@ -#ifndef CLIO_CLASSNAME_H -#define CLIO_CLASSNAME_H - -#include "iclassinfo.hpp" -#include "forcesemicolon.hpp" -#include "templatearglist.hpp" -#include "typelist.hpp" -#include <string> -#include <ostream> -#include <sstream> - -//class IoObject; -#include <IoObject_struct.h> - -namespace clio -{ - -template< class T > class GCPointer; -template< class T > class ClassInfo; - -namespace classname -{ - -// determines a class name from its type ID -std::string GetName( std::type_info const & type ); - -#ifdef __GNUC__ -std::string GetName( char const * type ); -#endif - -// this class is responsible for retrieving raw class names from the class info data. -template< class T, IClassInfo::NameType type > struct ClassNameRawGetter -{ - static void Get( std::ostream & s ) - { - s << ClassInfo<T>::Get().GetName( type ); - } - - -#if 0 - { - #ifdef __GNUC__ - // cool, GCC. The pseudo-macro __PRETTY_FUNCTION__ contains T's classname as the compiler - // likes it. - return classname::GetName( __PRETTY_FUNCTION__ ); - #else - - // use C++ type_info mechanism to get the class name - // this is not portable and should not be relied on. - std::string ret = classname::GetName( typeid(T) ); - #endif - } -#endif -}; - -// That wraps it up for classes, but we want type names. Another layer of -// indirection is needed: - -template< class T, IClassInfo::NameType type > struct TypeNameGetter -{ - static void Get( std::ostream & s ) - { - ClassNameRawGetter< T, type >::Get( s ); - } -}; - -// as a bonus, we also give you names for integers. Sounds silly, but is useful -// to auto-generate names for templates. -template< int I > struct IntNameGetter -{ - static void Get( std::ostream & s ) - { - s << I; - } -}; - -// specializations for references, pointers and const: don't change the name -template< class T, IClassInfo::NameType type > struct TypeNameGetter< T &, type >: public TypeNameGetter< T, type >{}; -template< class T, IClassInfo::NameType type > struct TypeNameGetter< T *, type >: public TypeNameGetter< T, type >{}; -template< class T, IClassInfo::NameType type > struct TypeNameGetter< T const, type >: public TypeNameGetter< T, type >{}; -template< class T, IClassInfo::NameType type > struct TypeNameGetter< GCPointer<T>, type >: public TypeNameGetter< T, type >{}; - -// unless the real C name is asked for, then do change the name -template< class T > struct TypeNameGetter< T &, IClassInfo::Name_C > -{ - static void Get( std::ostream & s ) - { - TypeNameGetter<T,IClassInfo::Name_C>::Get(s); - s << " &"; - } -}; - -template< class T > struct TypeNameGetter< T *, IClassInfo::Name_C > -{ - static void Get( std::ostream & s ) - { - TypeNameGetter<T,IClassInfo::Name_C>::Get(s); - s << " *"; - } -}; - -template< class T > struct TypeNameGetter< GCPointer<T>, IClassInfo::Name_C > -{ - static void Get( std::ostream & s ) - { - s << "clio::GCPointer< "; - TypeNameGetter<T,IClassInfo::Name_C>::Get(s); - s << " >"; - } -}; - -template< class T > struct TypeNameGetter< T const, IClassInfo::Name_C > -{ - static void Get( std::ostream & s ) - { - TypeNameGetter<T,IClassInfo::Name_C>::Get(s); - s << " const"; - } -}; - -// gets the names of types in a typelist -template< class TYPELIST, IClassInfo::NameType type > struct TypeListNameGetter -{ - static void Get( std::ostream & s, char const * divisor ) - { - TypeNameGetter< typename TYPELIST::First, type >::Get( s ); - s << divisor; - TypeListNameGetter< typename TYPELIST::Rest, type >::Get( s, divisor ); - } -}; - -template< class T, IClassInfo::NameType type > struct TypeListNameGetter< TypeList< T >, type > -{ - static void Get( std::ostream & s, char const * divisor ) - { - TypeNameGetter< T, type >::Get( s ); - } -}; - -template< IClassInfo::NameType type > struct TypeListNameGetter< TypeListEmpty, type > -{ - static void Get( std::ostream & s, char const * divisor ){} -}; - -// these default getters are used by ClassInfo<T> to fill the class name getters. -// Overload them for complicated cases where the classname can only be known -// at runtime. -struct ClassNameDefaultGetterBaseBase -{ - static void Get( std::ostream & s ) - { - } -}; - -// class name getter -template< class T, IClassInfo::NameType type > struct ClassNameDefaultGetterBase : -public ClassNameDefaultGetterBaseBase{}; -template< class T, IClassInfo::NameType type > struct ClassNameDefaultGetter : -public ClassNameDefaultGetterBase< T, type >{}; - -template< IClassInfo::NameType type > struct TemplateNameHelper -{ - static void Begin( std::ostream & s ){} - static void End ( std::ostream & s ){} -}; - -template<> struct TemplateNameHelper< IClassInfo::Name_C > -{ - static void Begin( std::ostream & s ){ s << '<' ; } - static void End ( std::ostream & s ){ s << '>'; } -}; - -template<> struct TemplateNameHelper< IClassInfo::Name_IoComplete > -{ - static void Begin( std::ostream & s ){ s << " With("; } - static void End ( std::ostream & s ){ s << ')'; } -}; - -} - -template< class TYPELIST, IClassInfo::NameType type > -std::string GetTypeListName( char const * divisor = ", " ) -{ - std::ostringstream s; - classname::TypeListNameGetter< TYPELIST, type >::Get( s, divisor ); - return s.str(); -} - -// and finally, with this function, you get a good name for every possible type. -template< class T, IClassInfo::NameType type > -std::string GetTypeName() -{ - std::ostringstream s; - classname::TypeNameGetter< T, type >::Get( s ); - return s.str(); -} - -template< int T, IClassInfo::NameType type > -std::string GetTypeName() -{ - std::ostringstream s; - classname::IntNameGetter< T >::Get( s ); - return s.str(); -} - -// and finally, with this function, you get a good name for every possible type. -template< class T, IClassInfo::NameType type > -void FillTypeName( std::ostream & s ) -{ - classname::TypeNameGetter< T, type >::Get( s ); -} - -template< int T, IClassInfo::NameType type > -void FillTypeName( std::ostream & s ) -{ - classname::IntNameGetter< T >::Get( s ); -} - -template< class TYPELIST > -std::string GetTypeListName( char const * divisor ) -{ - return GetTypeListName< TYPELIST, IClassInfo::IClassInfo::Name_C >( divisor ); -} - -template< class TYPELIST > -std::string GetFunctionArgumentList() -{ - return GetTypeListName< TYPELIST, IClassInfo::IClassInfo::Name_C >( ", " ); -} - -template< class TYPELIST > -void FillFunctionArgumentList( std::ostream & s ) -{ - classname::TypeListNameGetter< TYPELIST, IClassInfo::IClassInfo::Name_C >::Get( s, ", " ); -} - -// and finally, with this function, you get a good name for every possible type. -template< class T > -std::string GetTypeName() -{ - return GetTypeName< T, IClassInfo::IClassInfo::Name_C >(); -} - -template< int T > -std::string GetTypeName() -{ - std::ostringstream s; - classname::IntNameGetter< T >::Get( s ); - return s.str(); -} - -} - -// It's better to specialize the above function with these macros. -// This has to be used outside of any namespace scope. -#define CLIO_TEMPLATENAME( CLASS, SIGNATURE ) CLIO_TEMPLATENAME_EX( CLASS, SIGNATURE, #CLASS ) -#define CLIO_TEMPLATENAME_EX( CLASS, SIGNATURE, NAME ) \ -namespace clio{ namespace classname { \ -template< IClassInfo::NameType type2 CLIO_TEMPLATE_INNERSTATEMENT(SIGNATURE) > \ -struct ClassNameDefaultGetterBase<CLASS CLIO_TEMPLATE_ARGLIST_COMPLETE(SIGNATURE), type2> \ -{ \ - static void Get( std::ostream & s ) \ - { \ - static const IClassInfo::NameType type = ( type2 == IClassInfo::Name_IoRaw ) ? IClassInfo::Name_IoComplete : type2; \ - if ( type2 == IClassInfo::Name_Template ) \ - { \ - s << NAME; \ - return; \ - } \ - else if ( type2 == IClassInfo::Name_C ) \ - { \ - s << #CLASS; \ - } \ - else \ - { \ - s << ClassInfo< CLASS CLIO_TEMPLATE_ARGLIST_COMPLETE(SIGNATURE) > \ - ::Get().GetNameSpace() << NAME; \ - } \ - TemplateNameHelper< type >::Begin( s ); \ - CLIO_TEMPLATE_ARGNAMES(SIGNATURE); \ - TemplateNameHelper< type >::End( s ); \ - } \ -}; \ -} } CLIO_FORCESEMICOLON(classnamet) - -#if 0 -namespace clio{ template< bool DUMMY > struct ClassNameRawGetter<CLASS, DUMMY >{ static std::string Get(); }; \ -template< bool DUMMY > std::string ClassNameRawGetter<CLASS, DUMMY >::Get(){ return NAME; } \ -template struct ClassNameRawGetter<CLASS, true >; } CLIO_FORCESEMICOLON(classname2) -#endif - -// classes where you don't know whether they get wrapped or not should have their classname -// set with these macros. -#define CLIO_C_CLASSNAME( CLASS ) CLIO_C_CLASSNAME_EX( CLASS, #CLASS ) -#define CLIO_C_CLASSNAME_EX( CLASS, NAME ) CLIO_CLASSNAME_EX( CLASS, NAME, clio::IClassInfo::Name_C ) -#define CLIO_IO_RAW_CLASSNAME( CLASS, NAME ) CLIO_CLASSNAME_EX( CLASS, NAME, clio::IClassInfo::Name_IoRaw ) -#define CLIO_IO_COMPLETE_CLASSNAME( CLASS, NAME ) CLIO_CLASSNAME_EX( CLASS, NAME, clio::IClassInfo::Name_IoComplete ) - -#define CLIO_CLASSNAME_EX( CLASS, NAME, TYPE ) \ -namespace clio{ namespace classname { \ -template<> \ -struct ClassNameDefaultGetter< CLASS, TYPE > \ -{ \ - static void Get( std::ostream & s ) \ - { \ - s << NAME; \ - } \ -}; \ -} } CLIO_FORCESEMICOLON(classname2) - - -// like this: -CLIO_C_CLASSNAME(void); -CLIO_C_CLASSNAME(float); -CLIO_C_CLASSNAME(double); -CLIO_C_CLASSNAME(bool); -CLIO_C_CLASSNAME(IoObject); -CLIO_C_CLASSNAME_EX(std::string, "string" ); - -#define CLIO_C_CLASSNAME_INT( INT ) CLIO_C_CLASSNAME( INT ); CLIO_C_CLASSNAME( unsigned INT ) -CLIO_C_CLASSNAME_INT(int); -CLIO_C_CLASSNAME_INT(char); -CLIO_C_CLASSNAME_INT(short int); -CLIO_C_CLASSNAME_INT(long int); - -// or this, for io typenames -CLIO_IO_COMPLETE_CLASSNAME( std::string, "Sequence" ); -//CLIO_IO_CLASSNAME( float, "Number" ); -//CLIO_IO_CLASSNAME( double, "Double" ); - -/* -#define CLIO_IO_CLASSNAME_NUMBER( CLASS )\ -CLIO_IO_CLASSNAME( CLASS, "Number" ); \ -CLIO_IO_CLASSNAME( unsigned CLASS, "Number" ) -*/ - -//CLIO_IO_CLASSNAME_NUMBER( long int ); -//CLIO_IO_CLASSNAME_NUMBER( int ); -//CLIO_IO_CLASSNAME_NUMBER( short int ); -//CLIO_IO_CLASSNAME_NUMBER( char ); - -#endif Deleted: clio/trunk/clio/classregistrator.cpp =================================================================== --- clio/trunk/clio/classregistrator.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classregistrator.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,22 +0,0 @@ -// implementation - -#include "classregistrator.hpp" -#include "classregistratorset.hpp" - -namespace clio -{ - -IClassRegistrator::IClassRegistrator( ClassRegistratorSet & set ) - : set_( set ) - { - // auto-register - set.Add( this ); - } - -IClassRegistrator::~IClassRegistrator() -{ - // auto-deregister - set_.Remove( this ); -} - -} Deleted: clio/trunk/clio/classregistrator.hpp =================================================================== --- clio/trunk/clio/classregistrator.hpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classregistrator.hpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,41 +0,0 @@ -#ifndef CLIO_CLASSREGISTRATOR_H -#define CLIO_CLASSREGISTRATOR_H - -#include "nocopy.hpp" -#include "linkedlist.hpp" -#include "stateregistrator.hpp" - -class IoState; - -namespace clio -{ - -class ClassRegistratorSet; -class ObjectWrapper; - -// something that wants to register things with a state -class IClassRegistrator: public LinkedListItem< IClassRegistrator >, public Security -{ -public: - IClassRegistrator( ClassRegistratorSet & set ); - virtual ~IClassRegistrator(); - - // for future extensions - struct ExtraInfo: public IStateRegistrator::ExtraInfo{}; - - // register with a state, decoupling wrapper - inline void Register( IoState * state, ObjectWrapper * self, ExtraInfo const & info ) - { - DoRegister( state, self, info ); - } -private: - // register with a state, implementation - virtual void DoRegister( IoState * state, ObjectWrapper * self, ExtraInfo const & info ) CLIO_NOTHROW = 0; - - // the set we're registered with - ClassRegistratorSet & set_; -}; - -} - -#endif Deleted: clio/trunk/clio/classregistratorset.cpp =================================================================== --- clio/trunk/clio/classregistratorset.cpp 2008-02-22 21:24:09 UTC (rev 8063) +++ clio/trunk/clio/classregistratorset.cpp 2008-02-22 21:27:53 UTC (rev 8064) @@ -1,38 +0,0 @@ -#include "classregistratorset.hpp" - -#include "classregistrator.hpp" - -namespace clio -{ - -void ClassRegistratorSet::Add( IClassRegistrator * registrator ) CLIO_NOTHROW -{ - registrator->Insert( &anchor_ ); -} - -void ClassRegistratorSet::Remove( IClassRegistrator * registrator ) CLIO_NOTHROW -{ - registrator->Remove(); -} - -// register all registrators with a state -void ClassRegistratorSet::RegisterAll( IoState * state, ObjectWrap... [truncated message content] |
From: <baz...@us...> - 2008-02-22 22:00:58
|
Revision: 8065 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8065&view=rev Author: bazaarmagetron Date: 2008-02-22 14:00:58 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Added test compilation rules. Modified Paths: -------------- clio/trunk/clio/configure.ac clio/trunk/clio/tests/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-22 22:18:06.773000002 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: refactor + timestamp: 2008-02-22 22:56:01.414999962 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: refactor Name: bzr:file-ids - bootstrap.sh bootstrap.sh-20080222211625-ywl4x5mamxyyugek-4 configure.ac configure.ac-20080222211625-ywl4x5mamxyyugek-6 Makefile.am makefile.am-20080222211625-ywl4x5mamxyyugek-5 AUTHORS authors-20080222211625-ywl4x5mamxyyugek-1 README readme-20080222211625-ywl4x5mamxyyugek-2 NEWS news-20080222211625-ywl4x5mamxyyugek-3 src src-20080222203757-y1e5vpr93avq2ya5-1 src/nocopy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.cpp src/error.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.cpp src/macrorecursion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macrorecursion.hpp src/linkedlist.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.cpp src/factory.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.cpp src/stateregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.hpp src/objectwrapperaware.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.cpp src/nocopy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.hpp src/typetraits.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.hpp src/virtual_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_base.hpp src/functioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.hpp src/namemangling.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.cpp src/namespace.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.cpp src/argument_lists.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists.hpp src/ichained.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.hpp src/function_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function_single.hpp src/classstateinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.cpp src/includeloop.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:includeloop.hpp src/typelist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typelist.hpp src/iclassinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.hpp src/std_container.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.cpp src/iclassinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.cpp src/functioninfo_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_single.hpp src/property.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.hpp src/virtual_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_nadic.hpp src/autoarray.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.hpp src/functiontype_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functiontype_base.hpp src/classinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.cpp src/proxy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.hpp src/dataconversion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.hpp src/virtual_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_single.hpp src/clio_config.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:clio_config.hpp src/classname.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.cpp src/gcmarker.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.cpp src/proxy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.cpp src/std_container.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.hpp src/security.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.hpp src/dataconversion.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.cpp src/icaster.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.cpp src/ichained.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.cpp src/autoinstantiation.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.hpp src/classregistratorset.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.hpp src/functioninfo_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_nadic.hpp src/codeinjection.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.cpp src/namemangling.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.hpp src/codeinjection.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.hpp src/ifunctioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.cpp src/linkedlist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.hpp src/security.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.cpp src/icaster.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.hpp src/classstateinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.hpp src/classregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.hpp src/typetraits.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.cpp src/function.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function.hpp src/factory.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.hpp src/classregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.cpp src/macros.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.cpp src/virtual.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual.hpp src/property.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.cpp src/state.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.cpp src/objectwrapperaware.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.hpp src/ifunctioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.hpp src/functioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.cpp src/stateregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.cpp src/objectwrapper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.cpp src/classinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.hpp src/templatearglist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:templatearglist.hpp src/state.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.hpp src/macros.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.hpp src/virtual_helper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.hpp src/classname.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.hpp src/forcesemicolon.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:forcesemicolon.hpp src/autoarray.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.cpp src/gcpointer.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.cpp src/argument_lists_undef.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists_undef.hpp src/virtual_helper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.cpp src/error.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.hpp src/namespace.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.hpp src/Makefile.am makefile.am-20080222211634-7re12gmo7ct68f04-1 src/gcmarker.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.hpp src/totype.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:totype.hpp src/objectwrapper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.hpp src/enum.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.hpp src/enum.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.cpp src/autoinstantiation.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.cpp src/dataconversion_extended.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.hpp src/helptest.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:helptest.hpp src/dataconversion_extended.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.cpp src/classregistratorset.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.cpp src/gcpointer.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.hpp src/argumentquality.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argumentquality.hpp tests/MakefileManual 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2FMakefile tests/Makefile.am makefile.am-20080222211641-wybkjc03x3690bp1-1 + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 Modified: clio/trunk/clio/configure.ac =================================================================== --- clio/trunk/clio/configure.ac 2008-02-22 21:27:53 UTC (rev 8064) +++ clio/trunk/clio/configure.ac 2008-02-22 22:00:58 UTC (rev 8065) @@ -1,6 +1,7 @@ AC_CACHE_LOAD AC_INIT(libclio,0.1) AM_INIT_AUTOMAKE +AC_PROG_CC AC_PROG_CXX AC_CACHE_SAVE AC_PROG_RANLIB Modified: clio/trunk/clio/tests/Makefile.am =================================================================== --- clio/trunk/clio/tests/Makefile.am 2008-02-22 21:27:53 UTC (rev 8064) +++ clio/trunk/clio/tests/Makefile.am 2008-02-22 22:00:58 UTC (rev 8065) @@ -1,3 +1,20 @@ -all: - CXXFLAGS=${CXXFLAGS} LDFLAGS=${LDFLAGS} ${MAKE} -f MakefileManual - \ No newline at end of file +all: enum.test/test + +../src/libclio.a: ${top_srcdir}/src/*pp + ${MAKE} -C ../src + +LIBCLIO=../src/libclio.a + +# add one test explicitly so ${CXXCOMPILE/LINK} is defined +bin_PROGRAMS = proto.test/test +proto_test_test_SOURCES = proto.test/test.cpp +proto_test_test_CXXFLAGS = "-I${top_srcdir}/src" +proto_test_test_LDADD = ${LIBCLIO} + +%.o: %.cpp + ${CXXCOMPILE} "-I${top_srcdir}/src" -c $< -o $@ + +%.test/test: ${srcdir}/%.test/test.o ${LIBCLIO} + ${mkdir_p} `dirname $@` + ${CXXLINK} ${LIBCLIO} $< + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 22:47:42
|
Revision: 8066 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8066&view=rev Author: bazaarmagetron Date: 2008-02-22 14:47:45 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: fixed linker order. Modified Paths: -------------- clio/trunk/clio/tests/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-22 22:56:01.414999962 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: refactor + timestamp: 2008-02-22 23:38:09.444999933 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 Modified: clio/trunk/clio/tests/Makefile.am =================================================================== --- clio/trunk/clio/tests/Makefile.am 2008-02-22 22:00:58 UTC (rev 8065) +++ clio/trunk/clio/tests/Makefile.am 2008-02-22 22:47:45 UTC (rev 8066) @@ -16,5 +16,5 @@ %.test/test: ${srcdir}/%.test/test.o ${LIBCLIO} ${mkdir_p} `dirname $@` - ${CXXLINK} ${LIBCLIO} $< + ${CXXLINK} $< ${LIBCLIO} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 23:26:52
|
Revision: 8067 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8067&view=rev Author: bazaarmagetron Date: 2008-02-22 15:26:55 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Tests run again. Modified Paths: -------------- clio/trunk/clio/tests/Makefile.am Added Paths: ----------- clio/trunk/clio/tests/multiunit.test/ clio/trunk/clio/tests/multiunit.test/Makefile clio/trunk/clio/tests/multiunit.test/common.hpp clio/trunk/clio/tests/multiunit.test/output.txt clio/trunk/clio/tests/multiunit.test/test.cpp clio/trunk/clio/tests/multiunit.test/test.hpp clio/trunk/clio/tests/multiunit.test/test.io clio/trunk/clio/tests/multiunit.test/test2.cpp clio/trunk/clio/tests/multiunit.test/test2.hpp clio/trunk/clio/tests/multiunit.test/test3.cpp clio/trunk/clio/tests/multiunit.test/test3.hpp clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp clio/trunk/clio/tests/runtest.sh clio/trunk/clio/tests/runtests.sh Removed Paths: ------------- clio/trunk/clio/tests/multiuinit.test/ clio/trunk/clio/tests/multiunit.test/Makefile clio/trunk/clio/tests/multiunit.test/common.hpp clio/trunk/clio/tests/multiunit.test/output.txt clio/trunk/clio/tests/multiunit.test/test.cpp clio/trunk/clio/tests/multiunit.test/test.hpp clio/trunk/clio/tests/multiunit.test/test.io clio/trunk/clio/tests/multiunit.test/test2.cpp clio/trunk/clio/tests/multiunit.test/test2.hpp clio/trunk/clio/tests/multiunit.test/test3.cpp clio/trunk/clio/tests/multiunit.test/test3.hpp clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-22 23:38:09.444999933 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 00:21:23.019000053 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + tests/runtests.sh runtests.sh-20080222224832-kgf7zmnzlse8oszc-1 tests/runtest.sh runtest.sh-20080222232121-q1ty2pffwc7l9vem-1 tests/multiunit.test 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test tests/multiunit.test/output.txt 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Foutput.txt tests/multiunit.test/test2.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest2.cpp tests/multiunit.test/test3.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3.hpp tests/multiunit.test/test3.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3.cpp tests/multiunit.test/Makefile 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2FMakefile tests/multiunit.test/test.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.cpp tests/multiunit.test/test2.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest2.hpp tests/multiunit.test/test3_specialize.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3_specialize.hpp tests/multiunit.test/test.io 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.io tests/multiunit.test/test.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.hpp tests/multiunit.test/common.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Fcommon.hpp Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf Modified: clio/trunk/clio/tests/Makefile.am =================================================================== --- clio/trunk/clio/tests/Makefile.am 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/Makefile.am 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,4 +1,4 @@ -all: enum.test/test +all: enum.test/test tests ../src/libclio.a: ${top_srcdir}/src/*pp ${MAKE} -C ../src @@ -6,10 +6,10 @@ LIBCLIO=../src/libclio.a # add one test explicitly so ${CXXCOMPILE/LINK} is defined -bin_PROGRAMS = proto.test/test -proto_test_test_SOURCES = proto.test/test.cpp -proto_test_test_CXXFLAGS = "-I${top_srcdir}/src" -proto_test_test_LDADD = ${LIBCLIO} +bin_PROGRAMS = multiunit.test/test +multiunit_test_test_SOURCES = multiunit.test/test2.cpp multiunit.test/test3.cpp multiunit.test/test.cpp +multiunit_test_test_CXXFLAGS = "-I${top_srcdir}/src" +multiunit_test_test_LDADD = ${LIBCLIO} %.o: %.cpp ${CXXCOMPILE} "-I${top_srcdir}/src" -c $< -o $@ @@ -18,3 +18,11 @@ ${mkdir_p} `dirname $@` ${CXXLINK} $< ${LIBCLIO} +%.result: %.test/test + srcdir=${srcdir} ${srcdir}/runtest.sh $@ + +tests: + MAKE=${MAKE} srcdir=${srcdir} ${srcdir}/runtests.sh + +.precious: %.test/test %.test/test.o + Copied: clio/trunk/clio/tests/multiunit.test (from rev 8066, clio/trunk/clio/tests/multiuinit.test) Deleted: clio/trunk/clio/tests/multiunit.test/Makefile =================================================================== --- clio/trunk/clio/tests/multiuinit.test/Makefile 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/Makefile 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,12 +0,0 @@ -all: test - - include ../MakefileTestBase - -test.o: ../../*.hpp test.cpp -test2.o: ../../*.hpp test2.cpp -test3.o: ../../*.hpp test3.cpp - -.PRECIOUS: test.o test2.o test3.o - -test: test.o test2.o test3.o ../../libclio.a Makefile - ${CXX} $(CXXFLAGS) -o test -liovmall test3.o test2.o test.o ../../libclio.a Copied: clio/trunk/clio/tests/multiunit.test/Makefile (from rev 8066, clio/trunk/clio/tests/multiuinit.test/Makefile) =================================================================== --- clio/trunk/clio/tests/multiunit.test/Makefile (rev 0) +++ clio/trunk/clio/tests/multiunit.test/Makefile 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,12 @@ +all: test + + include ../MakefileTestBase + +test.o: ../../*.hpp test.cpp +test2.o: ../../*.hpp test2.cpp +test3.o: ../../*.hpp test3.cpp + +.PRECIOUS: test.o test2.o test3.o + +test: test.o test2.o test3.o ../../libclio.a Makefile + ${CXX} $(CXXFLAGS) -o test -liovmall test3.o test2.o test.o ../../libclio.a Deleted: clio/trunk/clio/tests/multiunit.test/common.hpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/common.hpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/common.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,19 +0,0 @@ -#ifndef COMMON_H -#define COMMON_H - -template< class T > -struct Instantiator -{ - void Instantiate(); - Instantiator(); - - static Instantiator instantiator_; -}; - -template< class T > -struct InstantiatorHelper -{ - static void Instantiate(){} -}; - -#endif Copied: clio/trunk/clio/tests/multiunit.test/common.hpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/common.hpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/common.hpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/common.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,19 @@ +#ifndef COMMON_H +#define COMMON_H + +template< class T > +struct Instantiator +{ + void Instantiate(); + Instantiator(); + + static Instantiator instantiator_; +}; + +template< class T > +struct InstantiatorHelper +{ + static void Instantiate(){} +}; + +#endif Deleted: clio/trunk/clio/tests/multiunit.test/output.txt =================================================================== --- clio/trunk/clio/tests/multiuinit.test/output.txt 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/output.txt 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,14 +0,0 @@ -C1 -C2 -Instantiator<C3<T> >::Instantiator() [with T = C1] -Instantiator<C3<T> >::Instantiator() [with T = C2] -<<<< c1 := C1 clone -<<<< c2 := C2 clone -<<<< c1 f(c2) -C1::F() -<<<< c2 f(c1) -C2::F() - - -C1Name = C1 -C2Name = C2 Copied: clio/trunk/clio/tests/multiunit.test/output.txt (from rev 8066, clio/trunk/clio/tests/multiuinit.test/output.txt) =================================================================== --- clio/trunk/clio/tests/multiunit.test/output.txt (rev 0) +++ clio/trunk/clio/tests/multiunit.test/output.txt 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,14 @@ +C1 +C2 +Instantiator<C3<T> >::Instantiator() [with T = C1] +Instantiator<C3<T> >::Instantiator() [with T = C2] +<<<< c1 := C1 clone +<<<< c2 := C2 clone +<<<< c1 f(c2) +C1::F() +<<<< c2 f(c1) +C2::F() + + +C1Name = C1 +C2Name = C2 Deleted: clio/trunk/clio/tests/multiunit.test/test.cpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test.cpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,61 +0,0 @@ -#include "helptest.hpp" - -#include "test.hpp" - -#include "test3.hpp" -// #include "test3_specialize.hpp" - -template<> -struct Instantiator< C1 > -{ - void Instantiate(){}; - Instantiator(){ std::cout << "C1\n"; }; - - static Instantiator instantiator_; -}; - -template<> -struct InstantiatorHelper< C1 > -{ - static void Instantiate() - { - Instantiator< C1 >::instantiator_.Instantiate(); - } -}; - -Instantiator< C1 > Instantiator< C1 >::instantiator_; - -// **************************** -// multiple compilation units -// **************************** - -void C1::F( C2 const & dummy ) -{ - std::cout << "C1::F()\n"; - InstantiatorHelper<C1>::Instantiate(); - InstantiatorHelper<C2>::Instantiate(); - InstantiatorHelper<C3<C1> >::Instantiate(); - InstantiatorHelper<C3<C2> >::Instantiate(); -} - -#if 1 -CLIO_CLASS(C1) -{ - CLIO_METHOD(F); -} -#endif - -#include "test2.hpp" - -void Test() -{ -#if 0 - C2 c2; - C1 c1; - c1.F( c2 ); -#else - std::cout << "C1Name = " << clio::ClassInfo<C1>::Get().GetName( clio::IClassInfo::Name_IoRaw ) << '\n'; - std::cout << "C2Name = " << clio::ClassInfo<C2>::Get().GetName( clio::IClassInfo::Name_IoRaw ) << '\n'; -#endif -} - Copied: clio/trunk/clio/tests/multiunit.test/test.cpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test.cpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test.cpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,61 @@ +#include "helptest.hpp" + +#include "test.hpp" + +#include "test3.hpp" +// #include "test3_specialize.hpp" + +template<> +struct Instantiator< C1 > +{ + void Instantiate(){}; + Instantiator(){ std::cout << "C1\n"; }; + + static Instantiator instantiator_; +}; + +template<> +struct InstantiatorHelper< C1 > +{ + static void Instantiate() + { + Instantiator< C1 >::instantiator_.Instantiate(); + } +}; + +Instantiator< C1 > Instantiator< C1 >::instantiator_; + +// **************************** +// multiple compilation units +// **************************** + +void C1::F( C2 const & dummy ) +{ + std::cout << "C1::F()\n"; + InstantiatorHelper<C1>::Instantiate(); + InstantiatorHelper<C2>::Instantiate(); + InstantiatorHelper<C3<C1> >::Instantiate(); + InstantiatorHelper<C3<C2> >::Instantiate(); +} + +#if 1 +CLIO_CLASS(C1) +{ + CLIO_METHOD(F); +} +#endif + +#include "test2.hpp" + +void Test() +{ +#if 0 + C2 c2; + C1 c1; + c1.F( c2 ); +#else + std::cout << "C1Name = " << clio::ClassInfo<C1>::Get().GetName( clio::IClassInfo::Name_IoRaw ) << '\n'; + std::cout << "C2Name = " << clio::ClassInfo<C2>::Get().GetName( clio::IClassInfo::Name_IoRaw ) << '\n'; +#endif +} + Deleted: clio/trunk/clio/tests/multiunit.test/test.hpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test.hpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,11 +0,0 @@ -#include <iostream> -#include "common.hpp" - -class C2; - -class C1 -{ -public: - void F( C2 const & dummy ); -}; - Copied: clio/trunk/clio/tests/multiunit.test/test.hpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test.hpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test.hpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,11 @@ +#include <iostream> +#include "common.hpp" + +class C2; + +class C1 +{ +public: + void F( C2 const & dummy ); +}; + Deleted: clio/trunk/clio/tests/multiunit.test/test.io =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test.io 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test.io 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,5 +0,0 @@ -c1 := C1 clone -c2 := C2 clone -c1 f(c2) -c2 f(c1) - Copied: clio/trunk/clio/tests/multiunit.test/test.io (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test.io) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test.io (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test.io 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,5 @@ +c1 := C1 clone +c2 := C2 clone +c1 f(c2) +c2 f(c1) + Deleted: clio/trunk/clio/tests/multiunit.test/test2.cpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test2.cpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test2.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,44 +0,0 @@ -#include "test2.hpp" - -// #include "test3.hpp" -#include "test3_specialize.hpp" - -#include "macros.hpp" -template<> -struct Instantiator< C2 > -{ - void Instantiate(){}; - Instantiator(){ std::cout << "C2\n"; }; - - static Instantiator instantiator_; -}; - -Instantiator< C2 > Instantiator< C2 >::instantiator_; - -template<> -struct InstantiatorHelper< C2 > -{ - static void Instantiate() - { - Instantiator< C2 >::instantiator_.Instantiate(); - } -}; - -#include "test.hpp" - -void C2::F( C1 const & dummy ) -{ - std::cout << "C2::F()\n"; - InstantiatorHelper<C1>::Instantiate(); - InstantiatorHelper<C2>::Instantiate(); - InstantiatorHelper<C3<C1> >::Instantiate(); - InstantiatorHelper<C3<C2> >::Instantiate(); -} - -#if 1 -CLIO_CLASS(C2) -{ - CLIO_METHOD(F); -} -#endif - Copied: clio/trunk/clio/tests/multiunit.test/test2.cpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test2.cpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test2.cpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test2.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,44 @@ +#include "test2.hpp" + +// #include "test3.hpp" +#include "test3_specialize.hpp" + +#include "macros.hpp" +template<> +struct Instantiator< C2 > +{ + void Instantiate(){}; + Instantiator(){ std::cout << "C2\n"; }; + + static Instantiator instantiator_; +}; + +Instantiator< C2 > Instantiator< C2 >::instantiator_; + +template<> +struct InstantiatorHelper< C2 > +{ + static void Instantiate() + { + Instantiator< C2 >::instantiator_.Instantiate(); + } +}; + +#include "test.hpp" + +void C2::F( C1 const & dummy ) +{ + std::cout << "C2::F()\n"; + InstantiatorHelper<C1>::Instantiate(); + InstantiatorHelper<C2>::Instantiate(); + InstantiatorHelper<C3<C1> >::Instantiate(); + InstantiatorHelper<C3<C2> >::Instantiate(); +} + +#if 1 +CLIO_CLASS(C2) +{ + CLIO_METHOD(F); +} +#endif + Deleted: clio/trunk/clio/tests/multiunit.test/test2.hpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test2.hpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test2.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,11 +0,0 @@ -#include <iostream> -#include "common.hpp" - -class C1; - -class C2 -{ -public: - void F( C1 const & dummy ); -}; - Copied: clio/trunk/clio/tests/multiunit.test/test2.hpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test2.hpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test2.hpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test2.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,11 @@ +#include <iostream> +#include "common.hpp" + +class C1; + +class C2 +{ +public: + void F( C1 const & dummy ); +}; + Deleted: clio/trunk/clio/tests/multiunit.test/test3.cpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test3.cpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test3.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1 +0,0 @@ -#include "test3.hpp" Copied: clio/trunk/clio/tests/multiunit.test/test3.cpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test3.cpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test3.cpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test3.cpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1 @@ +#include "test3.hpp" Deleted: clio/trunk/clio/tests/multiunit.test/test3.hpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test3.hpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test3.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,11 +0,0 @@ -#include <iostream> -#include "common.hpp" - -class C1; - -template< class T > -class C3 -{ -public: - void F(){} -}; Copied: clio/trunk/clio/tests/multiunit.test/test3.hpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test3.hpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test3.hpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test3.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,11 @@ +#include <iostream> +#include "common.hpp" + +class C1; + +template< class T > +class C3 +{ +public: + void F(){} +}; Deleted: clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp =================================================================== --- clio/trunk/clio/tests/multiuinit.test/test3_specialize.hpp 2008-02-22 22:47:45 UTC (rev 8066) +++ clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -1,22 +0,0 @@ -#include "test3.hpp" - -template< class T > -struct Instantiator< C3<T> > -{ - void Instantiate(){}; - Instantiator(){ std::cout << __PRETTY_FUNCTION__ << "\n"; }; - - static Instantiator instantiator_; -}; - -template< class T > -Instantiator< C3<T> > Instantiator< C3<T> >::instantiator_; - -template< class T > -struct InstantiatorHelper< C3<T> > -{ - static void Instantiate() - { - Instantiator< C3<T> >::instantiator_.Instantiate(); - } -}; Copied: clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp (from rev 8066, clio/trunk/clio/tests/multiuinit.test/test3_specialize.hpp) =================================================================== --- clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp (rev 0) +++ clio/trunk/clio/tests/multiunit.test/test3_specialize.hpp 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,22 @@ +#include "test3.hpp" + +template< class T > +struct Instantiator< C3<T> > +{ + void Instantiate(){}; + Instantiator(){ std::cout << __PRETTY_FUNCTION__ << "\n"; }; + + static Instantiator instantiator_; +}; + +template< class T > +Instantiator< C3<T> > Instantiator< C3<T> >::instantiator_; + +template< class T > +struct InstantiatorHelper< C3<T> > +{ + static void Instantiate() + { + Instantiator< C3<T> >::instantiator_.Instantiate(); + } +}; Added: clio/trunk/clio/tests/runtest.sh =================================================================== --- clio/trunk/clio/tests/runtest.sh (rev 0) +++ clio/trunk/clio/tests/runtest.sh 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,32 @@ +#! /bin/sh + +# set -x + +dirbase=`echo $1 | sed -e "s,.result$,,"` +dir=${dirbase}.test + +touch ${dirbase}.failed + +# link in .io source files +ln -f ${srcdir}/${dir}/*.io ${dir}/ + +raw=$(tempfile) +processed=$(tempfile) + +ret=0 + +${dir}/test | tee ${raw} +sed -u -e "s,_0x[0-9a-f]*,_0xHEXCODE,g" -e "s,^${srcdir}/${dir}/,," < ${raw} | grep -v IoState_doCString | grep -v "\[unlabeled\]" | grep -v "^ ---------" > ${processed} +if diff -U 5 -b -B ${srcdir}/${dir}/output.txt ${processed}; then + echo -e "\n\n ************ test $* passed! **********\n\n" + touch $1 + rm ${dirbase}.failed + rm -f $*.failed; +else + echo Failed! + ret=1 +fi + +rm -f ${raw} ${processed} + +exit ${ret} Property changes on: clio/trunk/clio/tests/runtest.sh ___________________________________________________________________ Name: svn:executable + * Added: clio/trunk/clio/tests/runtests.sh =================================================================== --- clio/trunk/clio/tests/runtests.sh (rev 0) +++ clio/trunk/clio/tests/runtests.sh 2008-02-22 23:26:55 UTC (rev 8067) @@ -0,0 +1,3 @@ +#! /bin/sh + +${MAKE} `echo ${srcdir}/*.test | sed -e "s,${srcdir}/,,g" -e "s,.test,.result,g"` Property changes on: clio/trunk/clio/tests/runtests.sh ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 23:27:11
|
Revision: 8068 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8068&view=rev Author: bazaarmagetron Date: 2008-02-22 15:27:16 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: removed old makefiles. Removed Paths: ------------- clio/trunk/clio/tests/MakefileManual clio/trunk/clio/tests/MakefileTest clio/trunk/clio/tests/MakefileTestBase Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 00:21:23.019000053 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 00:21:54.342000008 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - tests/runtests.sh runtests.sh-20080222224832-kgf7zmnzlse8oszc-1 tests/runtest.sh runtest.sh-20080222232121-q1ty2pffwc7l9vem-1 tests/multiunit.test 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test tests/multiunit.test/output.txt 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Foutput.txt tests/multiunit.test/test2.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest2.cpp tests/multiunit.test/test3.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3.hpp tests/multiunit.test/test3.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3.cpp tests/multiunit.test/Makefile 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2FMakefile tests/multiunit.test/test.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.cpp tests/multiunit.test/test2.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest2.hpp tests/multiunit.test/test3_specialize.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest3_specialize.hpp tests/multiunit.test/test.io 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.io tests/multiunit.test/test.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Ftest.hpp tests/multiunit.test/common.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:tests%2Fmultiuinit.test%2Fcommon.hpp + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp Deleted: clio/trunk/clio/tests/MakefileManual =================================================================== --- clio/trunk/clio/tests/MakefileManual 2008-02-22 23:26:55 UTC (rev 8067) +++ clio/trunk/clio/tests/MakefileManual 2008-02-22 23:27:16 UTC (rev 8068) @@ -1,39 +0,0 @@ -TESTS = $(wildcard *.test) -RESULTS = $(TESTS:.test=.result) - - sinclude lastchanged - -FAILEDTESTS = $(wildcard *.failed) -DOFIRST = $(LASTCHANGED) $(FAILEDTESTS:.failed=.result) - -all: ${DOFIRST} ${RESULTS} - -lastchanged: - touch $@ - - include ../Makefile - -subclean: - rm -f $(TESTS:.test=.test/test) - rm -f $(FAILEDTESTS) $(RESULTS) - find . -name *.o -exec rm \{\} \; - find . -name *.a -exec rm \{\} \; - - -../libclio.a: ../*.hpp ../*.cpp - make -C ../ libclio.a - -.PRECIOUS: $(TESTS:.test=.test/test) - -%.o: ../*.hpp - -%.test/test: ../*.hpp ../*.cpp %.test/*pp ../Makefile - for f in test.cpp test.io result.txt; do if test $*.test/$$f -nt lastchanged; then echo LASTCHANGED=$*.result > lastchanged; fi; done - if test -r $*.test/Makefile; then make -C $*.test/; else make -f ../MakefileTest -C $*.test/ test; fi - -%.result: %.test/test %.test/output.txt %.test/test.io - rm -f $@ - touch $*.failed - $*.test/test | tee output_raw.txt - sed -u -e "s,_0x[0-9a-f]*,_0xHEXCODE,g" < output_raw.txt | grep -v IoState_doCString | grep -v "\[unlabeled\]" | grep -v "^ ---------" > output.txt - @if diff -U 5 -b -B $*.test/output.txt output.txt; then echo -e "\n\n ************ test $* passed! **********\n\n"; touch $@; rm -f $*.failed; else echo Failed!; false; fi Deleted: clio/trunk/clio/tests/MakefileTest =================================================================== --- clio/trunk/clio/tests/MakefileTest 2008-02-22 23:26:55 UTC (rev 8067) +++ clio/trunk/clio/tests/MakefileTest 2008-02-22 23:27:16 UTC (rev 8068) @@ -1,10 +0,0 @@ -all: test - - include ../MakefileTestBase - -test: test.o ../../libclio.a - ${CXX} $(CXXFLAGS) -o test -liovmall test.o ../../libclio.a - if echo $(CXXFLAGS) | grep -- "-g" > /dev/null; then echo -n ""; else strip -s -X -x test; fi - -%.s: %.cpp ../../*.hpp - ${CXX} $(CXXFLAGS) $< -S Deleted: clio/trunk/clio/tests/MakefileTestBase =================================================================== --- clio/trunk/clio/tests/MakefileTestBase 2008-02-22 23:26:55 UTC (rev 8067) +++ clio/trunk/clio/tests/MakefileTestBase 2008-02-22 23:27:16 UTC (rev 8068) @@ -1,10 +0,0 @@ - include ../../Makefile - -test.o: ../../*.hpp test.cpp - -CXXFLAGS := ${CXXFLAGS} -I ../../ - -../../libclio.a: ../../*.hpp ../../*.cpp ../../Makefile - make -C ../../ libclio.a - -.PRECIOUS: *.o This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-22 23:47:45
|
Revision: 8069 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8069&view=rev Author: bazaarmagetron Date: 2008-02-22 15:47:48 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Adapted to compiling from the source directory itself. Modified Paths: -------------- clio/trunk/clio/.bzrignore clio/trunk/clio/src/classinfo.hpp clio/trunk/clio/tests/runtest.sh Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 00:21:54.342000008 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 00:42:36.444999933 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: buildinsource Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 Modified: clio/trunk/clio/.bzrignore =================================================================== --- clio/trunk/clio/.bzrignore 2008-02-22 23:27:16 UTC (rev 8068) +++ clio/trunk/clio/.bzrignore 2008-02-22 23:47:48 UTC (rev 8069) @@ -8,12 +8,17 @@ ./ChangeLog ./INSTALL Makefile.in +Makefile ./aclocal.m4 ./autom4te.cache ./clio_config.h.in +./clio_config.h ./configure ./depcomp ./install-sh ./missing - - \ No newline at end of file +./config.log +./config.status +./stamp-h1 +.deps +.dirstamp Modified: clio/trunk/clio/src/classinfo.hpp =================================================================== --- clio/trunk/clio/src/classinfo.hpp 2008-02-22 23:27:16 UTC (rev 8068) +++ clio/trunk/clio/src/classinfo.hpp 2008-02-22 23:47:48 UTC (rev 8069) @@ -154,7 +154,7 @@ { // simple upcast DERIVED * derived = static_cast< DERIVED * >( source ); - BASE * base = derived; + BASE * base = static_cast< BASE * >( derived ); return base; } Modified: clio/trunk/clio/tests/runtest.sh =================================================================== --- clio/trunk/clio/tests/runtest.sh 2008-02-22 23:27:16 UTC (rev 8068) +++ clio/trunk/clio/tests/runtest.sh 2008-02-22 23:47:48 UTC (rev 8069) @@ -4,6 +4,8 @@ dirbase=`echo $1 | sed -e "s,.result$,,"` dir=${dirbase}.test +fulldir=${dir} +test "." == "${srcdir}" || fulldir=${srcdir}/${dir} touch ${dirbase}.failed @@ -15,8 +17,9 @@ ret=0 + ${dir}/test | tee ${raw} -sed -u -e "s,_0x[0-9a-f]*,_0xHEXCODE,g" -e "s,^${srcdir}/${dir}/,," < ${raw} | grep -v IoState_doCString | grep -v "\[unlabeled\]" | grep -v "^ ---------" > ${processed} +sed -u -e "s,_0x[0-9a-f]*,_0xHEXCODE,g" -e "s,^${fulldir}/,," < ${raw} | grep -v IoState_doCString | grep -v "\[unlabeled\]" | grep -v "^ ---------" > ${processed} if diff -U 5 -b -B ${srcdir}/${dir}/output.txt ${processed}; then echo -e "\n\n ************ test $* passed! **********\n\n" touch $1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 00:22:42
|
Revision: 8071 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8071&view=rev Author: bazaarmagetron Date: 2008-02-22 16:18:48 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Wrote some lines. Modified Paths: -------------- clio/trunk/clio/README Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 01:00:39.354000092 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: master + timestamp: 2008-02-23 01:05:30.934999943 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: master Name: bzr:file-ids - patches patches-20080223000036-kmhgcvw3dsuz8fh0-1 patches/io_header_install.patch io_header_install.pa-20080223000036-kmhgcvw3dsuz8fh0-2 + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju Modified: clio/trunk/clio/README =================================================================== --- clio/trunk/clio/README 2008-02-23 00:18:30 UTC (rev 8070) +++ clio/trunk/clio/README 2008-02-23 00:18:48 UTC (rev 8071) @@ -0,0 +1,19 @@ +Quick guide to getting a good Io install: + Fetch the Io sources from www.iolanguage.com. Last tested version: Io-2008-01-07 + Apply the patch from the patches/ subdirectory. + run "make; make install" in the Io sources. + +Quick guide to building this from svn/bzr: + run "./bootstrap.sh" (automake and autoconf needed) + ./configure; make + +"make install" has no useful effect yet, so don't do that. + + +Notes on CXXFLAGS: + +On GCC 3.3, -Wall and -pedantic seem to be required. Odd, but true. + +On GCC, Best results regarding code size are achieved, unsurprisingly, if +you pass the -Os flag. It's also a good idea to use 'strip' on binaries +before they get distributed. \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 00:22:42
|
Revision: 8070 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8070&view=rev Author: bazaarmagetron Date: 2008-02-22 16:18:30 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Added patch for Io sources that makes them install the headers. Added Paths: ----------- clio/trunk/clio/patches/ clio/trunk/clio/patches/io_header_install.patch Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 00:42:36.444999933 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: buildinsource + timestamp: 2008-02-23 01:00:39.354000092 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: master Name: bzr:file-ids - + patches patches-20080223000036-kmhgcvw3dsuz8fh0-1 patches/io_header_install.patch io_header_install.pa-20080223000036-kmhgcvw3dsuz8fh0-2 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw Added: clio/trunk/clio/patches/io_header_install.patch =================================================================== --- clio/trunk/clio/patches/io_header_install.patch (rev 0) +++ clio/trunk/clio/patches/io_header_install.patch 2008-02-23 00:18:30 UTC (rev 8070) @@ -0,0 +1,21 @@ +diff -ur Io-2008-01-07-orig/Makefile Io-2008-01-07/Makefile +--- Io-2008-01-07-orig/Makefile 2008-01-07 11:03:42.000000000 +0100 ++++ Io-2008-01-07/Makefile 2008-02-23 00:58:16.000000000 +0100 +@@ -116,6 +116,8 @@ + chmod ugo+rx $(INSTALL_PREFIX)/bin/io$(BINARY_SUFFIX) + cp _build/binaries/io_static$(BINARY_SUFFIX) $(INSTALL_PREFIX)/bin + chmod ugo+rx $(INSTALL_PREFIX)/bin/io_static$(BINARY_SUFFIX) || true ++ mkdir -p $(INSTALL_PREFIX)/include/io || true ++ cp _build/headers/* $(INSTALL_PREFIX)/include/io || true + cp _build/dll/* $(INSTALL_PREFIX)/lib || true + cp _build/dll/* $(INSTALL_PREFIX)/bin || true + cp _build/lib/* $(INSTALL_PREFIX)/lib || true +@@ -131,6 +133,8 @@ + chmod ugo+rx $(INSTALL_PREFIX)/bin/io + ln -sf `pwd`/_build/binaries/io_static$(BINARY_SUFFIX) $(INSTALL_PREFIX)/bin + chmod ugo+rx $(INSTALL_PREFIX)/bin/io_static$(BINARY_SUFFIX) ++ mkdir -p $(INSTALL_PREFIX)/include/io || true ++ ln -sf `pwd`/_build/headers/* $(INSTALL_PREFIX)/include/io + ln -sf `pwd`/_build/dll/* $(INSTALL_PREFIX)/lib + ln -sf `pwd`/_build/dll/* $(INSTALL_PREFIX)/bin + ln -sf `pwd`/_build/lib/* $(INSTALL_PREFIX)/lib This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 00:23:16
|
Revision: 8072 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8072&view=rev Author: bazaarmagetron Date: 2008-02-22 16:20:41 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: moved src -> clio so examples can include <clio/header.hpp> like a program using an installed version would do. Modified Paths: -------------- clio/trunk/clio/Makefile.am clio/trunk/clio/configure.ac clio/trunk/clio/tests/Makefile.am Added Paths: ----------- clio/trunk/clio/clio/ clio/trunk/clio/clio/Makefile.am clio/trunk/clio/clio/argument_lists.hpp clio/trunk/clio/clio/argument_lists_undef.hpp clio/trunk/clio/clio/argumentquality.hpp clio/trunk/clio/clio/autoarray.cpp clio/trunk/clio/clio/autoarray.hpp clio/trunk/clio/clio/autoinstantiation.cpp clio/trunk/clio/clio/autoinstantiation.hpp clio/trunk/clio/clio/classinfo.cpp clio/trunk/clio/clio/classinfo.hpp clio/trunk/clio/clio/classname.cpp clio/trunk/clio/clio/classname.hpp clio/trunk/clio/clio/classregistrator.cpp clio/trunk/clio/clio/classregistrator.hpp clio/trunk/clio/clio/classregistratorset.cpp clio/trunk/clio/clio/classregistratorset.hpp clio/trunk/clio/clio/classstateinfo.cpp clio/trunk/clio/clio/classstateinfo.hpp clio/trunk/clio/clio/clio_config.hpp clio/trunk/clio/clio/codeinjection.cpp clio/trunk/clio/clio/codeinjection.hpp clio/trunk/clio/clio/dataconversion.cpp clio/trunk/clio/clio/dataconversion.hpp clio/trunk/clio/clio/dataconversion_extended.cpp clio/trunk/clio/clio/dataconversion_extended.hpp clio/trunk/clio/clio/enum.cpp clio/trunk/clio/clio/enum.hpp clio/trunk/clio/clio/error.cpp clio/trunk/clio/clio/error.hpp clio/trunk/clio/clio/factory.cpp clio/trunk/clio/clio/factory.hpp clio/trunk/clio/clio/forcesemicolon.hpp clio/trunk/clio/clio/function.hpp clio/trunk/clio/clio/function_single.hpp clio/trunk/clio/clio/functioninfo.cpp clio/trunk/clio/clio/functioninfo.hpp clio/trunk/clio/clio/functioninfo_nadic.hpp clio/trunk/clio/clio/functioninfo_single.hpp clio/trunk/clio/clio/functiontype_base.hpp clio/trunk/clio/clio/gcmarker.cpp clio/trunk/clio/clio/gcmarker.hpp clio/trunk/clio/clio/gcpointer.cpp clio/trunk/clio/clio/gcpointer.hpp clio/trunk/clio/clio/helptest.hpp clio/trunk/clio/clio/icaster.cpp clio/trunk/clio/clio/icaster.hpp clio/trunk/clio/clio/ichained.cpp clio/trunk/clio/clio/ichained.hpp clio/trunk/clio/clio/iclassinfo.cpp clio/trunk/clio/clio/iclassinfo.hpp clio/trunk/clio/clio/ifunctioninfo.cpp clio/trunk/clio/clio/ifunctioninfo.hpp clio/trunk/clio/clio/includeloop.hpp clio/trunk/clio/clio/linkedlist.cpp clio/trunk/clio/clio/linkedlist.hpp clio/trunk/clio/clio/macrorecursion.hpp clio/trunk/clio/clio/macros.cpp clio/trunk/clio/clio/macros.hpp clio/trunk/clio/clio/namemangling.cpp clio/trunk/clio/clio/namemangling.hpp clio/trunk/clio/clio/namespace.cpp clio/trunk/clio/clio/namespace.hpp clio/trunk/clio/clio/nocopy.cpp clio/trunk/clio/clio/nocopy.hpp clio/trunk/clio/clio/objectwrapper.cpp clio/trunk/clio/clio/objectwrapper.hpp clio/trunk/clio/clio/objectwrapperaware.cpp clio/trunk/clio/clio/objectwrapperaware.hpp clio/trunk/clio/clio/property.cpp clio/trunk/clio/clio/property.hpp clio/trunk/clio/clio/proxy.cpp clio/trunk/clio/clio/proxy.hpp clio/trunk/clio/clio/security.cpp clio/trunk/clio/clio/security.hpp clio/trunk/clio/clio/state.cpp clio/trunk/clio/clio/state.hpp clio/trunk/clio/clio/stateregistrator.cpp clio/trunk/clio/clio/stateregistrator.hpp clio/trunk/clio/clio/std_container.cpp clio/trunk/clio/clio/std_container.hpp clio/trunk/clio/clio/templatearglist.hpp clio/trunk/clio/clio/totype.hpp clio/trunk/clio/clio/typelist.hpp clio/trunk/clio/clio/typetraits.cpp clio/trunk/clio/clio/typetraits.hpp clio/trunk/clio/clio/virtual.hpp clio/trunk/clio/clio/virtual_base.hpp clio/trunk/clio/clio/virtual_helper.cpp clio/trunk/clio/clio/virtual_helper.hpp clio/trunk/clio/clio/virtual_nadic.hpp clio/trunk/clio/clio/virtual_single.hpp Removed Paths: ------------- clio/trunk/clio/clio/Makefile.am clio/trunk/clio/clio/argument_lists.hpp clio/trunk/clio/clio/argument_lists_undef.hpp clio/trunk/clio/clio/argumentquality.hpp clio/trunk/clio/clio/autoarray.cpp clio/trunk/clio/clio/autoarray.hpp clio/trunk/clio/clio/autoinstantiation.cpp clio/trunk/clio/clio/autoinstantiation.hpp clio/trunk/clio/clio/classinfo.cpp clio/trunk/clio/clio/classinfo.hpp clio/trunk/clio/clio/classname.cpp clio/trunk/clio/clio/classname.hpp clio/trunk/clio/clio/classregistrator.cpp clio/trunk/clio/clio/classregistrator.hpp clio/trunk/clio/clio/classregistratorset.cpp clio/trunk/clio/clio/classregistratorset.hpp clio/trunk/clio/clio/classstateinfo.cpp clio/trunk/clio/clio/classstateinfo.hpp clio/trunk/clio/clio/clio_config.hpp clio/trunk/clio/clio/codeinjection.cpp clio/trunk/clio/clio/codeinjection.hpp clio/trunk/clio/clio/dataconversion.cpp clio/trunk/clio/clio/dataconversion.hpp clio/trunk/clio/clio/dataconversion_extended.cpp clio/trunk/clio/clio/dataconversion_extended.hpp clio/trunk/clio/clio/enum.cpp clio/trunk/clio/clio/enum.hpp clio/trunk/clio/clio/error.cpp clio/trunk/clio/clio/error.hpp clio/trunk/clio/clio/factory.cpp clio/trunk/clio/clio/factory.hpp clio/trunk/clio/clio/forcesemicolon.hpp clio/trunk/clio/clio/function.hpp clio/trunk/clio/clio/function_single.hpp clio/trunk/clio/clio/functioninfo.cpp clio/trunk/clio/clio/functioninfo.hpp clio/trunk/clio/clio/functioninfo_nadic.hpp clio/trunk/clio/clio/functioninfo_single.hpp clio/trunk/clio/clio/functiontype_base.hpp clio/trunk/clio/clio/gcmarker.cpp clio/trunk/clio/clio/gcmarker.hpp clio/trunk/clio/clio/gcpointer.cpp clio/trunk/clio/clio/gcpointer.hpp clio/trunk/clio/clio/helptest.hpp clio/trunk/clio/clio/icaster.cpp clio/trunk/clio/clio/icaster.hpp clio/trunk/clio/clio/ichained.cpp clio/trunk/clio/clio/ichained.hpp clio/trunk/clio/clio/iclassinfo.cpp clio/trunk/clio/clio/iclassinfo.hpp clio/trunk/clio/clio/ifunctioninfo.cpp clio/trunk/clio/clio/ifunctioninfo.hpp clio/trunk/clio/clio/includeloop.hpp clio/trunk/clio/clio/linkedlist.cpp clio/trunk/clio/clio/linkedlist.hpp clio/trunk/clio/clio/macrorecursion.hpp clio/trunk/clio/clio/macros.cpp clio/trunk/clio/clio/macros.hpp clio/trunk/clio/clio/namemangling.cpp clio/trunk/clio/clio/namemangling.hpp clio/trunk/clio/clio/namespace.cpp clio/trunk/clio/clio/namespace.hpp clio/trunk/clio/clio/nocopy.cpp clio/trunk/clio/clio/nocopy.hpp clio/trunk/clio/clio/objectwrapper.cpp clio/trunk/clio/clio/objectwrapper.hpp clio/trunk/clio/clio/objectwrapperaware.cpp clio/trunk/clio/clio/objectwrapperaware.hpp clio/trunk/clio/clio/property.cpp clio/trunk/clio/clio/property.hpp clio/trunk/clio/clio/proxy.cpp clio/trunk/clio/clio/proxy.hpp clio/trunk/clio/clio/security.cpp clio/trunk/clio/clio/security.hpp clio/trunk/clio/clio/state.cpp clio/trunk/clio/clio/state.hpp clio/trunk/clio/clio/stateregistrator.cpp clio/trunk/clio/clio/stateregistrator.hpp clio/trunk/clio/clio/std_container.cpp clio/trunk/clio/clio/std_container.hpp clio/trunk/clio/clio/templatearglist.hpp clio/trunk/clio/clio/totype.hpp clio/trunk/clio/clio/typelist.hpp clio/trunk/clio/clio/typetraits.cpp clio/trunk/clio/clio/typetraits.hpp clio/trunk/clio/clio/virtual.hpp clio/trunk/clio/clio/virtual_base.hpp clio/trunk/clio/clio/virtual_helper.cpp clio/trunk/clio/clio/virtual_helper.hpp clio/trunk/clio/clio/virtual_nadic.hpp clio/trunk/clio/clio/virtual_single.hpp clio/trunk/clio/src/ Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 01:05:30.934999943 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: master + timestamp: 2008-02-23 01:10:30.246999979 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + clio src-20080222203757-y1e5vpr93avq2ya5-1 clio/nocopy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.cpp clio/error.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.cpp clio/macrorecursion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macrorecursion.hpp clio/linkedlist.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.cpp clio/factory.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.cpp clio/stateregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.hpp clio/objectwrapperaware.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.cpp clio/nocopy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.hpp clio/typetraits.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.hpp clio/virtual_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_base.hpp clio/functioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.hpp clio/namemangling.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.cpp clio/namespace.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.cpp clio/argument_lists.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists.hpp clio/ichained.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.hpp clio/function_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function_single.hpp clio/classstateinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.cpp clio/includeloop.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:includeloop.hpp clio/typelist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typelist.hpp clio/iclassinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.hpp clio/std_container.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.cpp clio/iclassinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.cpp clio/functioninfo_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_single.hpp clio/property.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.hpp clio/virtual_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_nadic.hpp clio/autoarray.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.hpp clio/functiontype_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functiontype_base.hpp clio/classinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.cpp clio/proxy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.hpp clio/dataconversion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.hpp clio/virtual_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_single.hpp clio/clio_config.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:clio_config.hpp clio/classname.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.cpp clio/gcmarker.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.cpp clio/proxy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.cpp clio/std_container.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.hpp clio/security.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.hpp clio/dataconversion.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.cpp clio/icaster.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.cpp clio/ichained.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.cpp clio/autoinstantiation.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.hpp clio/classregistratorset.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.hpp clio/functioninfo_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_nadic.hpp clio/codeinjection.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.cpp clio/namemangling.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.hpp clio/codeinjection.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.hpp clio/ifunctioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.cpp clio/linkedlist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.hpp clio/security.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.cpp clio/icaster.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.hpp clio/classstateinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.hpp clio/classregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.hpp clio/typetraits.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.cpp clio/function.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function.hpp clio/factory.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.hpp clio/classregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.cpp clio/macros.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.cpp clio/virtual.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual.hpp clio/property.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.cpp clio/state.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.cpp clio/objectwrapperaware.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.hpp clio/ifunctioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.hpp clio/functioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.cpp clio/stateregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.cpp clio/objectwrapper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.cpp clio/classinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.hpp clio/templatearglist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:templatearglist.hpp clio/state.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.hpp clio/macros.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.hpp clio/virtual_helper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.hpp clio/classname.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.hpp clio/forcesemicolon.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:forcesemicolon.hpp clio/autoarray.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.cpp clio/gcpointer.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.cpp clio/argument_lists_undef.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists_undef.hpp clio/virtual_helper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.cpp clio/error.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.hpp clio/namespace.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.hpp clio/Makefile.am makefile.am-20080222211634-7re12gmo7ct68f04-1 clio/gcmarker.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.hpp clio/totype.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:totype.hpp clio/objectwrapper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.hpp clio/enum.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.hpp clio/enum.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.cpp clio/autoinstantiation.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.cpp clio/dataconversion_extended.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.hpp clio/helptest.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:helptest.hpp clio/dataconversion_extended.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.cpp clio/classregistratorset.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.cpp clio/gcpointer.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.hpp clio/argumentquality.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argumentquality.hpp Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/Makefile.am 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,2 +1,2 @@ -SUBDIRS = src tests +SUBDIRS = clio tests Copied: clio/trunk/clio/clio (from rev 8071, clio/trunk/clio/src) Deleted: clio/trunk/clio/clio/Makefile.am =================================================================== --- clio/trunk/clio/src/Makefile.am 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/Makefile.am 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,93 +0,0 @@ -noinst_LIBRARIES = libclio.a - -libclio_a_SOURCES = \ -argument_lists.hpp\ -argument_lists_undef.hpp\ -argumentquality.hpp\ -autoarray.cpp\ -autoarray.hpp\ -autoinstantiation.cpp\ -autoinstantiation.hpp\ -classinfo.cpp\ -classinfo.hpp\ -classname.cpp\ -classname.hpp\ -classregistrator.cpp\ -classregistrator.hpp\ -classregistratorset.cpp\ -classregistratorset.hpp\ -classstateinfo.cpp\ -classstateinfo.hpp\ -clio_config.hpp\ -codeinjection.cpp\ -codeinjection.hpp\ -dataconversion.cpp\ -dataconversion_extended.cpp\ -dataconversion_extended.hpp\ -dataconversion.hpp\ -enum.cpp\ -enum.hpp\ -error.cpp\ -error.hpp\ -factory.cpp\ -factory.hpp\ -forcesemicolon.hpp\ -function.hpp\ -functioninfo.cpp\ -functioninfo.hpp\ -functioninfo_nadic.hpp\ -functioninfo_single.hpp\ -function_single.hpp\ -functiontype_base.hpp\ -gcmarker.cpp\ -gcmarker.hpp\ -gcpointer.cpp\ -gcpointer.hpp\ -helptest.hpp\ -icaster.cpp\ -icaster.hpp\ -ichained.cpp\ -ichained.hpp\ -iclassinfo.cpp\ -iclassinfo.hpp\ -ifunctioninfo.cpp\ -ifunctioninfo.hpp\ -includeloop.hpp\ -linkedlist.cpp\ -linkedlist.hpp\ -macrorecursion.hpp\ -macros.cpp\ -macros.hpp\ -namemangling.cpp\ -namemangling.hpp\ -namespace.cpp\ -namespace.hpp\ -nocopy.cpp\ -nocopy.hpp\ -objectwrapperaware.cpp\ -objectwrapperaware.hpp\ -objectwrapper.cpp\ -objectwrapper.hpp\ -property.cpp\ -property.hpp\ -proxy.cpp\ -proxy.hpp\ -security.cpp\ -security.hpp\ -state.cpp\ -state.hpp\ -stateregistrator.cpp\ -stateregistrator.hpp\ -std_container.cpp\ -std_container.hpp\ -templatearglist.hpp\ -totype.hpp\ -typelist.hpp\ -typetraits.cpp\ -typetraits.hpp\ -virtual_base.hpp\ -virtual_helper.cpp\ -virtual_helper.hpp\ -virtual.hpp\ -virtual_nadic.hpp\ -virtual_single.hpp Copied: clio/trunk/clio/clio/Makefile.am (from rev 8071, clio/trunk/clio/src/Makefile.am) =================================================================== --- clio/trunk/clio/clio/Makefile.am (rev 0) +++ clio/trunk/clio/clio/Makefile.am 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,93 @@ +noinst_LIBRARIES = libclio.a + +libclio_a_SOURCES = \ +argument_lists.hpp\ +argument_lists_undef.hpp\ +argumentquality.hpp\ +autoarray.cpp\ +autoarray.hpp\ +autoinstantiation.cpp\ +autoinstantiation.hpp\ +classinfo.cpp\ +classinfo.hpp\ +classname.cpp\ +classname.hpp\ +classregistrator.cpp\ +classregistrator.hpp\ +classregistratorset.cpp\ +classregistratorset.hpp\ +classstateinfo.cpp\ +classstateinfo.hpp\ +clio_config.hpp\ +codeinjection.cpp\ +codeinjection.hpp\ +dataconversion.cpp\ +dataconversion_extended.cpp\ +dataconversion_extended.hpp\ +dataconversion.hpp\ +enum.cpp\ +enum.hpp\ +error.cpp\ +error.hpp\ +factory.cpp\ +factory.hpp\ +forcesemicolon.hpp\ +function.hpp\ +functioninfo.cpp\ +functioninfo.hpp\ +functioninfo_nadic.hpp\ +functioninfo_single.hpp\ +function_single.hpp\ +functiontype_base.hpp\ +gcmarker.cpp\ +gcmarker.hpp\ +gcpointer.cpp\ +gcpointer.hpp\ +helptest.hpp\ +icaster.cpp\ +icaster.hpp\ +ichained.cpp\ +ichained.hpp\ +iclassinfo.cpp\ +iclassinfo.hpp\ +ifunctioninfo.cpp\ +ifunctioninfo.hpp\ +includeloop.hpp\ +linkedlist.cpp\ +linkedlist.hpp\ +macrorecursion.hpp\ +macros.cpp\ +macros.hpp\ +namemangling.cpp\ +namemangling.hpp\ +namespace.cpp\ +namespace.hpp\ +nocopy.cpp\ +nocopy.hpp\ +objectwrapperaware.cpp\ +objectwrapperaware.hpp\ +objectwrapper.cpp\ +objectwrapper.hpp\ +property.cpp\ +property.hpp\ +proxy.cpp\ +proxy.hpp\ +security.cpp\ +security.hpp\ +state.cpp\ +state.hpp\ +stateregistrator.cpp\ +stateregistrator.hpp\ +std_container.cpp\ +std_container.hpp\ +templatearglist.hpp\ +totype.hpp\ +typelist.hpp\ +typetraits.cpp\ +typetraits.hpp\ +virtual_base.hpp\ +virtual_helper.cpp\ +virtual_helper.hpp\ +virtual.hpp\ +virtual_nadic.hpp\ +virtual_single.hpp Deleted: clio/trunk/clio/clio/argument_lists.hpp =================================================================== --- clio/trunk/clio/src/argument_lists.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/argument_lists.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,40 +0,0 @@ -/* Header that generates macros for various argument lists with numerated types. When including this, - CLIO_MACRORECURSION should be set to to the CLIO_MACRORECURSION<N> macro from macrorecursion.hpp - that corresponds to the numeber of arguments you want to have in the list. - - Since this header does not depend on anything, you should include it outside of any namespace scope - relative at the beginning of your files. - Also, note that there is no include guard. This header is supposed to be included multiple times. - - This header is not for manual inclusion by the user. -*/ - -// construct the various lists of types and argument names of the N function arguments -// The arguments are numerated from last to first, because the TypeList can only -// be constructed that way. - -// this gives the list of template arguments, for example ", class T3, class T2, class T1" -#define CLIO_TYPELIST_ARG_HEAD(N) , class T##N -#define CLIO_TYPELIST_ARG_TAIL(N) -#define CLIO_TYPELIST_ARG_START(N) , class T1 -#define CLIO_TYPELIST_ARG CLIO_MACRORECURSION(CLIO_TYPELIST_ARG_HEAD,CLIO_TYPELIST_ARG_TAIL,CLIO_TYPELIST_ARG_START,CLIO_ZERO) - -// this gives the typelist representing the template arguments, for example "TypeList<T3, TypeList<T2>, TypeList<T3> > >" -#define CLIO_TYPELIST_HEAD(N) clio::TypeList<T##N, -#define CLIO_TYPELIST_TAIL(N) > -#define CLIO_TYPELIST_START(N) TypeList<T1> -#define CLIO_TYPELIST_ZERO(N) TypeListEmpty -#define CLIO_TYPELIST_FIXED CLIO_MACRORECURSION(CLIO_TYPELIST_HEAD,CLIO_TYPELIST_TAIL,CLIO_TYPELIST_START,CLIO_TYPELIST_ZERO) - -// this defines the arguments a function is declared with, for example "T3 a3, T2 a2, T1 a2" -#define CLIO_TYPELIST_FUNCARG_HEAD(N) T##N a##N, -#define CLIO_TYPELIST_FUNCARG_TAIL(N) -#define CLIO_TYPELIST_FUNCARG_START(N) T1 a1 -#define CLIO_TYPELIST_FUNCARG CLIO_MACRORECURSION(CLIO_TYPELIST_FUNCARG_HEAD,CLIO_TYPELIST_FUNCARG_TAIL,CLIO_TYPELIST_FUNCARG_START,CLIO_ZERO) - -// this defines the arguments of the function as they are passed on, for example "a3, a2, a1" -#define CLIO_FUNCARGS_HEAD(N) a##N, -#define CLIO_FUNCARGS_TAIL(N) -#define CLIO_FUNCARGS_START(N) a1 -#define CLIO_FUNCARGS CLIO_MACRORECURSION(CLIO_FUNCARGS_HEAD,CLIO_FUNCARGS_TAIL,CLIO_FUNCARGS_START,CLIO_ZERO) - Copied: clio/trunk/clio/clio/argument_lists.hpp (from rev 8071, clio/trunk/clio/src/argument_lists.hpp) =================================================================== --- clio/trunk/clio/clio/argument_lists.hpp (rev 0) +++ clio/trunk/clio/clio/argument_lists.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,40 @@ +/* Header that generates macros for various argument lists with numerated types. When including this, + CLIO_MACRORECURSION should be set to to the CLIO_MACRORECURSION<N> macro from macrorecursion.hpp + that corresponds to the numeber of arguments you want to have in the list. + + Since this header does not depend on anything, you should include it outside of any namespace scope + relative at the beginning of your files. + Also, note that there is no include guard. This header is supposed to be included multiple times. + + This header is not for manual inclusion by the user. +*/ + +// construct the various lists of types and argument names of the N function arguments +// The arguments are numerated from last to first, because the TypeList can only +// be constructed that way. + +// this gives the list of template arguments, for example ", class T3, class T2, class T1" +#define CLIO_TYPELIST_ARG_HEAD(N) , class T##N +#define CLIO_TYPELIST_ARG_TAIL(N) +#define CLIO_TYPELIST_ARG_START(N) , class T1 +#define CLIO_TYPELIST_ARG CLIO_MACRORECURSION(CLIO_TYPELIST_ARG_HEAD,CLIO_TYPELIST_ARG_TAIL,CLIO_TYPELIST_ARG_START,CLIO_ZERO) + +// this gives the typelist representing the template arguments, for example "TypeList<T3, TypeList<T2>, TypeList<T3> > >" +#define CLIO_TYPELIST_HEAD(N) clio::TypeList<T##N, +#define CLIO_TYPELIST_TAIL(N) > +#define CLIO_TYPELIST_START(N) TypeList<T1> +#define CLIO_TYPELIST_ZERO(N) TypeListEmpty +#define CLIO_TYPELIST_FIXED CLIO_MACRORECURSION(CLIO_TYPELIST_HEAD,CLIO_TYPELIST_TAIL,CLIO_TYPELIST_START,CLIO_TYPELIST_ZERO) + +// this defines the arguments a function is declared with, for example "T3 a3, T2 a2, T1 a2" +#define CLIO_TYPELIST_FUNCARG_HEAD(N) T##N a##N, +#define CLIO_TYPELIST_FUNCARG_TAIL(N) +#define CLIO_TYPELIST_FUNCARG_START(N) T1 a1 +#define CLIO_TYPELIST_FUNCARG CLIO_MACRORECURSION(CLIO_TYPELIST_FUNCARG_HEAD,CLIO_TYPELIST_FUNCARG_TAIL,CLIO_TYPELIST_FUNCARG_START,CLIO_ZERO) + +// this defines the arguments of the function as they are passed on, for example "a3, a2, a1" +#define CLIO_FUNCARGS_HEAD(N) a##N, +#define CLIO_FUNCARGS_TAIL(N) +#define CLIO_FUNCARGS_START(N) a1 +#define CLIO_FUNCARGS CLIO_MACRORECURSION(CLIO_FUNCARGS_HEAD,CLIO_FUNCARGS_TAIL,CLIO_FUNCARGS_START,CLIO_ZERO) + Deleted: clio/trunk/clio/clio/argument_lists_undef.hpp =================================================================== --- clio/trunk/clio/src/argument_lists_undef.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/argument_lists_undef.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,23 +0,0 @@ -// undefines the macros defined in argument_list.hpp - -#undef CLIO_TYPELIST_ARG_HEAD -#undef CLIO_TYPELIST_ARG_TAIL -#undef CLIO_TYPELIST_ARG_START -#undef CLIO_TYPELIST_ARG - -#undef CLIO_TYPELIST_HEAD -#undef CLIO_TYPELIST_TAIL -#undef CLIO_TYPELIST_START -#undef CLIO_TYPELIST_ZERO -#undef CLIO_TYPELIST_FIXED - -#undef CLIO_TYPELIST_FUNCARG_HEAD -#undef CLIO_TYPELIST_FUNCARG_TAIL -#undef CLIO_TYPELIST_FUNCARG_START -#undef CLIO_TYPELIST_FUNCARG - -#undef CLIO_FUNCARGS_HEAD -#undef CLIO_FUNCARGS_TAIL -#undef CLIO_FUNCARGS_START -#undef CLIO_FUNCARGS - Copied: clio/trunk/clio/clio/argument_lists_undef.hpp (from rev 8071, clio/trunk/clio/src/argument_lists_undef.hpp) =================================================================== --- clio/trunk/clio/clio/argument_lists_undef.hpp (rev 0) +++ clio/trunk/clio/clio/argument_lists_undef.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,23 @@ +// undefines the macros defined in argument_list.hpp + +#undef CLIO_TYPELIST_ARG_HEAD +#undef CLIO_TYPELIST_ARG_TAIL +#undef CLIO_TYPELIST_ARG_START +#undef CLIO_TYPELIST_ARG + +#undef CLIO_TYPELIST_HEAD +#undef CLIO_TYPELIST_TAIL +#undef CLIO_TYPELIST_START +#undef CLIO_TYPELIST_ZERO +#undef CLIO_TYPELIST_FIXED + +#undef CLIO_TYPELIST_FUNCARG_HEAD +#undef CLIO_TYPELIST_FUNCARG_TAIL +#undef CLIO_TYPELIST_FUNCARG_START +#undef CLIO_TYPELIST_FUNCARG + +#undef CLIO_FUNCARGS_HEAD +#undef CLIO_FUNCARGS_TAIL +#undef CLIO_FUNCARGS_START +#undef CLIO_FUNCARGS + Deleted: clio/trunk/clio/clio/argumentquality.hpp =================================================================== --- clio/trunk/clio/src/argumentquality.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/argumentquality.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,149 +0,0 @@ -#ifndef CLIO_ARGUMENTQUALITY_H -#define CLIO_ARGUMENTQUALITY_H - -namespace clio -{ - -template< class T > class GCPointer; - -// inheritend badness of accepted arguments -template< class T > struct ArgumentBadness -{ - enum { Badness = 0 }; -}; - -// const types of complex types are bad, const types of primitives are good -template< class T > struct ArgumentBadness< const T > -{ - enum { Badness = ArgumentBadness<T>::Badness + ( TestPrimitive<T>::IsPrimitive ? -1 : +1 ) }; -}; - -// references to primitives are bad -template< class T > struct ArgumentBadness< T & > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 100 + ArgumentBadness<T>::Badness }; -}; - -// smart pointers are also not favored -template< class T > struct ArgumentBadness< GCPointer< T > > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 200 + ArgumentBadness<T>::Badness + 10 }; -}; - -// pointers to primitives are worst -template< class T > struct ArgumentBadness< T * > -{ - enum { Badness = TestPrimitive<T>::IsPrimitive * 400 + ArgumentBadness<T>::Badness + 20 }; -}; - -#define CLIO_BAD_ARGUMENT( TYPE, BADNESS ) \ -template<> struct ArgumentBadness< TYPE >{ enum { Badness = BADNESS }; } - -#define CLIO_BAD_ARGUMENT_INT( TYPE, BADNESS ) \ -CLIO_BAD_ARGUMENT( TYPE, BADNESS ); \ -CLIO_BAD_ARGUMENT( unsigned TYPE, BADNESS + 2 ) - -// IoObject. Only in emergencies. -CLIO_BAD_ARGUMENT( IoObject, 1000 ); - -// voids. Very bad. -CLIO_BAD_ARGUMENT( void, 10000 ); - -// Io knows only doubles, so prefer doubles to floats -CLIO_BAD_ARGUMENT( float, 2 ); - -// various ints are also bad. The smaller, the worse. -CLIO_BAD_ARGUMENT_INT( long int, 6 ); -CLIO_BAD_ARGUMENT_INT( int, 10 ); -CLIO_BAD_ARGUMENT_INT( short int, 14 ); -CLIO_BAD_ARGUMENT_INT( char, 18 ); - -// struct giving the quality of an argument, used to select function overloads -struct ArgumentQuality -{ - enum QualityClass - { - Quality_Perfect = 0, // all arguments are perfect fits - Quality_Upcast, // a C++ argument is given of a derived class of the expected class - Quality_Conversion, // conversion is required - Quality_NoMatch, // can't match - Quality_Max - }; - - QualityClass quality; // the type of the mismatch - int conversionSteps; // the number of conversion steps required for the conversion - int badness; // inheritent badness of target type - - // compares this with other. Returns +1 if this is better, -1 if other is better, 0 if - // they are equal. - int Compare( ArgumentQuality const & other ) const - { - if ( quality < other.quality ) - return +1; - if ( quality > other.quality ) - return -1; - - if ( conversionSteps < other.conversionSteps ) - return +1; - if ( conversionSteps > other.conversionSteps ) - return -1; - - if ( badness < other.badness ) - return +1; - if ( badness > other.badness ) - return -1; - - return 0; - } - - ArgumentQuality() - : quality( Quality_Perfect ) - , conversionSteps( 0 ) - , badness( 0 ) - {} -}; - -struct ArgumentTotalQuality: public ArgumentQuality -{ - int argument; // the number of the argument with the worst mismatch - - int Compare( ArgumentTotalQuality const & other ) const - { - // the quality class counts most - if ( quality < other.quality ) - return +1; - if ( quality > other.quality ) - return -1; - - // a mismatch in a later argument is better - if ( argument > other.argument ) - return +1; - if ( argument < other.argument ) - return -1; - - // only after all that, the number of conversion steps is taken into account - if ( conversionSteps < other.conversionSteps ) - return +1; - if ( conversionSteps > other.conversionSteps ) - return -1; - - if ( badness < other.badness ) - return +1; - if ( badness > other.badness ) - return -1; - - return 0; - } - - ArgumentTotalQuality() - : argument(-1) - {} - - ArgumentTotalQuality( ArgumentQuality const & quality, int argnum ) - : ArgumentQuality( quality ), argument( argnum ) - {} -}; - -} - -#endif Copied: clio/trunk/clio/clio/argumentquality.hpp (from rev 8071, clio/trunk/clio/src/argumentquality.hpp) =================================================================== --- clio/trunk/clio/clio/argumentquality.hpp (rev 0) +++ clio/trunk/clio/clio/argumentquality.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,149 @@ +#ifndef CLIO_ARGUMENTQUALITY_H +#define CLIO_ARGUMENTQUALITY_H + +namespace clio +{ + +template< class T > class GCPointer; + +// inheritend badness of accepted arguments +template< class T > struct ArgumentBadness +{ + enum { Badness = 0 }; +}; + +// const types of complex types are bad, const types of primitives are good +template< class T > struct ArgumentBadness< const T > +{ + enum { Badness = ArgumentBadness<T>::Badness + ( TestPrimitive<T>::IsPrimitive ? -1 : +1 ) }; +}; + +// references to primitives are bad +template< class T > struct ArgumentBadness< T & > +{ + enum { Badness = TestPrimitive<T>::IsPrimitive * 100 + ArgumentBadness<T>::Badness }; +}; + +// smart pointers are also not favored +template< class T > struct ArgumentBadness< GCPointer< T > > +{ + enum { Badness = TestPrimitive<T>::IsPrimitive * 200 + ArgumentBadness<T>::Badness + 10 }; +}; + +// pointers to primitives are worst +template< class T > struct ArgumentBadness< T * > +{ + enum { Badness = TestPrimitive<T>::IsPrimitive * 400 + ArgumentBadness<T>::Badness + 20 }; +}; + +#define CLIO_BAD_ARGUMENT( TYPE, BADNESS ) \ +template<> struct ArgumentBadness< TYPE >{ enum { Badness = BADNESS }; } + +#define CLIO_BAD_ARGUMENT_INT( TYPE, BADNESS ) \ +CLIO_BAD_ARGUMENT( TYPE, BADNESS ); \ +CLIO_BAD_ARGUMENT( unsigned TYPE, BADNESS + 2 ) + +// IoObject. Only in emergencies. +CLIO_BAD_ARGUMENT( IoObject, 1000 ); + +// voids. Very bad. +CLIO_BAD_ARGUMENT( void, 10000 ); + +// Io knows only doubles, so prefer doubles to floats +CLIO_BAD_ARGUMENT( float, 2 ); + +// various ints are also bad. The smaller, the worse. +CLIO_BAD_ARGUMENT_INT( long int, 6 ); +CLIO_BAD_ARGUMENT_INT( int, 10 ); +CLIO_BAD_ARGUMENT_INT( short int, 14 ); +CLIO_BAD_ARGUMENT_INT( char, 18 ); + +// struct giving the quality of an argument, used to select function overloads +struct ArgumentQuality +{ + enum QualityClass + { + Quality_Perfect = 0, // all arguments are perfect fits + Quality_Upcast, // a C++ argument is given of a derived class of the expected class + Quality_Conversion, // conversion is required + Quality_NoMatch, // can't match + Quality_Max + }; + + QualityClass quality; // the type of the mismatch + int conversionSteps; // the number of conversion steps required for the conversion + int badness; // inheritent badness of target type + + // compares this with other. Returns +1 if this is better, -1 if other is better, 0 if + // they are equal. + int Compare( ArgumentQuality const & other ) const + { + if ( quality < other.quality ) + return +1; + if ( quality > other.quality ) + return -1; + + if ( conversionSteps < other.conversionSteps ) + return +1; + if ( conversionSteps > other.conversionSteps ) + return -1; + + if ( badness < other.badness ) + return +1; + if ( badness > other.badness ) + return -1; + + return 0; + } + + ArgumentQuality() + : quality( Quality_Perfect ) + , conversionSteps( 0 ) + , badness( 0 ) + {} +}; + +struct ArgumentTotalQuality: public ArgumentQuality +{ + int argument; // the number of the argument with the worst mismatch + + int Compare( ArgumentTotalQuality const & other ) const + { + // the quality class counts most + if ( quality < other.quality ) + return +1; + if ( quality > other.quality ) + return -1; + + // a mismatch in a later argument is better + if ( argument > other.argument ) + return +1; + if ( argument < other.argument ) + return -1; + + // only after all that, the number of conversion steps is taken into account + if ( conversionSteps < other.conversionSteps ) + return +1; + if ( conversionSteps > other.conversionSteps ) + return -1; + + if ( badness < other.badness ) + return +1; + if ( badness > other.badness ) + return -1; + + return 0; + } + + ArgumentTotalQuality() + : argument(-1) + {} + + ArgumentTotalQuality( ArgumentQuality const & quality, int argnum ) + : ArgumentQuality( quality ), argument( argnum ) + {} +}; + +} + +#endif Deleted: clio/trunk/clio/clio/autoarray.cpp =================================================================== --- clio/trunk/clio/src/autoarray.cpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/autoarray.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1 +0,0 @@ -#include "autoarray.hpp" Copied: clio/trunk/clio/clio/autoarray.cpp (from rev 8071, clio/trunk/clio/src/autoarray.cpp) =================================================================== --- clio/trunk/clio/clio/autoarray.cpp (rev 0) +++ clio/trunk/clio/clio/autoarray.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1 @@ +#include "autoarray.hpp" Deleted: clio/trunk/clio/clio/autoarray.hpp =================================================================== --- clio/trunk/clio/src/autoarray.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/autoarray.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,33 +0,0 @@ -#ifndef CLIO_AUTOARRAY_H -#define CLIO_AUTOARRAY_H - -#include "nocopy.hpp" -#include <set> - -namespace clio -{ -// array of stuff that is supposed to get automatically deleted later -template< class T > class AutoArray: public NoCopy -{ -public: - typedef std::set< T * > Array; // type to store the items - - ~AutoArray() - { - // delete all passed pointers - for ( typename Array::iterator iter = array_.begin(); iter != array_.end(); ++iter ) - delete( *iter ); - } - - // add an object for later deletion - void Add( T * item ) - { - array_.insert( item ); - } -private: - Array array_; // the data -}; - -} - -#endif Copied: clio/trunk/clio/clio/autoarray.hpp (from rev 8071, clio/trunk/clio/src/autoarray.hpp) =================================================================== --- clio/trunk/clio/clio/autoarray.hpp (rev 0) +++ clio/trunk/clio/clio/autoarray.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,33 @@ +#ifndef CLIO_AUTOARRAY_H +#define CLIO_AUTOARRAY_H + +#include "nocopy.hpp" +#include <set> + +namespace clio +{ +// array of stuff that is supposed to get automatically deleted later +template< class T > class AutoArray: public NoCopy +{ +public: + typedef std::set< T * > Array; // type to store the items + + ~AutoArray() + { + // delete all passed pointers + for ( typename Array::iterator iter = array_.begin(); iter != array_.end(); ++iter ) + delete( *iter ); + } + + // add an object for later deletion + void Add( T * item ) + { + array_.insert( item ); + } +private: + Array array_; // the data +}; + +} + +#endif Deleted: clio/trunk/clio/clio/autoinstantiation.cpp =================================================================== --- clio/trunk/clio/src/autoinstantiation.cpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/autoinstantiation.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,5 +0,0 @@ -#include "autoinstantiation.hpp" - -namespace clio -{ -} Copied: clio/trunk/clio/clio/autoinstantiation.cpp (from rev 8071, clio/trunk/clio/src/autoinstantiation.cpp) =================================================================== --- clio/trunk/clio/clio/autoinstantiation.cpp (rev 0) +++ clio/trunk/clio/clio/autoinstantiation.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,5 @@ +#include "autoinstantiation.hpp" + +namespace clio +{ +} Deleted: clio/trunk/clio/clio/autoinstantiation.hpp =================================================================== --- clio/trunk/clio/src/autoinstantiation.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/autoinstantiation.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,60 +0,0 @@ -#ifndef CLIO_AUTOINSTANTIATION_H -#define CLIO_AUTOINSTANTIATION_H - -#include "clio_config.hpp" - -namespace clio -{ - -// objects of this template class handle the instantiation of the template. That -// is a two stage process, the call triggered here instantiates another static object -// that does the registration call in its constructor. That way, the registration -// happens only once. - -struct InstantiatorDummy -{ - // the constructor is getting specialized - inline InstantiatorDummy(){}; -}; - -template< class T > struct Instantiator: public InstantiatorDummy{}; - -// same for template instantiations ( only here so we don't have to generate a new name later ) -template< class T > struct InstantiatorTemplate: public InstantiatorDummy{}; - -// this class makes sure that one object of class T exists if you -// call the static method Instantiate() from anywhere. Alternatively, -// explicitly instantiating the whole template also works. -template< class T > -class InstantiatorHelperReal: public T -{ -public: - static inline void Instantiate(){ instantiator_.InstantiateNonStatic(); } - -private: - // this function does nothing, but calling it triggers the generation of the object - inline void InstantiateNonStatic(){} - - static InstantiatorHelperReal instantiator_; -}; - -template< class T > -InstantiatorHelperReal<T> InstantiatorHelperReal<T>::instantiator_; - -// this class fakes that, doing nothing -struct InstantiatorHelperFake -{ - static inline void Instantiate(){} -}; - -// this class gets specialized whenever Instantiator is specialized to -// be derived of InstantiatorHelperReal so real work is done then. -template< class T > -struct InstantiatorHelper: public InstantiatorHelperFake{}; - -// this class is actually used all over the place -template< class T > struct AutoInstantiator: public InstantiatorHelper< Instantiator< T > >{}; - -} - -#endif Copied: clio/trunk/clio/clio/autoinstantiation.hpp (from rev 8071, clio/trunk/clio/src/autoinstantiation.hpp) =================================================================== --- clio/trunk/clio/clio/autoinstantiation.hpp (rev 0) +++ clio/trunk/clio/clio/autoinstantiation.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,60 @@ +#ifndef CLIO_AUTOINSTANTIATION_H +#define CLIO_AUTOINSTANTIATION_H + +#include "clio_config.hpp" + +namespace clio +{ + +// objects of this template class handle the instantiation of the template. That +// is a two stage process, the call triggered here instantiates another static object +// that does the registration call in its constructor. That way, the registration +// happens only once. + +struct InstantiatorDummy +{ + // the constructor is getting specialized + inline InstantiatorDummy(){}; +}; + +template< class T > struct Instantiator: public InstantiatorDummy{}; + +// same for template instantiations ( only here so we don't have to generate a new name later ) +template< class T > struct InstantiatorTemplate: public InstantiatorDummy{}; + +// this class makes sure that one object of class T exists if you +// call the static method Instantiate() from anywhere. Alternatively, +// explicitly instantiating the whole template also works. +template< class T > +class InstantiatorHelperReal: public T +{ +public: + static inline void Instantiate(){ instantiator_.InstantiateNonStatic(); } + +private: + // this function does nothing, but calling it triggers the generation of the object + inline void InstantiateNonStatic(){} + + static InstantiatorHelperReal instantiator_; +}; + +template< class T > +InstantiatorHelperReal<T> InstantiatorHelperReal<T>::instantiator_; + +// this class fakes that, doing nothing +struct InstantiatorHelperFake +{ + static inline void Instantiate(){} +}; + +// this class gets specialized whenever Instantiator is specialized to +// be derived of InstantiatorHelperReal so real work is done then. +template< class T > +struct InstantiatorHelper: public InstantiatorHelperFake{}; + +// this class is actually used all over the place +template< class T > struct AutoInstantiator: public InstantiatorHelper< Instantiator< T > >{}; + +} + +#endif Deleted: clio/trunk/clio/clio/classinfo.cpp =================================================================== --- clio/trunk/clio/src/classinfo.cpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/classinfo.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,13 +0,0 @@ -#include "classinfo.hpp" - -namespace clio -{ - -// returns the size of the wrapped object -template<> -size_t ClassInfo<void>::DoGetSize() const CLIO_NOTHROW -{ - return 0; -} - -} Copied: clio/trunk/clio/clio/classinfo.cpp (from rev 8071, clio/trunk/clio/src/classinfo.cpp) =================================================================== --- clio/trunk/clio/clio/classinfo.cpp (rev 0) +++ clio/trunk/clio/clio/classinfo.cpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,13 @@ +#include "classinfo.hpp" + +namespace clio +{ + +// returns the size of the wrapped object +template<> +size_t ClassInfo<void>::DoGetSize() const CLIO_NOTHROW +{ + return 0; +} + +} Deleted: clio/trunk/clio/clio/classinfo.hpp =================================================================== --- clio/trunk/clio/src/classinfo.hpp 2008-02-23 00:18:48 UTC (rev 8071) +++ clio/trunk/clio/clio/classinfo.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -1,248 +0,0 @@ -#ifndef CLIO_CLASSINFO_H -#define CLIO_CLASSINFO_H - -#include "iclassinfo.hpp" -#include "totype.hpp" -#include "classname.hpp" -#include "objectwrapperaware.hpp" -#include "forcesemicolon.hpp" -#include "factory.hpp" -#include "icaster.hpp" -#include "typetraits.hpp" -#include "autoinstantiation.hpp" -#include <string> - -// implementation - -#include <assert.h> -#include <typeinfo> - -namespace clio -{ - -template< class T > -class ClassInfo: public IClassInfo -{ -public: - // this is a singleton class - static ClassInfo & Get() CLIO_NOTHROW; - - // extracts the object managed by this class - T * ExtractObject( ObjectWrapper & wrapper ) const CLIO_NOTHROW - { - // delegate and cast - return static_cast< T * >( IClassInfo::ExtractObject( wrapper ) ); - } - - // extracts the object managed by this class - T * ExtractObject( ObjectWrapper & wrapper, int & casts ) const CLIO_NOTHROW - { - // delegate and cast - return static_cast< T * >( IClassInfo::ExtractObject( wrapper, casts ) ); - } - - // really create default consructor factory - template< class DERIVED > - void CreateDefaultConstructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetCreate( CreateFactoryCreate< T, DERIVED >( a, b ) ); - } - - // pretend to create default consructor factory - template< class DERIVED > - void CreateDefaultConstructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetCreate( 0 ); - } - - // really create copy consructor factory - template< class DERIVED > - void CreateCopyConstructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetClone( CreateFactoryClone< T, DERIVED >( a, b ) ); - } - - // pretend to create copy consructor factory - template< class DERIVED > - void CreateCopyConstructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetClone( 0 ); - } - - // really create destructor factory - void CreateDestructor( BoolToType< true > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - T const * a = 0; - TypeToType<T> const * b = 0; - factory.SetDestroy( CreateFactoryDestroy< T, T >( a, b ) ); - } - - // pretend to create destructor factory - void CreateDestructor( BoolToType< false > legal ) - { - assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); - FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); - - factory.SetDestroy( 0 ); - } - -private: - // returns the size of the wrapped object - virtual size_t DoGetSize() const CLIO_NOTHROW - { - return sizeof(T); - } - - // checks if wrapper wraps an ObjectWrapperAware object , and if yes, informs it. - virtual void DoSetAwareObject( ObjectWrapper & wrapper ) const CLIO_NOTHROW - { - wrapper.SetAwareObject( ExtractObject( wrapper ) ); - } - - ClassInfo() - { - SetNameGetter( Name_Template , classname::ClassNameDefaultGetter< T, Name_Template >::Get ); - SetNameGetter( Name_C , classname::ClassNameDefaultGetter< T, Name_C >::Get ); - SetNameGetter( Name_IoComplete, classname::ClassNameDefaultGetter< T, Name_IoComplete >::Get ); - // GetName( Name_Template ); - - // instantiate (sneaky recursion: if anyone instantiates this template, - // the code below triggers the clio glue instantiation, which makes this - // constructor acutally get called exactly once) - AutoInstantiator< T >::Instantiate(); - } - - // object creator - static IoObject * CreateStatic( IoState * state ) - { - return Get().Create( state ); - } - - virtual IoStateProtoFunc * DoGetStateProtoFunc() const CLIO_NOTHROW - { - return (IoStateProtoFunc *)&CreateStatic; - } -}; - -template< class DERIVED, class BASE > class StaticCaster: public ICaster -{ -public: - StaticCaster() CLIO_NOTHROW - : ICaster( &ClassInfo< DERIVED >::Get(), &ClassInfo< BASE >::Get() ) - {} - - virtual void * DoCast ( void * source ) const CLIO_NOTHROW - { - // simple upcast - DERIVED * derived = static_cast< DERIVED * >( source ); - BASE * base = static_cast< BASE * >( derived ); - return base; - } - - virtual void * DoCastBack ( void * source ) const CLIO_NOTHROW - { - // downcast not possible - return NULL; - } -}; - -template< class DERIVED, class BASE > class Caster: public StaticCaster< DERIVED, BASE > -{ -public: - Caster() - {} - - virtual void * DoCastBack ( void * source ) const CLIO_NOTHROW - { - // downcast - BASE * base = static_cast< BASE * >( source ); - - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv - DERIVED * derived = dynamic_cast< DERIVED * >( base ); - // vvvvvvvv READ BELOW IF THIS LINE GIVES AN ERROR vvvvvvvvvvv -/* - If you get an error here, saying something like - " cannot dynamic_cast `base' (of type `class BASE*') to type `class DERIVED*' - (source type is not polymorphic), " - you were using the CLIO_CLASS_BASE macro on non-polymorphic types. Either give - your designed base class at least one virtual function (preferably the destructor) - or use CLIO_CLASS_SET_POLYMORPHIC( BASE, false ) to inform clio about the lack of - virtual functions in BASE. -*/ - - return derived; - } -}; - -// ClassInfo is a singleton class -template< class T > -ClassInfo<T> & ClassInfo<T>::Get() CLIO_NOTHROW -{ -// set to 0 to disable class specific code generation -#if 1 - // instead of the complicated template, we could just - // write ClassInfo. But this way, we catch errors where - // ClassInfo is instantiated with const types. - static ClassInfo< typename TestConst< T >::NoConst > info; - return info; -#else - return *(ClassInfo *)0; -#endif -} - -// register a polymorphic (dynamic casts work) superclass/subclass relationship -template< class DERIVED, class BASE > void RegisterBaseClass( BoolToType< true > polymorphic ) CLIO_NOTHROW -{ - static Caster< DERIVED, BASE > caster; - - ClassInfo< DERIVED >::Get().RegisterBaseClass( ClassInfo< BASE >::Get(), &caster ); -} - -// register a superclass/subclass relationship. No dynamic casts here. -template< class DERIVED, class BASE > void RegisterBaseClass( BoolToType< false > polymorphic ) CLIO_NOTHROW -{ - static StaticCaster< DERIVED, BASE > caster; - - ClassInfo< DERIVED >::Get().RegisterBaseClass( ClassInfo< BASE >::Get(), &caster ); -} - -template< class DERIVED, class BASE > void RegisterBaseClass() CLIO_NOTHROW -{ - // usually, testing BASE for polymorphism should be enough; however, a corner case is - // that BASE may not have the sticky properties solidified, but DERIVED has, then the - // test on DERIVED is more reliable. - RegisterBaseClass< DERIVED, BASE >( TypeAnd( CLIO_CLASS_GET_POLYMORPHIC( BASE ), CLIO_CLASS_GET_POLYMORPHIC( DERIVED ) ) ); -} - -// register a nesting parent class -template< class INNER, class OUTER > void RegisterNestingParentClass() CLIO_NOTHROW -{ - ClassInfo< INNER >::Get().SetNestingParent( &ClassInfo< OUTER >::Get() ); -} - -// returns the size of the wrapped object, specialized for voids. -template<> -size_t ClassInfo<void>::DoGetSize() const CLIO_NOTHROW; - -} - -#endif Copied: clio/trunk/clio/clio/classinfo.hpp (from rev 8071, clio/trunk/clio/src/classinfo.hpp) =================================================================== --- clio/trunk/clio/clio/classinfo.hpp (rev 0) +++ clio/trunk/clio/clio/classinfo.hpp 2008-02-23 00:20:41 UTC (rev 8072) @@ -0,0 +1,248 @@ +#ifndef CLIO_CLASSINFO_H +#define CLIO_CLASSINFO_H + +#include "iclassinfo.hpp" +#include "totype.hpp" +#include "classname.hpp" +#include "objectwrapperaware.hpp" +#include "forcesemicolon.hpp" +#include "factory.hpp" +#include "icaster.hpp" +#include "typetraits.hpp" +#include "autoinstantiation.hpp" +#include <string> + +// implementation + +#include <assert.h> +#include <typeinfo> + +namespace clio +{ + +template< class T > +class ClassInfo: public IClassInfo +{ +public: + // this is a singleton class + static ClassInfo & Get() CLIO_NOTHROW; + + // extracts the object managed by this class + T * ExtractObject( ObjectWrapper & wrapper ) const CLIO_NOTHROW + { + // delegate and cast + return static_cast< T * >( IClassInfo::ExtractObject( wrapper ) ); + } + + // extracts the object managed by this class + T * ExtractObject( ObjectWrapper & wrapper, int & casts ) const CLIO_NOTHROW + { + // delegate and cast + return static_cast< T * >( IClassInfo::ExtractObject( wrapper, casts ) ); + } + + // really create default consructor factory + template< class DERIVED > + void CreateDefaultConstructor( BoolToType< true > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); + + T const * a = 0; + TypeToType<T> const * b = 0; + factory.SetCreate( CreateFactoryCreate< T, DERIVED >( a, b ) ); + } + + // pretend to create default consructor factory + template< class DERIVED > + void CreateDefaultConstructor( BoolToType< false > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); + + factory.SetCreate( 0 ); + } + + // really create copy consructor factory + template< class DERIVED > + void CreateCopyConstructor( BoolToType< true > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); + + T const * a = 0; + TypeToType<T> const * b = 0; + factory.SetClone( CreateFactoryClone< T, DERIVED >( a, b ) ); + } + + // pretend to create copy consructor factory + template< class DERIVED > + void CreateCopyConstructor( BoolToType< false > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); + + factory.SetClone( 0 ); + } + + // really create destructor factory + void CreateDestructor( BoolToType< true > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory() ); + + T const * a = 0; + TypeToType<T> const * b = 0; + factory.SetDestroy( CreateFactoryDestroy< T, T >( a, b ) ); + } + + // pretend to create destructor factory + void CreateDestructor( BoolToType< false > legal ) + { + assert( dynamic_cast< FlexibleFactory * >( &GetFactory() ) ); + FlexibleFactory & factory = static_cast< FlexibleFactory & >( GetFactory... [truncated message content] |
From: <baz...@us...> - 2008-02-23 01:08:14
|
Revision: 8073 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8073&view=rev Author: bazaarmagetron Date: 2008-02-22 17:08:18 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: Made tests optional, added functional "make install". Modified Paths: -------------- clio/trunk/clio/Makefile.am clio/trunk/clio/clio/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 01:10:30.246999979 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 01:28:57.042000055 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - clio src-20080222203757-y1e5vpr93avq2ya5-1 clio/nocopy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.cpp clio/error.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.cpp clio/macrorecursion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macrorecursion.hpp clio/linkedlist.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.cpp clio/factory.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.cpp clio/stateregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.hpp clio/objectwrapperaware.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.cpp clio/nocopy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:nocopy.hpp clio/typetraits.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.hpp clio/virtual_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_base.hpp clio/functioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.hpp clio/namemangling.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.cpp clio/namespace.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.cpp clio/argument_lists.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists.hpp clio/ichained.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.hpp clio/function_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function_single.hpp clio/classstateinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.cpp clio/includeloop.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:includeloop.hpp clio/typelist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typelist.hpp clio/iclassinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.hpp clio/std_container.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.cpp clio/iclassinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:iclassinfo.cpp clio/functioninfo_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_single.hpp clio/property.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.hpp clio/virtual_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_nadic.hpp clio/autoarray.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.hpp clio/functiontype_base.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functiontype_base.hpp clio/classinfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.cpp clio/proxy.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.hpp clio/dataconversion.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.hpp clio/virtual_single.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_single.hpp clio/clio_config.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:clio_config.hpp clio/classname.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.cpp clio/gcmarker.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.cpp clio/proxy.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:proxy.cpp clio/std_container.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:std_container.hpp clio/security.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.hpp clio/dataconversion.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion.cpp clio/icaster.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.cpp clio/ichained.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ichained.cpp clio/autoinstantiation.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.hpp clio/classregistratorset.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.hpp clio/functioninfo_nadic.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo_nadic.hpp clio/codeinjection.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.cpp clio/namemangling.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namemangling.hpp clio/codeinjection.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:codeinjection.hpp clio/ifunctioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.cpp clio/linkedlist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:linkedlist.hpp clio/security.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:security.cpp clio/icaster.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:icaster.hpp clio/classstateinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classstateinfo.hpp clio/classregistrator.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.hpp clio/typetraits.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:typetraits.cpp clio/function.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:function.hpp clio/factory.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:factory.hpp clio/classregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistrator.cpp clio/macros.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.cpp clio/virtual.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual.hpp clio/property.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:property.cpp clio/state.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.cpp clio/objectwrapperaware.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapperaware.hpp clio/ifunctioninfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:ifunctioninfo.hpp clio/functioninfo.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:functioninfo.cpp clio/stateregistrator.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:stateregistrator.cpp clio/objectwrapper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.cpp clio/classinfo.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classinfo.hpp clio/templatearglist.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:templatearglist.hpp clio/state.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:state.hpp clio/macros.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:macros.hpp clio/virtual_helper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.hpp clio/classname.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classname.hpp clio/forcesemicolon.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:forcesemicolon.hpp clio/autoarray.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoarray.cpp clio/gcpointer.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.cpp clio/argument_lists_undef.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argument_lists_undef.hpp clio/virtual_helper.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:virtual_helper.cpp clio/error.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:error.hpp clio/namespace.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:namespace.hpp clio/Makefile.am makefile.am-20080222211634-7re12gmo7ct68f04-1 clio/gcmarker.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcmarker.hpp clio/totype.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:totype.hpp clio/objectwrapper.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:objectwrapper.hpp clio/enum.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.hpp clio/enum.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:enum.cpp clio/autoinstantiation.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:autoinstantiation.cpp clio/dataconversion_extended.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.hpp clio/helptest.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:helptest.hpp clio/dataconversion_extended.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:dataconversion_extended.cpp clio/classregistratorset.cpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:classregistratorset.cpp clio/gcpointer.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:gcpointer.hpp clio/argumentquality.hpp 8058@7d95bf1e-0414-0410-9756-b78462a59f44:clio%2Ftrunk%2Fclio:argumentquality.hpp + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 00:20:41 UTC (rev 8072) +++ clio/trunk/clio/Makefile.am 2008-02-23 01:08:18 UTC (rev 8073) @@ -1,2 +1,5 @@ -SUBDIRS = clio tests +SUBDIRS = clio +test: all + ${MAKE} -C tests + Modified: clio/trunk/clio/clio/Makefile.am =================================================================== --- clio/trunk/clio/clio/Makefile.am 2008-02-23 00:20:41 UTC (rev 8072) +++ clio/trunk/clio/clio/Makefile.am 2008-02-23 01:08:18 UTC (rev 8073) @@ -1,92 +1,95 @@ -noinst_LIBRARIES = libclio.a +lib_LIBRARIES = libclio.a -libclio_a_SOURCES = \ +libclio_a_SOURCES = autoarray.cpp\ +autoinstantiation.cpp\ +classinfo.cpp\ +classname.cpp\ +classregistrator.cpp\ +classregistratorset.cpp\ +classstateinfo.cpp\ +codeinjection.cpp\ +dataconversion.cpp\ +dataconversion_extended.cpp\ +enum.cpp\ +error.cpp\ +factory.cpp\ +functioninfo.cpp\ +gcmarker.cpp\ +gcpointer.cpp\ +icaster.cpp\ +ichained.cpp\ +iclassinfo.cpp\ +ifunctioninfo.cpp\ +linkedlist.cpp\ +macros.cpp\ +namemangling.cpp\ +namespace.cpp\ +nocopy.cpp\ +objectwrapperaware.cpp\ +objectwrapper.cpp\ +property.cpp\ +proxy.cpp\ +security.cpp\ +state.cpp\ +stateregistrator.cpp\ +std_container.cpp\ +typetraits.cpp\ +virtual_helper.cpp + +includedir=${prefix}/include/clio + +include_HEADERS=\ argument_lists.hpp\ argument_lists_undef.hpp\ argumentquality.hpp\ -autoarray.cpp\ autoarray.hpp\ -autoinstantiation.cpp\ autoinstantiation.hpp\ -classinfo.cpp\ classinfo.hpp\ -classname.cpp\ classname.hpp\ -classregistrator.cpp\ classregistrator.hpp\ -classregistratorset.cpp\ classregistratorset.hpp\ -classstateinfo.cpp\ classstateinfo.hpp\ clio_config.hpp\ -codeinjection.cpp\ codeinjection.hpp\ -dataconversion.cpp\ -dataconversion_extended.cpp\ dataconversion_extended.hpp\ dataconversion.hpp\ -enum.cpp\ enum.hpp\ -error.cpp\ error.hpp\ -factory.cpp\ factory.hpp\ forcesemicolon.hpp\ function.hpp\ -functioninfo.cpp\ functioninfo.hpp\ functioninfo_nadic.hpp\ functioninfo_single.hpp\ function_single.hpp\ functiontype_base.hpp\ -gcmarker.cpp\ gcmarker.hpp\ -gcpointer.cpp\ gcpointer.hpp\ helptest.hpp\ -icaster.cpp\ icaster.hpp\ -ichained.cpp\ ichained.hpp\ -iclassinfo.cpp\ iclassinfo.hpp\ -ifunctioninfo.cpp\ ifunctioninfo.hpp\ includeloop.hpp\ -linkedlist.cpp\ linkedlist.hpp\ macrorecursion.hpp\ -macros.cpp\ macros.hpp\ -namemangling.cpp\ namemangling.hpp\ -namespace.cpp\ namespace.hpp\ -nocopy.cpp\ nocopy.hpp\ -objectwrapperaware.cpp\ objectwrapperaware.hpp\ -objectwrapper.cpp\ objectwrapper.hpp\ -property.cpp\ property.hpp\ -proxy.cpp\ proxy.hpp\ -security.cpp\ security.hpp\ -state.cpp\ state.hpp\ -stateregistrator.cpp\ stateregistrator.hpp\ -std_container.cpp\ std_container.hpp\ templatearglist.hpp\ totype.hpp\ typelist.hpp\ -typetraits.cpp\ typetraits.hpp\ virtual_base.hpp\ -virtual_helper.cpp\ virtual_helper.hpp\ virtual.hpp\ virtual_nadic.hpp\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 01:08:40
|
Revision: 8074 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8074&view=rev Author: bazaarmagetron Date: 2008-02-22 17:08:44 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: added dist-hook. Modified Paths: -------------- clio/trunk/clio/tests/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 01:28:57.042000055 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 01:49:17.362999916 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc Modified: clio/trunk/clio/tests/Makefile.am =================================================================== --- clio/trunk/clio/tests/Makefile.am 2008-02-23 01:08:18 UTC (rev 8073) +++ clio/trunk/clio/tests/Makefile.am 2008-02-23 01:08:44 UTC (rev 8074) @@ -1,4 +1,4 @@ -all: enum.test/test tests +all: tests ../clio/libclio.a: ${top_srcdir}/clio/*pp ${MAKE} -C ../clio @@ -7,10 +7,15 @@ # add one test explicitly so ${CXXCOMPILE/LINK} is defined bin_PROGRAMS = multiunit.test/test -multiunit_test_test_SOURCES = multiunit.test/test2.cpp multiunit.test/test3.cpp multiunit.test/test.cpp +multiunit_test_test_SOURCES = multiunit.test/test2.cpp multiunit.test/test3.cpp multiunit.test/test.cpp multiunit.test/test2.hpp multiunit.test/test3_specialize.hpp multiunit.test/test.hpp multiunit.test/test3.hpp multiunit.test/common.hpp multiunit_test_test_CXXFLAGS = "-I${top_srcdir}/clio" multiunit_test_test_LDADD = ${LIBCLIO} +dist-hook: + cp ${srcdir}/*.sh ${distdir} + cp -rf ${srcdir}/*.test ${distdir} + rm -f ${distdir}/test ${distdir}/*.o ${distdir}/*~ + %.o: %.cpp ${CXXCOMPILE} "-I${top_srcdir}/clio" -c $< -o $@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 01:09:04
|
Revision: 8075 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8075&view=rev Author: bazaarmagetron Date: 2008-02-22 17:09:06 -0800 (Fri, 22 Feb 2008) Log Message: ----------- Manuel Moos: "make distcheck" almost works. Modified Paths: -------------- clio/trunk/clio/Makefile.am clio/trunk/clio/tests/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 01:49:17.362999916 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 02:00:25.894999981 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 01:08:44 UTC (rev 8074) +++ clio/trunk/clio/Makefile.am 2008-02-23 01:09:06 UTC (rev 8075) @@ -1,5 +1,5 @@ -SUBDIRS = clio +SUBDIRS = clio tests test: all - ${MAKE} -C tests + ${MAKE} -C tests tests Modified: clio/trunk/clio/tests/Makefile.am =================================================================== --- clio/trunk/clio/tests/Makefile.am 2008-02-23 01:08:44 UTC (rev 8074) +++ clio/trunk/clio/tests/Makefile.am 2008-02-23 01:09:06 UTC (rev 8075) @@ -11,15 +11,21 @@ multiunit_test_test_CXXFLAGS = "-I${top_srcdir}/clio" multiunit_test_test_LDADD = ${LIBCLIO} +clean-local: + rm -rf *.result + test "${srcdir}" = "." || rm -rf *.test/*.io + rm -rf *.test/test *.test/*.o + dist-hook: cp ${srcdir}/*.sh ${distdir} cp -rf ${srcdir}/*.test ${distdir} - rm -f ${distdir}/test ${distdir}/*.o ${distdir}/*~ + rm -f ${distdir}/*.test/test ${distdir}/*.test/*.o ${distdir}/*/test/*~ %.o: %.cpp + ${mkdir_p} `dirname $@` ${CXXCOMPILE} "-I${top_srcdir}/clio" -c $< -o $@ -%.test/test: ${srcdir}/%.test/test.o ${LIBCLIO} +%.test/test: %.test/test.o ${LIBCLIO} ${mkdir_p} `dirname $@` ${CXXLINK} $< ${LIBCLIO} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 12:55:18
|
Revision: 8077 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8077&view=rev Author: bazaarmagetron Date: 2008-02-23 04:55:21 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added pkg-config script. Modified Paths: -------------- clio/trunk/clio/Makefile.am clio/trunk/clio/configure.ac Added Paths: ----------- clio/trunk/clio/scripts/ clio/trunk/clio/scripts/clio.pc.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 02:00:25.894999981 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 02:33:57.888999939 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + scripts scripts-20080223013329-ui2ue05zy4ltpa4h-1 scripts/clio.pc.in clio.pc.in-20080223013329-ui2ue05zy4ltpa4h-2 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 10:09:12 UTC (rev 8076) +++ clio/trunk/clio/Makefile.am 2008-02-23 12:55:21 UTC (rev 8077) @@ -3,3 +3,22 @@ test: all ${MAKE} -C tests tests +scripts/clio.pc: ${srcdir}/scripts/clio.pc.in Makefile + ${mkdir_p} scripts + sed -e 's,[@]prefix[@],${prefix},g' \ + -e 's,[@]exec_prefix[@],${prefix},g' \ + -e 's,[@]ldflags[@],${exec_prefix},g' \ + -e 's,[@]version[@],${version},g' \ + -e 's,[@]io_ldflags[@],@IO_LDFLAGS@,g' \ + -e 's,[@]io_cflags[@],@IO_CFLAGS@,g' \ + < $< > $@ + +clean-local: + rm -f scripts/clio.pc + +install-data-local: scripts/clio.pc + ${mkdir_p} ${prefix}/lib/pkgconfig/ + cp scripts/clio.pc ${prefix}/lib/pkgconfig/ + +uninstall-hook: + rm -f ${prefix}/lib/pkgconfig/clio.pc Modified: clio/trunk/clio/configure.ac =================================================================== --- clio/trunk/clio/configure.ac 2008-02-23 10:09:12 UTC (rev 8076) +++ clio/trunk/clio/configure.ac 2008-02-23 12:55:21 UTC (rev 8077) @@ -10,11 +10,18 @@ IOPREFIX="`io -e 'System installPrefix'`" # Well, Io does not install its headers anywhere. Hope they can be found here. -export CXXFLAGS="${CXXFLAGS} -I${IOPREFIX}/include/io" +IO_CFLAGS=-I${IOPREFIX}/include/io # Without an io-config, we also have to guess the linker flags. -export LDFLAGS="${LDFLAGS} -L${IOPREFIX}/lib -liovmall" +IO_LDFLAGS="-L${IOPREFIX}/lib -liovmall" +AC_SUBST(IO_LDFLAGS) +AC_SUBST(IO_CFLAGS) + +# apply both flags +export CXXFLAGS="${CXXFLAGS} ${IO_CFLAGS}" +export LDFLAGS="${LDFLAGS} ${IO_LDFLAGS}" + AM_CONFIG_HEADER(clio_config.h) AC_OUTPUT(Makefile clio/Makefile tests/Makefile) Added: clio/trunk/clio/scripts/clio.pc.in =================================================================== --- clio/trunk/clio/scripts/clio.pc.in (rev 0) +++ clio/trunk/clio/scripts/clio.pc.in 2008-02-23 12:55:21 UTC (rev 8077) @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=${exec_prefix}/lib +includedir=${exec_prefix}/include + +Name: clio +Description: C++ Layer for Io +Version: @version@ +Libs: -L${libdir} -lclio @io_ldflags@ +Cflags: -I${includedir} @io_cflags@ + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 12:55:36
|
Revision: 8078 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8078&view=rev Author: bazaarmagetron Date: 2008-02-23 04:55:39 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Repaired distcheck. Modified Paths: -------------- clio/trunk/clio/Makefile.am Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 02:33:57.888999939 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 02:52:40.552000046 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - scripts scripts-20080223013329-ui2ue05zy4ltpa4h-1 scripts/clio.pc.in clio.pc.in-20080223013329-ui2ue05zy4ltpa4h-2 + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 12:55:21 UTC (rev 8077) +++ clio/trunk/clio/Makefile.am 2008-02-23 12:55:39 UTC (rev 8078) @@ -16,9 +16,11 @@ clean-local: rm -f scripts/clio.pc -install-data-local: scripts/clio.pc - ${mkdir_p} ${prefix}/lib/pkgconfig/ - cp scripts/clio.pc ${prefix}/lib/pkgconfig/ +EXTRA_DIST = scripts/clio.pc.in +install-exec-local: scripts/clio.pc + ${mkdir_p} ${DESTDIR}${prefix}/lib/pkgconfig/ + cp scripts/clio.pc ${DESTDIR}${prefix}/lib/pkgconfig/ + uninstall-hook: rm -f ${prefix}/lib/pkgconfig/clio.pc This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 12:56:02
|
Revision: 8079 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8079&view=rev Author: bazaarmagetron Date: 2008-02-23 04:56:01 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added test documentation. Modified Paths: -------------- clio/trunk/clio/Makefile.am clio/trunk/clio/configure.ac Added Paths: ----------- clio/trunk/clio/doc/ clio/trunk/clio/doc/Makefile.am clio/trunk/clio/doc/doc.css.in clio/trunk/clio/doc/hello.t2t.in clio/trunk/clio/doc/main.t2t.in clio/trunk/clio/doc/test.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 02:52:40.552000046 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 13:47:31.986000061 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + doc doc-20080223124717-40xwq5cfmbontz4i-1 doc/main.t2t.in main.t2t.in-20080223124717-40xwq5cfmbontz4i-5 doc/doc.css.in doc.css.in-20080223124717-40xwq5cfmbontz4i-3 doc/Makefile.am makefile.am-20080223124717-40xwq5cfmbontz4i-2 doc/test.t2t.in test.t2t.in-20080223124717-40xwq5cfmbontz4i-6 doc/hello.t2t.in hello.t2t.in-20080223124717-40xwq5cfmbontz4i-4 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g Modified: clio/trunk/clio/Makefile.am =================================================================== --- clio/trunk/clio/Makefile.am 2008-02-23 12:55:39 UTC (rev 8078) +++ clio/trunk/clio/Makefile.am 2008-02-23 12:56:01 UTC (rev 8079) @@ -1,4 +1,4 @@ -SUBDIRS = clio tests +SUBDIRS = clio tests doc test: all ${MAKE} -C tests tests Modified: clio/trunk/clio/configure.ac =================================================================== --- clio/trunk/clio/configure.ac 2008-02-23 12:55:39 UTC (rev 8078) +++ clio/trunk/clio/configure.ac 2008-02-23 12:56:01 UTC (rev 8079) @@ -23,5 +23,5 @@ export LDFLAGS="${LDFLAGS} ${IO_LDFLAGS}" AM_CONFIG_HEADER(clio_config.h) -AC_OUTPUT(Makefile clio/Makefile tests/Makefile) +AC_OUTPUT(Makefile clio/Makefile tests/Makefile doc/Makefile) Added: clio/trunk/clio/doc/Makefile.am =================================================================== --- clio/trunk/clio/doc/Makefile.am (rev 0) +++ clio/trunk/clio/doc/Makefile.am 2008-02-23 12:56:01 UTC (rev 8079) @@ -0,0 +1,16 @@ +all: html + +%.dvi: %.ltx + latex $< + latex $< + +%.t2t: ${srcdir}/%.t2t.in + cp $< $@ + +%.html: %.t2t Makefile ./doc.css + txt2tags --style doc.css -t html -o - $< | sed -e "s!@navbar@(\\(.*\\),\\(.*\\),\\(.*\\))!<table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"30%\"><a href=\\1.html>Previous</a></td><td align=\"center\"><a href=\\2.html>Up</a></td><td align=\"right\" width=\"30%\"><a href=\\3.html>Next</a></td></tr></table>!" > $@ + +doc.css: ${srcdir}/doc.css.in + cp ${srcdir}/doc.css.in $@ + +html: main.html hello.html test.html Added: clio/trunk/clio/doc/doc.css.in =================================================================== --- clio/trunk/clio/doc/doc.css.in (rev 0) +++ clio/trunk/clio/doc/doc.css.in 2008-02-23 12:56:01 UTC (rev 8079) @@ -0,0 +1,4 @@ +pre { + background-color:#EFEFEF; +} + Added: clio/trunk/clio/doc/hello.t2t.in =================================================================== --- clio/trunk/clio/doc/hello.t2t.in (rev 0) +++ clio/trunk/clio/doc/hello.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) @@ -0,0 +1,44 @@ +Hello World + + + +@navbar@(test,main,test) + +For our first sample, let us wrap this litlle class for Io usage: + +``` +#include <iostream> + +class Hello +{ +public: + void hello() + { + std::cout << "Hello World!\n"; + } +}; +``` + +To wrap it, we need to include the clio main header: + +``` +#include <clio/clio.h> +``` + +And use some macros: + +``` +CLIO_CLASS( Hello ) +{ + CLIO_METHOD(hello); +} +``` + +``` +int main() +{ +} +``` + + + Added: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in (rev 0) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) @@ -0,0 +1,5 @@ +Index + + +== Introduction == +[Hello World hello.html] Added: clio/trunk/clio/doc/test.t2t.in =================================================================== --- clio/trunk/clio/doc/test.t2t.in (rev 0) +++ clio/trunk/clio/doc/test.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) @@ -0,0 +1,8 @@ +Test + + += Test =[a1] + +%%toc + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 13:34:50
|
Revision: 8080 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8080&view=rev Author: bazaarmagetron Date: 2008-02-23 05:34:22 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added single file documentation build, automatic file list generation and automatic navbar generation for the individual page docs. Modified Paths: -------------- clio/trunk/clio/doc/Makefile.am clio/trunk/clio/doc/hello.t2t.in clio/trunk/clio/doc/main.t2t.in clio/trunk/clio/doc/test.t2t.in Added Paths: ----------- clio/trunk/clio/doc/navbars.sh clio/trunk/clio/doc/onefile.sh Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 13:47:31.986000061 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 14:30:15.937999964 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - doc doc-20080223124717-40xwq5cfmbontz4i-1 doc/main.t2t.in main.t2t.in-20080223124717-40xwq5cfmbontz4i-5 doc/doc.css.in doc.css.in-20080223124717-40xwq5cfmbontz4i-3 doc/Makefile.am makefile.am-20080223124717-40xwq5cfmbontz4i-2 doc/test.t2t.in test.t2t.in-20080223124717-40xwq5cfmbontz4i-6 doc/hello.t2t.in hello.t2t.in-20080223124717-40xwq5cfmbontz4i-4 + doc/navbars.sh navbars.sh-20080223133008-28gtx69q2wkhwigc-1 doc/onefile.sh onefile.sh-20080223133008-28gtx69q2wkhwigc-2 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv Modified: clio/trunk/clio/doc/Makefile.am =================================================================== --- clio/trunk/clio/doc/Makefile.am 2008-02-23 12:56:01 UTC (rev 8079) +++ clio/trunk/clio/doc/Makefile.am 2008-02-23 13:34:22 UTC (rev 8080) @@ -1,4 +1,4 @@ -all: html +all: html all.html %.dvi: %.ltx latex $< @@ -7,10 +7,28 @@ %.t2t: ${srcdir}/%.t2t.in cp $< $@ -%.html: %.t2t Makefile ./doc.css - txt2tags --style doc.css -t html -o - $< | sed -e "s!@navbar@(\\(.*\\),\\(.*\\),\\(.*\\))!<table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"30%\"><a href=\\1.html>Previous</a></td><td align=\"center\"><a href=\\2.html>Up</a></td><td align=\"right\" width=\"30%\"><a href=\\3.html>Next</a></td></tr></table>!" > $@ +%.html: %.t2t Makefile ./doc.css navbars + txt2tags --style doc.css -t html -o - $< | sed -e "s!@navbar@!`cat $@.navbar`!" > $@ doc.css: ${srcdir}/doc.css.in cp ${srcdir}/doc.css.in $@ -html: main.html hello.html test.html +# generate index of all html files +index: ${srcdir}/main.t2t.in + grep "html\]" < ${srcdir}/main.t2t.in | sed -e "s!^.* !!" -e "s!\]!!" > index + +# generate navbars +navbars: index ${srcdir}/navbars.sh + ${srcdir}/navbars.sh + touch $@ + +html: main.html + +# depend on them +.html_dep: index + sed < $< > $@ -e "s!^!html: !" + include .html_dep + +# all documentation in a single file +all.html: index ${srcdir}/onefile.sh ${srcdir}/*.t2t.in + srcdir=${srcdir} ${srcdir}/onefile.sh Modified: clio/trunk/clio/doc/hello.t2t.in =================================================================== --- clio/trunk/clio/doc/hello.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) +++ clio/trunk/clio/doc/hello.t2t.in 2008-02-23 13:34:22 UTC (rev 8080) @@ -2,7 +2,7 @@ -@navbar@(test,main,test) +@navbar@ For our first sample, let us wrap this litlle class for Io usage: @@ -39,6 +39,7 @@ { } ``` +@navbar@ Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 13:34:22 UTC (rev 8080) @@ -1,5 +1,9 @@ -Index +Clio Documentation == Introduction == +[Test1 test.html] + [Hello World hello.html] + +[Test2 test.html] Added: clio/trunk/clio/doc/navbars.sh =================================================================== --- clio/trunk/clio/doc/navbars.sh (rev 0) +++ clio/trunk/clio/doc/navbars.sh 2008-02-23 13:34:22 UTC (rev 8080) @@ -0,0 +1,11 @@ +#! /bin/sh + +# generates navbar files + +lastlast=main.html +last=main.html +for current in `cat index` main.html; do + echo > $last.navbar "<table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"30%\"><a href=${lastlast}>Previous</a></td><td align=\"center\"><a href=main.html>Up</a></td><td align=\"right\" width=\"30%\"><a href=${current}>Next</a></td></tr></table>" + lastlast=${last} + last=${current} +done Property changes on: clio/trunk/clio/doc/navbars.sh ___________________________________________________________________ Name: svn:executable + * Added: clio/trunk/clio/doc/onefile.sh =================================================================== --- clio/trunk/clio/doc/onefile.sh (rev 0) +++ clio/trunk/clio/doc/onefile.sh 2008-02-23 13:34:22 UTC (rev 8080) @@ -0,0 +1,23 @@ +#! /bin/sh + +# generates one html file with the complete documentation + +cat > all.t2t <<EOF +Clio Documentation + + +%%toc +EOF + +for f in `cat index`; do + source=`echo $f | sed -e "s!^!${srcdir}/!" -e "s!\.html!.t2t.in!"` + echo $source + lines=`wc -l < ${source}` + head ${source} -n 1 | sed -e "s!^!=!" -e "s!\$!=!" >> all.t2t + tail ${source} -n $(( ${lines} - 3 )) | grep -v @navbar@ >> all.t2t +done + +txt2tags --style doc.css -t html --toc all.t2t + +rm all.t2t + Property changes on: clio/trunk/clio/doc/onefile.sh ___________________________________________________________________ Name: svn:executable + * Modified: clio/trunk/clio/doc/test.t2t.in =================================================================== --- clio/trunk/clio/doc/test.t2t.in 2008-02-23 12:56:01 UTC (rev 8079) +++ clio/trunk/clio/doc/test.t2t.in 2008-02-23 13:34:22 UTC (rev 8080) @@ -1,8 +1,6 @@ Test -= Test =[a1] -%%toc This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 17:54:19
|
Revision: 8083 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8083&view=rev Author: bazaarmagetron Date: 2008-02-23 09:54:13 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added "main" header, simplified wrapper registration, and finished "Hello World!" doc. Modified Paths: -------------- clio/trunk/clio/clio/Makefile.am clio/trunk/clio/clio/state.cpp clio/trunk/clio/clio/state.hpp clio/trunk/clio/doc/hello.t2t.in Added Paths: ----------- clio/trunk/clio/clio/clio.hpp Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 14:30:15.937999964 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 14:51:13.246000051 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - doc/navbars.sh navbars.sh-20080223133008-28gtx69q2wkhwigc-1 doc/onefile.sh onefile.sh-20080223133008-28gtx69q2wkhwigc-2 + clio/clio.hpp clio.hpp-20080223133433-x7vjnoxh87mla810-1 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 Modified: clio/trunk/clio/clio/Makefile.am =================================================================== --- clio/trunk/clio/clio/Makefile.am 2008-02-23 16:53:34 UTC (rev 8082) +++ clio/trunk/clio/clio/Makefile.am 2008-02-23 17:54:13 UTC (rev 8083) @@ -50,6 +50,7 @@ classregistratorset.hpp\ classstateinfo.hpp\ clio_config.hpp\ +clio.hpp\ codeinjection.hpp\ dataconversion_extended.hpp\ dataconversion.hpp\ Added: clio/trunk/clio/clio/clio.hpp =================================================================== --- clio/trunk/clio/clio/clio.hpp (rev 0) +++ clio/trunk/clio/clio/clio.hpp 2008-02-23 17:54:13 UTC (rev 8083) @@ -0,0 +1,6 @@ +#ifndef CLIO_CLIO_H +#define CLIO_CLIO_H + +#include "macros.hpp" + +#endif Modified: clio/trunk/clio/clio/state.cpp =================================================================== --- clio/trunk/clio/clio/state.cpp 2008-02-23 16:53:34 UTC (rev 8082) +++ clio/trunk/clio/clio/state.cpp 2008-02-23 17:54:13 UTC (rev 8083) @@ -1,6 +1,7 @@ #include "state.hpp" #include "ifunctioninfo.hpp" +#include "stateregistrator.hpp" #include <IoState.h> #include <CollectorMarker.h> @@ -55,6 +56,12 @@ self_ = NULL; } +void State::Register( int securityLevel ) +{ + IStateRegistrator::ExtraInfo info( securityLevel ); + IStateRegistrator::RegisterAll( *this, info ); +} + void TransferMarkers( CollectorMarker * source, CollectorMarker * target ) { if ( source ) Modified: clio/trunk/clio/clio/state.hpp =================================================================== --- clio/trunk/clio/clio/state.hpp 2008-02-23 16:53:34 UTC (rev 8082) +++ clio/trunk/clio/clio/state.hpp 2008-02-23 17:54:13 UTC (rev 8083) @@ -35,6 +35,9 @@ return self_; } + // register our wrappers + void Register( int securityLevel = 0 ); + // makes sure state points to a valid and meaningful state static void GetDefaultState( IoState * & state ); Modified: clio/trunk/clio/doc/hello.t2t.in =================================================================== --- clio/trunk/clio/doc/hello.t2t.in 2008-02-23 16:53:34 UTC (rev 8082) +++ clio/trunk/clio/doc/hello.t2t.in 2008-02-23 17:54:13 UTC (rev 8083) @@ -22,23 +22,48 @@ To wrap it, we need to include the clio main header: ``` -#include <clio/clio.h> +#include <clio/clio.hpp> ``` -And use some macros: +And use some macros to make the class structure known to clio: ``` CLIO_CLASS( Hello ) { - CLIO_METHOD(hello); + CLIO_METHOD( hello ); } ``` +To test the bindings, we need a clio state, and we need to register +the bindings with it. Let's do that in the main function: ``` +#include <clio/state.hpp> + int main() { + // create Io state + clio::State state; + + // register our wrappers + state.Register(); + + // and execute a test command + IoState_doCString_( state, "Hello clone() hello()" ); } ``` + +On Unix, if you save all that into a file called main.cpp and compile it using + +``` +g++ `pkg-config clio --cflags` main.cpp `pkg-config clio --libs` +``` + +You should be greeded with + +``` +Hello World! +``` + @navbar@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 17:54:51
|
Revision: 8084 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8084&view=rev Author: bazaarmagetron Date: 2008-02-23 09:54:53 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added some more doc pages. Modified Paths: -------------- clio/trunk/clio/doc/hello.t2t.in clio/trunk/clio/doc/main.t2t.in Added Paths: ----------- clio/trunk/clio/doc/about.t2t.in clio/trunk/clio/doc/build.t2t.in clio/trunk/clio/doc/design.t2t.in clio/trunk/clio/doc/proto.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 14:51:13.246000051 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 16:29:16.891000032 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - clio/clio.hpp clio.hpp-20080223133433-x7vjnoxh87mla810-1 + doc/design.t2t.in design.t2t.in-20080223152902-xoogd1lx2zt8p32k-3 doc/proto.t2t.in proto.t2t.in-20080223152902-xoogd1lx2zt8p32k-5 doc/about.t2t.in about.t2t.in-20080223152902-xoogd1lx2zt8p32k-1 doc/build.t2t.in build.t2t.in-20080223152902-xoogd1lx2zt8p32k-2 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca Added: clio/trunk/clio/doc/about.t2t.in =================================================================== --- clio/trunk/clio/doc/about.t2t.in (rev 0) +++ clio/trunk/clio/doc/about.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -0,0 +1,53 @@ +What is Clio? + + +@navbar@ + +Clio is a C++ template and macro library that lets you create bindings for the +[Io http://www.iolanguage.com] scripting language. + +== Why yet another template libarty? == + +Aren't boost::python and luabind enough? + +Well, No :) You can never have enough bindings for different scripting languages. Coming from C++, +both lua and Ptyton, the languages the other template libraries bind to, have some shortcomings that +make the bindings less than perfect. For starters, Lua alone doesn't have classes. Python knows +nothing about multiple inheritiance. + +Io, on the other hand, maps all the important C++ features perfectly. Clio can follow the matra +"thinks look from Io like they look in C++" all the way through (or rather, could. There is one +point, casts with multiple inheritance, where we decided to let things look in Io as if they +were written in Io; more to that later, and you'll surely agree with this decision.) + +== Are there alternatives? == + +To our knowledge, clio is the only bridge between C++ and Io. For other scripting languages, +there are many alternative binding generators, the most well known probably [SWIG http://www.swig.org]. + +== Why the name? == + +Well, it is an ancronym for **C**++ **L**ayer for **IO**. Also, Clio, like Io itself, is a name +from Greek mythology. + +== Supported C++ Features == + +- classes and (static) member functions +- all inheritance types (multiple + virtual) +- virtual functions overloadable from Io +- Enums +- Namespaces +- Template classes and functions (can be explicitly instantiated or instantiated implicitly by use) + + +== Nonstandard Features == + +- automatic argument conversion of the standard builtin C++ types and some stl classes +- integrates with any C++ memory management system +- proxy classes for difficult to wrap types + + +@navbar@ + + + Added: clio/trunk/clio/doc/build.t2t.in =================================================================== --- clio/trunk/clio/doc/build.t2t.in (rev 0) +++ clio/trunk/clio/doc/build.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -0,0 +1,54 @@ +Build Guide + + +@navbar@ + +Note, these instructions are currently Unix only. Sorry for the inconvenience. Clio should build fine +on Windows machines and from Mac XCode, all you need to do is build a library from all the .cpp files +in the clio subdirectory and link your program with it, and of course point your IDE to the location +of the clio and Io headers. + +== Getting Io == + +For starters, you need an installation of Io itself. Go to [their download page http://www.iolanguage.com/downloads/tarball/] and fetch it. The last tested version is 2008-01-17. + +Before you install it, you'll need to apply the patch from the ``patches/`` directory. Change into the unpacked +sources and do +``` +patch -p 1 < <path_to_clio>/patches/io_header_install.patch +``` +Then do the usual ``make && make install`` procedure. The patch only adds the installations of the Io headers +to where clio and later your program can find them. + +== Compiling Clio == + +This is an automake project, so you probably already know what to do :) If you got this from version control +and not a source tarball, you'll need to call +``` +./bootstrap.sh +``` +from the main directroy. Then, the usual +``` +./configure +make +(sudo) make install +``` +does the rest. + +== Your program == + +After successful clio installation, you should be able to retrive the correct flags to pass +to your C++ compiler with +``` +pkg-config clio --cflags +``` + +and the linker flags with +``` +pkg-config clio --libs +``` + +@navbar@ + + + Added: clio/trunk/clio/doc/design.t2t.in =================================================================== --- clio/trunk/clio/doc/design.t2t.in (rev 0) +++ clio/trunk/clio/doc/design.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -0,0 +1,43 @@ +Design Goals + + +@navbar@ + +C++ template libraries are a difficult subject, and before you start out writing one, you need +to be even more sure than usual what you want to accomplish. Clio started as a possible way +to get scripting into the multiplayer game [Armagetron Advanced http://www.armagetronad.net] with +the intention to allow scripts downloaded over the network automatically to be executed on the +game client without allowing malicious scripts to format the player's PC. So the most important +design goal of clio is + +== Security == + +It should be possible to prevent scripts from executing "dangerous" commands. Also, it needs to be +impossible for a "bad" script to cause a crash. This goal is quite a challenge, seeing that +the C++ approach to crash avoidance is "Here's your shotgun, that thing down there is your foot. +You know what to do." + +== Ease of use of the generated wrappers == + +It should be as easy as possible for a script programmer to use the generated wrappers. This includes +giving back good error messages when things don't work quite right. + +== Ease of wrapper generation === + +Simple C++ classes should be simple to wrap for Io. Complicated things like overloaded methods, +template classes and virtual functions can be complicated, but your run-of-the-mill concrete class with +default and copy constructor and a few methods of various types should be wrappable in a few +straightforward lines. + +== Do the right thing by default == + +Bridging two languages is a complicated subject, and users typically don't read the documentation +before things go horribly wrong. Therefore, as long as there is no compiler or runtime error, +clio should do exactly what the user expects in all acases, and that quite simply is the same +thing plain C++ usage would have done. Unless, of course, plain C++ usage would have caused a crash. +Customizations are available, of course, but should not be needed most of the time. + +@navbar@ + + + Modified: clio/trunk/clio/doc/hello.t2t.in =================================================================== --- clio/trunk/clio/doc/hello.t2t.in 2008-02-23 17:54:13 UTC (rev 8083) +++ clio/trunk/clio/doc/hello.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -58,7 +58,7 @@ g++ `pkg-config clio --cflags` main.cpp `pkg-config clio --libs` ``` -You should be greeded with +and run the result, you should be greeded with ``` Hello World! Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 17:54:13 UTC (rev 8083) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -2,8 +2,11 @@ == Introduction == -[Test1 test.html] +[What is Clio? about.html] +[Design Goals design.html] + +[Build Guide build.html] + [Hello World hello.html] -[Test2 test.html] Added: clio/trunk/clio/doc/proto.t2t.in =================================================================== --- clio/trunk/clio/doc/proto.t2t.in (rev 0) +++ clio/trunk/clio/doc/proto.t2t.in 2008-02-23 17:54:53 UTC (rev 8084) @@ -0,0 +1,12 @@ +Title + + +@navbar@ + +== Chapter 1 == +== Chapter 2 == + +@navbar@ + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 17:55:17
|
Revision: 8085 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8085&view=rev Author: bazaarmagetron Date: 2008-02-23 09:55:22 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added DoFile and DoString commands to State. Modified Paths: -------------- clio/trunk/clio/clio/helptest.hpp clio/trunk/clio/clio/state.cpp clio/trunk/clio/clio/state.hpp Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 16:29:16.891000032 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 18:45:24.611999989 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - doc/design.t2t.in design.t2t.in-20080223152902-xoogd1lx2zt8p32k-3 doc/proto.t2t.in proto.t2t.in-20080223152902-xoogd1lx2zt8p32k-5 doc/about.t2t.in about.t2t.in-20080223152902-xoogd1lx2zt8p32k-1 doc/build.t2t.in build.t2t.in-20080223152902-xoogd1lx2zt8p32k-2 + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b Modified: clio/trunk/clio/clio/helptest.hpp =================================================================== --- clio/trunk/clio/clio/helptest.hpp 2008-02-23 17:54:53 UTC (rev 8084) +++ clio/trunk/clio/clio/helptest.hpp 2008-02-23 17:55:22 UTC (rev 8085) @@ -5,13 +5,13 @@ #include "state.hpp" #include "gcpointer.hpp" -inline void TestString( IoState * state, char const * testString ) +inline void TestString( clio::State & state, char const * testString ) { std::cout << "<<<< " << testString << "\n"; - IoState_doCString_( state, testString ); + state.DoString( testString ); } -inline void TestFile( IoState * state, char const * file ) +inline void TestFile( clio::State & state, char const * file ) { std::ifstream s( file ); while ( s.good() && !s.eof() ) Modified: clio/trunk/clio/clio/state.cpp =================================================================== --- clio/trunk/clio/clio/state.cpp 2008-02-23 17:54:53 UTC (rev 8084) +++ clio/trunk/clio/clio/state.cpp 2008-02-23 17:55:22 UTC (rev 8085) @@ -2,10 +2,12 @@ #include "ifunctioninfo.hpp" #include "stateregistrator.hpp" +#include "gcpointer.hpp" #include <IoState.h> -#include <CollectorMarker.h> +// #include <CollectorMarker.h> + namespace clio { @@ -14,7 +16,7 @@ // constructor, auto-creating IoState State::State() { - originalCollector_ = 0; + // originalCollector_ = 0; self_ = IoState_new(); IoState_init( self_ ); owned_ = true; @@ -26,7 +28,7 @@ // constructor, taking IoState managed by someone else State::State( IoState * self ) { - originalCollector_ = 0; + // originalCollector_ = 0; self_ = self; owned_ = false; @@ -37,11 +39,13 @@ // destructor State::~State() { + /* if ( originalCollector_ ) { // Collector_freeAllValues( self_->collector ); self_->collector = originalCollector_; } + */ // delete state if it belongs to this if ( owned_ ) @@ -62,6 +66,27 @@ IStateRegistrator::RegisterAll( *this, info ); } +IoObject * State::DoString( char const * command ) +{ + return IoState_doCString_( self_, command ); +} + +IoObject * State::DoString( std::string const & command ) +{ + return IoState_doCString_( self_, command.c_str() ); +} + +IoObject * State::DoFile( char const * filename ) +{ + return IoState_doFile_( self_, filename ); +} + +IoObject * State::DoFile( std::string const & filename ) +{ + return IoState_doFile_( self_, filename.c_str() ); +} + +/* void TransferMarkers( CollectorMarker * source, CollectorMarker * target ) { if ( source ) @@ -91,6 +116,7 @@ self_->collector = collector; } +*/ // makes sure state points to a valid and meaningful state void State::GetDefaultState( IoState * & state ) Modified: clio/trunk/clio/clio/state.hpp =================================================================== --- clio/trunk/clio/clio/state.hpp 2008-02-23 17:54:53 UTC (rev 8084) +++ clio/trunk/clio/clio/state.hpp 2008-02-23 17:55:22 UTC (rev 8085) @@ -3,10 +3,11 @@ #include "nocopy.hpp" +#include <IoObject.h> +#include <string> + class IoState; - #include <Collector.h> - namespace clio { @@ -38,6 +39,14 @@ // register our wrappers void Register( int securityLevel = 0 ); + // executes a string in Io + IoObject * DoString( char const * command ); + IoObject * DoString( std::string const & command ); + + // executes a script file in Io + IoObject * DoFile( char const * filename ); + IoObject * DoFile( std::string const & filename ); + // makes sure state points to a valid and meaningful state static void GetDefaultState( IoState * & state ); @@ -45,11 +54,11 @@ static IoState * GetDefault(); private: // installs a different garbage collector(hacky and does not seem to work any more) - void SetCollector( Collector * collector ); + // void SetCollector( Collector * collector ); IoState * self_; // the state bool owned_; // flag telling us whether the state is owned by this object - Collector * originalCollector_; // the garbage collector that came with the state + // Collector * originalCollector_; // the garbage collector that came with the state }; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 17:55:55
|
Revision: 8086 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8086&view=rev Author: bazaarmagetron Date: 2008-02-23 09:55:59 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added more docs. Modified Paths: -------------- clio/trunk/clio/doc/Makefile.am clio/trunk/clio/doc/about.t2t.in clio/trunk/clio/doc/build.t2t.in clio/trunk/clio/doc/design.t2t.in clio/trunk/clio/doc/main.t2t.in clio/trunk/clio/doc/onefile.sh Added Paths: ----------- clio/trunk/clio/doc/classes_simple.t2t.in clio/trunk/clio/doc/inheritance.t2t.in clio/trunk/clio/doc/methods.t2t.in clio/trunk/clio/doc/notes.t2t.in clio/trunk/clio/doc/state.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 18:45:24.611999989 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 18:46:10.209000111 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + doc/inheritance.t2t.in inheritance.t2t.in-20080223174548-6lu83jc42kiik5rd-2 doc/state.t2t.in state.t2t.in-20080223174548-6lu83jc42kiik5rd-6 doc/methods.t2t.in methods.t2t.in-20080223174548-6lu83jc42kiik5rd-4 doc/classes_simple.t2t.in classes_simple.t2t.i-20080223174548-6lu83jc42kiik5rd-1 doc/notes.t2t.in notes.t2t.in-20080223174548-6lu83jc42kiik5rd-5 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg Modified: clio/trunk/clio/doc/Makefile.am =================================================================== --- clio/trunk/clio/doc/Makefile.am 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/Makefile.am 2008-02-23 17:55:59 UTC (rev 8086) @@ -7,7 +7,7 @@ %.t2t: ${srcdir}/%.t2t.in cp $< $@ -%.html: %.t2t Makefile ./doc.css navbars +%.html: %.t2t Makefile doc.css navbars txt2tags --style doc.css -t html -o - $< | sed -e "s!@navbar@!`cat $@.navbar`!" > $@ doc.css: ${srcdir}/doc.css.in @@ -15,13 +15,17 @@ # generate index of all html files index: ${srcdir}/main.t2t.in - grep "html\]" < ${srcdir}/main.t2t.in | sed -e "s!^.* !!" -e "s!\]!!" > index + grep "html\]" < ${srcdir}/main.t2t.in | sed -e "s!\].*!!" | sed -e "s!^.* !!" > index # generate navbars navbars: index ${srcdir}/navbars.sh ${srcdir}/navbars.sh touch $@ +# autogeneration of prototypes +${srcdir}/%.t2t.in: + cp ${srcdir}/proto.t2t.in $@ + html: main.html # depend on them @@ -30,5 +34,5 @@ include .html_dep # all documentation in a single file -all.html: index ${srcdir}/onefile.sh ${srcdir}/*.t2t.in +all.html: index ${srcdir}/onefile.sh html srcdir=${srcdir} ${srcdir}/onefile.sh Modified: clio/trunk/clio/doc/about.t2t.in =================================================================== --- clio/trunk/clio/doc/about.t2t.in 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/about.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -6,7 +6,7 @@ Clio is a C++ template and macro library that lets you create bindings for the [Io http://www.iolanguage.com] scripting language. -== Why yet another template libarty? == +=== Why yet another template libarty? === Aren't boost::python and luabind enough? @@ -20,17 +20,17 @@ point, casts with multiple inheritance, where we decided to let things look in Io as if they were written in Io; more to that later, and you'll surely agree with this decision.) -== Are there alternatives? == +=== Are there alternatives? === To our knowledge, clio is the only bridge between C++ and Io. For other scripting languages, there are many alternative binding generators, the most well known probably [SWIG http://www.swig.org]. -== Why the name? == +=== Why the name? === Well, it is an ancronym for **C**++ **L**ayer for **IO**. Also, Clio, like Io itself, is a name from Greek mythology. -== Supported C++ Features == +=== Supported C++ Features === - classes and (static) member functions - all inheritance types (multiple + virtual) @@ -40,7 +40,7 @@ - Template classes and functions (can be explicitly instantiated or instantiated implicitly by use) -== Nonstandard Features == +=== Nonstandard Features === - automatic argument conversion of the standard builtin C++ types and some stl classes - integrates with any C++ memory management system Modified: clio/trunk/clio/doc/build.t2t.in =================================================================== --- clio/trunk/clio/doc/build.t2t.in 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/build.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -8,7 +8,7 @@ in the clio subdirectory and link your program with it, and of course point your IDE to the location of the clio and Io headers. -== Getting Io == +=== Getting Io === For starters, you need an installation of Io itself. Go to [their download page http://www.iolanguage.com/downloads/tarball/] and fetch it. The last tested version is 2008-01-17. @@ -20,7 +20,7 @@ Then do the usual ``make && make install`` procedure. The patch only adds the installations of the Io headers to where clio and later your program can find them. -== Compiling Clio == +=== Compiling Clio === This is an automake project, so you probably already know what to do :) If you got this from version control and not a source tarball, you'll need to call @@ -35,7 +35,7 @@ ``` does the rest. -== Your program == +=== Your program === After successful clio installation, you should be able to retrive the correct flags to pass to your C++ compiler with Added: clio/trunk/clio/doc/classes_simple.t2t.in =================================================================== --- clio/trunk/clio/doc/classes_simple.t2t.in (rev 0) +++ clio/trunk/clio/doc/classes_simple.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -0,0 +1,35 @@ +Simple Classes + + +@navbar@ + +You have already seen it in the Hello World example: if you want to make a class ``Class`` known to +clio, you use the macro ``CLIO_CLASS`` in the form +``` +CLIO_CLASS(Class) +{ + ...class elements... +} +``` + +The thing in the braces is actually a function body some member function of a management helper class. +You can do in it whatever you can do in regular functions; this comes in handy later with template +classes. + +From Io, you will then be able to create objects of your class using +``` +Class clone +``` +``clone`` calls of this form invoke the default constructor of your class, as there is not yet +an object to clone from. You can use the objects created that way +like other Io objects. ``clone`` makes further copies of them, invoking the copy constructor. +Eventually, when nobody is interested in your object any more, the garbage collector will destroy +it. + +``CLIO_CLASS`` is an implementation macro. You should put it into a ``.cpp`` file that includes +the regular class header. + +The requirements on the class for this to work are: The class needs to be non-abstract and have +a public destructor, default constructor and default copy constructor. See [Advanced Classes classes_special.html] for the other cases. + +@navbar@ Modified: clio/trunk/clio/doc/design.t2t.in =================================================================== --- clio/trunk/clio/doc/design.t2t.in 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/design.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -10,26 +10,28 @@ game client without allowing malicious scripts to format the player's PC. So the most important design goal of clio is -== Security == +=== Security === It should be possible to prevent scripts from executing "dangerous" commands. Also, it needs to be impossible for a "bad" script to cause a crash. This goal is quite a challenge, seeing that the C++ approach to crash avoidance is "Here's your shotgun, that thing down there is your foot. You know what to do." -== Ease of use of the generated wrappers == +Of course, this being an addon project, it inherits all security problems of plain Io. +=== Ease of use of the generated wrappers === + It should be as easy as possible for a script programmer to use the generated wrappers. This includes giving back good error messages when things don't work quite right. -== Ease of wrapper generation === +=== Ease of wrapper generation === Simple C++ classes should be simple to wrap for Io. Complicated things like overloaded methods, template classes and virtual functions can be complicated, but your run-of-the-mill concrete class with default and copy constructor and a few methods of various types should be wrappable in a few straightforward lines. -== Do the right thing by default == +=== Do the right thing by default === Bridging two languages is a complicated subject, and users typically don't read the documentation before things go horribly wrong. Therefore, as long as there is no compiler or runtime error, Added: clio/trunk/clio/doc/inheritance.t2t.in =================================================================== --- clio/trunk/clio/doc/inheritance.t2t.in (rev 0) +++ clio/trunk/clio/doc/inheritance.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -0,0 +1,8 @@ +Inheritance + + +@navbar@ + + + +@navbar@ Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -1,12 +1,50 @@ Clio Documentation -== Introduction == += Introduction = + +What you should know before even starting :) + [What is Clio? about.html] [Design Goals design.html] -[Build Guide build.html] +[Build Guide build.html]: How to build Io and clio from source. -[Hello World hello.html] +[Hello World hello.html]: The mandatory sample program. += Manual = + +Things you'll need to know, hopefully in the order you'll need them in. + +[Notes notes.html]: general notes + +[Io State state.html]: managing Io state + +[Classes classes_simple.html]: regular, boring classes + +[Methods methods.html]: member functions, static and non-static, for use from Io + +[Inheritance inheritance.html]: how to inform clio about class relations + +[Advanced Classes classes_special.html]: abstract classes and classes with missing standard constructors + +[Method Overloads method_overloads.html]: overloaded member functions + +[Virtuals virtuals.html]: how to overload virtual C++ member functions from Io + +[Template Classes classes_template.html]: template classes + +[Argument Conversion argument_conversion.html]: how clio handles function argument conversion (marshalling) + +[Namespaces and Nesting namespaces.html]: how C++ namespaces and nested classes are handled + +[Lifetime Management lifetime.html]: how you make it so that your objects stay alive as long as C++ and Io are still interested in them + +[Project Layout project.html]: How to best organize your source files. + +[Security security.html]: security levels + += Reference = + +Deeper documentation of all the features. Added: clio/trunk/clio/doc/methods.t2t.in =================================================================== --- clio/trunk/clio/doc/methods.t2t.in (rev 0) +++ clio/trunk/clio/doc/methods.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -0,0 +1,38 @@ +Methods + + +@navbar@ + +Nonoverloaded member functions of your class, be they static or nonstatic, can be exported to +Io with the ```CLIO_METHOD``` macro inside a ```CLIO_CLASS``` definition. +``` +CLIO_CLASS(Class) +{ + CLIO_METHOD(function1); + CLIO_METHOD(function2); + CLIO_METHOD(function3); + ... +} +``` +Where ``function1`` to ``function3``` are the names of the member functions. + +From Io, you will then be able to use the registered member functions with +``` +object := Class clone +result := object function1( arguments ) +``` +All arguments and the function return value will be converted as best as clio knows. Numeric +C++ values are converted to/from ``Number`` in io, strings (``std::string`` and ``char *``) +are converted to/from Io ``Sequence``. References, pointers and values of class type are +converted to/from objects, and by default, ownership does not change; that means Io will not +delete an object just because you returned a pointer to it in a wrapped function. Likewise, +you don't take over responsibility for deleting an object that was passed into a C++ function +via a pointer/reference type argument. Read [Lifetime Management lifetime.html] to learn how +to change that in isolated cases, and how to get rid of having to think about it. + +Static member functions can be invoked directly on the class prototype: +``` +result := Class staticFunction2( arguments ) +``` + +@navbar@ Added: clio/trunk/clio/doc/notes.t2t.in =================================================================== --- clio/trunk/clio/doc/notes.t2t.in (rev 0) +++ clio/trunk/clio/doc/notes.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -0,0 +1,30 @@ +Notes + + +@navbar@ + +Some general notes on clio's elements. You will interact with clio mostly over its macros. +all clio macros start with ``CLIO_`` and are all caps. If not mentioned otherwise, all macros +need to be used outside of any namespace scope, and you'll need to refer to your own types +inside namespaces with their full scope (more on that later on [namespaces and nesting namespaces.html]). + +There are two types of macros: header macros and implementation macros. The vast majority +of macros are header macros; they'll need to be used in headers that are included from all clio using +files that interact with the same objects the macros interact with. Implementation macros can be put +into .cpp files and do their work from there, without the need to be visible by everyone. + +We'll tell you when a macro is an implementation macro. + +All C++ objects defined by clio itself reside in the ``clio`` namespace. + +All macros require at least the ``clio/clio.h`` header to be included. + +All macros looking like function calls will require a semicolon after them. + +By default, clio enforces the Io coding standards. Everything that maps to prototypes +(Classes, namespaces and template instantiators) +get a name starting with an uppercase letter in Io, everything that maps +to an object or method (functions, enum values) gets a lowercase start letter. + +@navbar@ + Modified: clio/trunk/clio/doc/onefile.sh =================================================================== --- clio/trunk/clio/doc/onefile.sh 2008-02-23 17:55:22 UTC (rev 8085) +++ clio/trunk/clio/doc/onefile.sh 2008-02-23 17:55:59 UTC (rev 8086) @@ -13,7 +13,7 @@ source=`echo $f | sed -e "s!^!${srcdir}/!" -e "s!\.html!.t2t.in!"` echo $source lines=`wc -l < ${source}` - head ${source} -n 1 | sed -e "s!^!=!" -e "s!\$!=!" >> all.t2t + head ${source} -n 1 | sed -e "s!^!==!" -e "s!\$!==!" >> all.t2t tail ${source} -n $(( ${lines} - 3 )) | grep -v @navbar@ >> all.t2t done Added: clio/trunk/clio/doc/state.t2t.in =================================================================== --- clio/trunk/clio/doc/state.t2t.in (rev 0) +++ clio/trunk/clio/doc/state.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) @@ -0,0 +1,26 @@ +Io State + + +@navbar@ + +Io is capable of handling several states, or virtual machines, with independent +scripting code and data in paralell. Clio provides a lean manager class for these states, +it is defined in the header +``` +#include <clio/state.hpp> +``` + +The default constructor creates a state that is destroyed in the destructor again. The conversion +constructor that takes a plain ``IoState *`` as argument leaves that alone in the destructor. +The ``IoState *`` conversion operator makes sure you can use all the Io C interface functions +that accept such a pointer with a wrapper object. + +The most important member function is ``void clio::State::Register()``. Calling it on a state +will make all clio bindings known to scripts in that state. + +After that is done, you can execute Io commands with the ``DoString()`` function or whole files with the +``DoFile()`` function. + +% TODO: Allow something useful to be done with the return value. + +@navbar@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 19:02:15
|
Revision: 8087 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8087&view=rev Author: bazaarmagetron Date: 2008-02-23 11:02:02 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: added enum docs. Modified Paths: -------------- clio/trunk/clio/doc/Makefile.am clio/trunk/clio/doc/inheritance.t2t.in clio/trunk/clio/doc/main.t2t.in Added Paths: ----------- clio/trunk/clio/doc/classes_special.t2t.in clio/trunk/clio/doc/enums.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 18:46:10.209000111 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 19:31:15.259999990 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - doc/inheritance.t2t.in inheritance.t2t.in-20080223174548-6lu83jc42kiik5rd-2 doc/state.t2t.in state.t2t.in-20080223174548-6lu83jc42kiik5rd-6 doc/methods.t2t.in methods.t2t.in-20080223174548-6lu83jc42kiik5rd-4 doc/classes_simple.t2t.in classes_simple.t2t.i-20080223174548-6lu83jc42kiik5rd-1 doc/notes.t2t.in notes.t2t.in-20080223174548-6lu83jc42kiik5rd-5 + doc/enums.t2t.in enums.t2t.in-20080223183110-r7mlo3pf3wpqrtoe-2 doc/classes_special.t2t.in classes_special.t2t.-20080223183110-r7mlo3pf3wpqrtoe-1 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg 26 z-...@us...-20080223183115-ub0hshkf3zfs69ko Modified: clio/trunk/clio/doc/Makefile.am =================================================================== --- clio/trunk/clio/doc/Makefile.am 2008-02-23 17:55:59 UTC (rev 8086) +++ clio/trunk/clio/doc/Makefile.am 2008-02-23 19:02:02 UTC (rev 8087) @@ -4,12 +4,15 @@ latex $< latex $< -%.t2t: ${srcdir}/%.t2t.in +# copy t2t source file +%.t2t: ${srcdir}/%.t2t.in ${srcdir}/main.t2t.in cp $< $@ -%.html: %.t2t Makefile doc.css navbars +# generate html file from t2t file +%.html: ./%.t2t Makefile doc.css navbars ${srcdir}/main.t2t.in txt2tags --style doc.css -t html -o - $< | sed -e "s!@navbar@!`cat $@.navbar`!" > $@ +# CSS file doc.css: ${srcdir}/doc.css.in cp ${srcdir}/doc.css.in $@ Added: clio/trunk/clio/doc/classes_special.t2t.in =================================================================== --- clio/trunk/clio/doc/classes_special.t2t.in (rev 0) +++ clio/trunk/clio/doc/classes_special.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) @@ -0,0 +1,10 @@ +Difficult Classes + + +@navbar@ + +Not all classes you are going to wrap will be well behaved classes where the ``CLIO_CLASS``-macro works +out of the box. Here come the type traits into play. + + +@navbar@ Added: clio/trunk/clio/doc/enums.t2t.in =================================================================== --- clio/trunk/clio/doc/enums.t2t.in (rev 0) +++ clio/trunk/clio/doc/enums.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) @@ -0,0 +1,38 @@ +Enums + +@navbar@ + +An enumeration like this +``` +enum Type +{ + value1, + value2 ... +}; +``` + +can be made known to clio with the ``CLIO_ENUM`` macro. It is defined in the header ``"clio/enum.h"``. It +basically is used like the ``CLIO_CLASS`` macro, only that you make the enum's values known, not functions: +``` +CLIO_ENUM(Type) +{ + CLIO_ENUM_VALUE( value1 ); + CLIO_ENUM_VALUE( value2 ); + ... +} +``` + +Enums of this type will be treated as objects of a distinct class in Io. You can get objects of this +class, filled with the corresponding enum values, using + +``` +x := Type value1 +``` + +and those are then accepted input values to methods accepting enum parameters, and you can compare +enum values with the ``==``-operator. + +Enums are treated like primitive types when they are passed as reference or pointer arguments +to functions, see [Argument Conversion argument_conversion.html] on what that implies. + +@navbar@ Modified: clio/trunk/clio/doc/inheritance.t2t.in =================================================================== --- clio/trunk/clio/doc/inheritance.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) +++ clio/trunk/clio/doc/inheritance.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) @@ -3,6 +3,43 @@ @navbar@ +If your class ``Class`` inherits from the base classes ``Base1`` and ``Base2``, make that known to clio with +the ``CLIO_CLASS_BASE`` macro: +``` +CLIO_CLASS(Class) +{ + CLIO_CLASS_BASE(Base1); + CLIO_CLASS_BASE(Base2); + ... +} +``` +The effect of this is in Io is that the base classes are added as protos to your class. All registered +methods of the base classes will also be available for objects of your class, and clio will allow +objects of type ``Class`` as arguments for functions that accept one of the base classes. + +Important to note is that the function lookup rules are those of Io, because the lookup is done by Io. +If both ``Base1`` and ``Base2`` export a method ``foo`` to Io, and you call +``` +Class clone() foo() +``` +then the implementation in ``Base1`` will be called, because it is found first. +A corresponding call in C++ would result in an ambiguity error. + +Requirement for this to work: the inheritance needs to be polymorphic, all bases need to have at least +one virtual function, and RTTI needs to be enabled in your compiler options. If one of the base +classes is a plain class without virtual functions, you need to make that known using the +``CLIO_CLASS_SET_POLYMORPHIC`` macro, read more about in [Advanced Classes classes_special.html]. + +You don't need to register all superclasses of your class to clio, but only those you do register +will appear as protos in Io. The effect is pretty much the same as if you had chosen private +inheritance in C++. + +Clio will, if it can, treat all objects as the most derived class it knows. So if you pass Io an +object of type ``Base1`` (via a function returning a pointer), clio will check whether it can be +``dynamic_cast``ed to one of the known subclasses. That is so that clio only has to deal with +one pointer to each object, and not several, a priory unrelated, pointers of different types +to the same object. + @navbar@ Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 17:55:59 UTC (rev 8086) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) @@ -27,6 +27,8 @@ [Inheritance inheritance.html]: how to inform clio about class relations +[Enums enums.html]: how to make enum values known to Io + [Advanced Classes classes_special.html]: abstract classes and classes with missing standard constructors [Method Overloads method_overloads.html]: overloaded member functions This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 19:02:48
|
Revision: 8088 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8088&view=rev Author: bazaarmagetron Date: 2008-02-23 11:02:54 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added documentation for class property type traits. Modified Paths: -------------- clio/trunk/clio/clio/factory.hpp clio/trunk/clio/doc/classes_special.t2t.in clio/trunk/clio/doc/main.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 19:31:15.259999990 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 19:55:39.510999918 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - doc/enums.t2t.in enums.t2t.in-20080223183110-r7mlo3pf3wpqrtoe-2 doc/classes_special.t2t.in classes_special.t2t.-20080223183110-r7mlo3pf3wpqrtoe-1 + Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg 26 z-...@us...-20080223183115-ub0hshkf3zfs69ko + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg 26 z-...@us...-20080223183115-ub0hshkf3zfs69ko 27 z-...@us...-20080223185539-cvhsltp2u12d5lgc Modified: clio/trunk/clio/clio/factory.hpp =================================================================== --- clio/trunk/clio/clio/factory.hpp 2008-02-23 19:02:02 UTC (rev 8087) +++ clio/trunk/clio/clio/factory.hpp 2008-02-23 19:02:54 UTC (rev 8088) @@ -391,7 +391,7 @@ } }; -// used to create a factory. Used bt FactoryCreator with the right parameter. +// used to create a factory. Used byt FactoryCreator with the right parameter. template< class BASE > struct FactoryCreator { static void CreateFactory() Modified: clio/trunk/clio/doc/classes_special.t2t.in =================================================================== --- clio/trunk/clio/doc/classes_special.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) +++ clio/trunk/clio/doc/classes_special.t2t.in 2008-02-23 19:02:54 UTC (rev 8088) @@ -4,7 +4,48 @@ @navbar@ Not all classes you are going to wrap will be well behaved classes where the ``CLIO_CLASS``-macro works -out of the box. Here come the type traits into play. +out of the box. Here come the class properties into play. +Class properties are managed over header templates; you'll have to use them in a place visible to +all clio code that uses your class. You can make the following properties known: +- whether a class has an accessible default constructor. Classes without default constructor will not create + a class object when you call their ``clone`` function on the prototype, you'll need to get + hold of objects by other means. +- whether a class has an accessible copy constructor. Objects of classes without one will raise an error + when you try to ``clone`` them. +- whether the class has an accessible destructor. Objects without one will not be destroyed, and will + therefore leak (with a warning) if you let them be owned by Io. +- whether a class is polymorphic, i.e. whether it has any virtual functions. clio will not attempt + to ``dynamic_cast`` non-polymorphic classes. +- whether a class is abstract, i.e. whether it has pure virtual functions. Abstract classes will not + be created. + + +"accessible" here means "protected or public". Only private constructors/destructors are inaccessible for +clio. + +By default, clio assumes all classes are polymorphic, non-abstract and have all standard constructors. + +The macros controlling these properties are ``CLIO_CLASS_SET_DEFAULTCONSTRUCTOR``, +``CLIO_CLASS_SET_COPYCONSTRUCTOR``, ``CLIO_CLASS_SET_DESTRUCTOR``, ``CLIO_CLASS_SET_POLYMORPHIC`` +and ``CLIO_CLASS_SET_ABSTRACT``. They all are used in the same way: +``` +CLIO_CLASS_SET_COPYCONSTRUCTOR( Class, false ); +``` +will tell clio that ``Class`` has no copy constructor, +``` +CLIO_CLASS_SET_DESTRUCTOR( Class, true ); +``` +will tell it that ``Class`` has an accessible destructor. + +Most of these properties are "sticky": if you tell clio that ``Class`` has no copy constructor, it will +assume all subclasses of ``Class`` will have no copy constructor either, until you notify it otherwise +with a corresponding macro usage on one of the derived classes. + +The exception is ``CLIO_CLASS_SET_ABSTRACT``; that macro only applies to the class itself, derived +classes will be assumed to be concrete classes unless you declare them abstract as well. This is so +you save work, usually there are many concrete implementations for every abstract base class, whereas +classes derived from a non-copyable class usually stay non-copyable. + @navbar@ Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 19:02:02 UTC (rev 8087) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 19:02:54 UTC (rev 8088) @@ -31,14 +31,16 @@ [Advanced Classes classes_special.html]: abstract classes and classes with missing standard constructors +[Argument Conversion argument_conversion.html]: how clio handles function argument conversion + [Method Overloads method_overloads.html]: overloaded member functions +[Constructors method_overloads.html]: custom constructors + [Virtuals virtuals.html]: how to overload virtual C++ member functions from Io [Template Classes classes_template.html]: template classes -[Argument Conversion argument_conversion.html]: how clio handles function argument conversion (marshalling) - [Namespaces and Nesting namespaces.html]: how C++ namespaces and nested classes are handled [Lifetime Management lifetime.html]: how you make it so that your objects stay alive as long as C++ and Io are still interested in them This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <baz...@us...> - 2008-02-23 21:19:56
|
Revision: 8089 http://armagetronad.svn.sourceforge.net/armagetronad/?rev=8089&view=rev Author: bazaarmagetron Date: 2008-02-23 13:20:00 -0800 (Sat, 23 Feb 2008) Log Message: ----------- Manuel Moos: Added template doc, begun data conversion doc. Discovered odditiy in "Clio Ref" template, investigating. Modified Paths: -------------- clio/trunk/clio/clio/proxy.hpp clio/trunk/clio/clio/std_container.hpp clio/trunk/clio/clio/typetraits.hpp clio/trunk/clio/doc/classes_simple.t2t.in clio/trunk/clio/doc/main.t2t.in clio/trunk/clio/doc/notes.t2t.in clio/trunk/clio/tests/basic.test/test.cpp clio/trunk/clio/tests/runtest.sh clio/trunk/clio/tests/templates.test/test.cpp Added Paths: ----------- clio/trunk/clio/doc/argument_conversion.t2t.in clio/trunk/clio/doc/classes_template.t2t.in Property Changed: ---------------- clio/trunk/clio/ Property changes on: clio/trunk/clio ___________________________________________________________________ Name: bzr:revision-info - timestamp: 2008-02-23 19:55:39.510999918 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio + timestamp: 2008-02-23 22:13:52.453000069 +0100 committer: Manuel Moos <z-...@us...> properties: branch-nick: clio Name: bzr:file-ids - + doc/argument_conversion.t2t.in argument_conversion.-20080223211340-si5o2t2dx2vhsmwd-1 doc/classes_template.t2t.in classes_template.t2t-20080223211340-si5o2t2dx2vhsmwd-2 Name: bzr:revision-id:v3-list-QlpoOTFBWSZTWZvbKhsAAAdRgAAQABK6798QIABURMgAAaeoNT1TxT1DQbKaeobXKiyAmlWT7Y5MkdJOtXDtB7w7DOGFBHiOBxaUIu7HQyyQSvxdyRThQkJvbKhs - 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg 26 z-...@us...-20080223183115-ub0hshkf3zfs69ko 27 z-...@us...-20080223185539-cvhsltp2u12d5lgc + 4 z-...@us...-20080222202821-mkuiwckx41jof2gj 5 z-...@us...-20080222202957-htiysaaxkiroqd7e 6 z-...@us...-20080222211806-jc50b77qlgn2dp8j 7 z-...@us...-20080222215601-p8y78c77ncvq5eb1 8 z-...@us...-20080222223809-mmh9wh6yzrdm7oa1 9 z-...@us...-20080222232123-uhnuqd9db0p27rkf 10 z-...@us...-20080222232154-k64q4ee9zuq5r2jp 11 z-...@us...-20080222234236-ny0hc8lwybz73rv6 12 z-...@us...-20080223000039-566psft2c96236kw 13 z-...@us...-20080223000530-4mtket15l6oeo1ju 14 z-...@us...-20080223001030-5t86d3u3bidpoq6r 15 z-...@us...-20080223002857-qvx8z72tmsoguku0 16 z-...@us...-20080223004917-abqn3vdfqb1euyzc 17 z-...@us...-20080223010025-h0nul9yntjvutdbq 18 z-...@us...-20080223013357-1nzhrjwjr4g0h7g9 19 z-...@us...-20080223015240-btmt95d1vvlip4gl 20 z-...@us...-20080223124731-dlwuagon76gq2o3g 21 z-...@us...-20080223133015-0hjqyrki59ydwdcv 22 z-...@us...-20080223135113-icwd4g99yev9n0u2 23 z-...@us...-20080223152916-8rm942q1rmjlueca 24 z-...@us...-20080223174524-3lb2wm6tt5nytd4b 25 z-...@us...-20080223174610-gwmr3fn8456rwvmg 26 z-...@us...-20080223183115-ub0hshkf3zfs69ko 27 z-...@us...-20080223185539-cvhsltp2u12d5lgc 28 z-...@us...-20080223211352-km18u9bp9qhufyta Modified: clio/trunk/clio/clio/proxy.hpp =================================================================== --- clio/trunk/clio/clio/proxy.hpp 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/clio/proxy.hpp 2008-02-23 21:20:00 UTC (rev 8089) @@ -262,8 +262,8 @@ #include "typetraits.hpp" #include "macros.hpp" -CLIO_TEMPLATE_SET_DEFAULTCONSTRUCTOR( clio::WrapperBaseConst, (1,(class)), false ); -CLIO_TEMPLATE_SET_ABSTRACT( clio::WrapperBaseConst, (1,(class)), true ); +CLIO_TEMPLATE_CLASS_SET_DEFAULTCONSTRUCTOR( clio::WrapperBaseConst, (1,(class)), false ); +CLIO_TEMPLATE_CLASS_SET_ABSTRACT( clio::WrapperBaseConst, (1,(class)), true ); CLIO_TEMPLATE_CLASS( clio::WrapperBaseConst, (1,(class)) ) { typedef typename clio::WrapperBaseConst<T1>::BASE BASE; @@ -271,8 +271,8 @@ CLIO_CLASS_BASE( BASE ); } -CLIO_TEMPLATE_SET_DEFAULTCONSTRUCTOR( clio::WrapperBase, (1,(class)), false ); -CLIO_TEMPLATE_SET_ABSTRACT( clio::WrapperBase, (1,(class)), true ); +CLIO_TEMPLATE_CLASS_SET_DEFAULTCONSTRUCTOR( clio::WrapperBase, (1,(class)), false ); +CLIO_TEMPLATE_CLASS_SET_ABSTRACT( clio::WrapperBase, (1,(class)), true ); CLIO_TEMPLATE_CLASS( clio::WrapperBase, (1,(class)) ) { CLIO_CLASS_BASE( WrapperBaseConst<T1> ); Modified: clio/trunk/clio/clio/std_container.hpp =================================================================== --- clio/trunk/clio/clio/std_container.hpp 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/clio/std_container.hpp 2008-02-23 21:20:00 UTC (rev 8089) @@ -140,7 +140,7 @@ extern char const * vectorProxyCodeConst; } -CLIO_TEMPLATE_SET_DEFAULTCONSTRUCTOR( clio::ConstVectorProxy, (1,(class)), false ); +CLIO_TEMPLATE_CLASS_SET_DEFAULTCONSTRUCTOR( clio::ConstVectorProxy, (1,(class)), false ); CLIO_TEMPLATE_CLASS( clio::ConstVectorProxy, (1,(class))) { @@ -167,7 +167,7 @@ CLIO_TEMPLATE_CLASS_EX( std::vector, (1,(class)), "RawVector" ){} -CLIO_TEMPLATE_SET_DEFAULTCONSTRUCTOR( clio::VectorWrapper, (1,(class)), true ); +CLIO_TEMPLATE_CLASS_SET_DEFAULTCONSTRUCTOR( clio::VectorWrapper, (1,(class)), true ); CLIO_TEMPLATE_CLASS_EX( clio::VectorWrapper, (1,(class)), "Vector" ) { CLIO_CLASS_NAMESPACE("std"); Modified: clio/trunk/clio/clio/typetraits.hpp =================================================================== --- clio/trunk/clio/clio/typetraits.hpp 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/clio/typetraits.hpp 2008-02-23 21:20:00 UTC (rev 8089) @@ -255,10 +255,10 @@ #define CLIO_CLASS_SET_POLYMORPHIC( CLASS, VALUE ) CLIO_SET_STICKY( clio::PropertyPolymorphic, CLASS, VALUE ) #define CLIO_CLASS_GET_POLYMORPHIC( CLASS ) CLIO_GET_STICKY( clio::PropertyPolymorphic, CLASS ) -#define CLIO_TEMPLATE_SET_DEFAULTCONSTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyDefaultConstructor, CLASS, SIGNATURE, VALUE ) -#define CLIO_TEMPLATE_SET_COPYCONSTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyCopyConstructor, CLASS, SIGNATURE, VALUE ) -#define CLIO_TEMPLATE_SET_DESTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyDestructor, CLASS, SIGNATURE, VALUE ) -#define CLIO_TEMPLATE_SET_POLYMORPHIC( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyPolymorphic, CLASS, SIGNATURE, VALUE ) +#define CLIO_TEMPLATE_CLASS_SET_DEFAULTCONSTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyDefaultConstructor, CLASS, SIGNATURE, VALUE ) +#define CLIO_TEMPLATE_CLASS_SET_COPYCONSTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyCopyConstructor, CLASS, SIGNATURE, VALUE ) +#define CLIO_TEMPLATE_CLASS_SET_DESTRUCTOR( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyDestructor, CLASS, SIGNATURE, VALUE ) +#define CLIO_TEMPLATE_CLASS_SET_POLYMORPHIC( CLASS, SIGNATURE, VALUE ) CLIO_SET_STICKY_TEMPLATE( clio::PropertyPolymorphic, CLASS, SIGNATURE, VALUE ) // nonsticky properties only affect a single class. Specialize the class to override the default template< class INFO, class CLASS > struct NonStickyProperty @@ -302,7 +302,7 @@ #define CLIO_CLASS_SET_ABSTRACT( CLASS, VALUE ) CLIO_SET_NONSTICKY( clio::PropertyAbstract, CLASS, VALUE ) #define CLIO_CLASS_GET_ABSTRACT( CLASS ) CLIO_GET_NONSTICKY( clio::PropertyAbstract, CLASS ) -#define CLIO_TEMPLATE_SET_ABSTRACT( CLASS, SIGNATURE, VALUE ) CLIO_SET_NONSTICKY_TEMPLATE( clio::PropertyAbstract, CLASS, SIGNATURE, VALUE ) +#define CLIO_TEMPLATE_CLASS_SET_ABSTRACT( CLASS, SIGNATURE, VALUE ) CLIO_SET_NONSTICKY_TEMPLATE( clio::PropertyAbstract, CLASS, SIGNATURE, VALUE ) } Added: clio/trunk/clio/doc/argument_conversion.t2t.in =================================================================== --- clio/trunk/clio/doc/argument_conversion.t2t.in (rev 0) +++ clio/trunk/clio/doc/argument_conversion.t2t.in 2008-02-23 21:20:00 UTC (rev 8089) @@ -0,0 +1,104 @@ +Argument Conversion + + +@navbar@ + +Objects need to be passed from C++ to Io and back whenever the language is switched, for example when +function arguments are passed or the result returned. If an object is to +be converted from C++ to Io, the C++ type is known, and the resulting Io type can be freely chosen +as the conversion routine sees fit. If an object is to be converted from Io to C++, the situation is +different; the incoming type and the outgoing type are fixed, C++ does not accept arbitrary types +as input. In both conversion directions, there is one well defined C++ type, let's look at the +different types: + +=== Primitives === + +- number types: int, float, char, unsigned short, ... All of these are converted to ``Number`` in Io, + and only ``Number`` objects are accepted as valid conversion input from Io. +- bool: gets transformed into ``true`` or ``false``, two objects defined on the Io lobbby. Only + those two are accepted as input from Io. +- enums: make it into Io as instances of the corresponding enum class, see [Enums enums.html]. This + works even if the enum type is not registered with clio, but then you won't be able to use the object + meaningfulyl in Io, you'll only be able to pass it around and have it transformed back to C++ unharmed. + On conversion from Io to C++, only enum objects of the correct type are accepted. + + +References and pointers to primitives are converted over primitive proxies. If a reference to a primitive +is converted to Io, an proxy object is created that will act just like the object that would have +been created if the C++ object was a value of the same type. The proxy is hovever still tied to +the C++ value, and if the value in C++ changes, the proxy changes value, too. Also, if the C++ reference/pointer +was not ``const``, the proxy object has a ``set`` method with which you can set the value in C++. + +Example C++ code: +``` +class X +{ +public: + X(): value(0){} + int & access(){ return value_; } + int get() const { return value_; } + void getRef( int & value ){ value = value_; } +private: + int value_; +}; + +CLIO_CLASS(X){ CLIO_METHOD(get); CLIO_METHOD(access); CLIO_METHOD(getRef); } +``` + +Io session: +``` +>>> x := X clone +>>> x get println // nothing unusual so far. +0 +>>> proxy1 := x access // returns proxy 1 +>>> proxy2 := x access // returns proxy 2 +>>> proxy1 println +0 +>>> proxy2 println +0 +>>> proxy1 set( 5 ) // sets proxy value, will affect original C++ value and other proxies +>>> proxy2 println +5 +>>> x get println +5 +``` + +Some Io functions are picky about the object type, for them, you'll have to "unbox" the primitive +from the proxy via the proxy's ``get`` method: + +``` +>>> BigNum with( proxy1 get ) +``` + +Proxies are chained to the object they come from. This means that as long as a proxy is alive, the +garbage collector will not collect the object it is contained in. If the object is destroyed anyway +(from C++, presumably), the proxy breaks and all accesses to it fail. Proxies break easily if clio +cannot determine which object they belong to; proxies to static values or objects unknown to clio +or inside dynamic containers will be very fragile. + +If on conversion to C++, a non-const reference type is expected, you need to supply one of those +proxy objects. They also exist in unbound form where they carry the value around with them. You can +access the class of them with ``Clio Ref With( <type> )`` (most available with a shorter name). +To use the ``getRef`` method of the example +class, you'd need to do this: +``` +>>> proxy := Clio Int with(0) +>>> x getRef( proxy ) +>>> x println +5 +``` +Don't worry about getting the type right. The error message the function gives you when you pass in +a wrong type will tell you what was expected. + +=== Strings === + +From C++ to Io, all things looking stringy (``std::string (const &/*)``, ``const char *``, ``char *``) are converted +to ``Sequence`` objects. + +Conversion to C++ is a bit more complicated. If conversion to C++ expects a std::string + +TO BE CONTINUED + + + +@navbar@ Modified: clio/trunk/clio/doc/classes_simple.t2t.in =================================================================== --- clio/trunk/clio/doc/classes_simple.t2t.in 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/doc/classes_simple.t2t.in 2008-02-23 21:20:00 UTC (rev 8089) @@ -14,7 +14,7 @@ The thing in the braces is actually a function body some member function of a management helper class. You can do in it whatever you can do in regular functions; this comes in handy later with template -classes. +classes. Also note that there is no semicolon at the end of the block. From Io, you will then be able to create objects of your class using ``` Added: clio/trunk/clio/doc/classes_template.t2t.in =================================================================== --- clio/trunk/clio/doc/classes_template.t2t.in (rev 0) +++ clio/trunk/clio/doc/classes_template.t2t.in 2008-02-23 21:20:00 UTC (rev 8089) @@ -0,0 +1,151 @@ +Template Classes + + + +@navbar@ +=== Template Signatures === + +In C++, template argument lists and signatures look like ``< class T, int I >``. +As much as we'd like clio to just work with +signatures of that form, it's not possible: macros don't know abot the delimiters < and > and would +assume the comma is an argument separator. Therefore, for clio, template argument lists +and signatures are passed in the form +``` +(<argument count>,(argument 1,argument 2,...,argument n)) +``` +This form can be unpacked by smart macros. + +Some simple examples. A template signature ``template< class T >`` would in clio be simply known +as ``(1,(class))``, meaning that there is one argument, and it is of class type. ``template< int I >`` +would be known as ``(1,(int))``. ``template< int X, class T, bool B >`` would be ``(3,(int, class, bool))``. + +The same principle applies to template instantiations; if you instantiate the ``template< class T >`` +template with ``T == std::string``, then the resulting instance will be known to have type +``(1,(std::string))`` in clio. It's not too bad once you got used to it. + +=== Template Classes === + +For all the ``CLIO_CLASS_X( Class, ... )`` macros, there are corresponding +CLIO_TEMPLATE_CLASS_X( Class, Signature, ...)`` macros. All of them are header macros. + +Say you have this template class: +``` +template< class T, int I > +class SomeTemplate +{ +public: + void f( T & ); +private: + SomeTemplate( SomeTemplate const & ); // inaccessible copy constructor +}; +``` + +Then you can make it know to clio that the copy constructor is hidden with +``` +CLIO_TEMPLATE_CLASS_COPYCONSTRUCTOR( SomeTemplate, (2,(class,int)), false ); +``` +and make the class known with +``` +CLIO_TEMPLATE_CLASS( SomeTemplate, (2,(class,int)) ) +{ + CLIO_METHOD( f ); +} +``` + +It has been noted earlier that the block after ``CLIO_CLASS`` (and therefore the block +after ``CLIO_TEMPLATE_CLASS`` as well) is really a function block. In the case of templates, +there is one more thing you need to know: inside the block, the type ``CLASS`` is the +type of the template that is currently getting instantiated, and T1, T2, ... are the values +of the template parameters. + +Also, the ``CLIO_CLASS_BASE()`` macro and other macros may have problems with template types +(remember the comma problem?). It is therefore wise to create ``typedef``s for all types +you are going to use in a ``CLIO_TEMPLATE_CLASS`` block, like here: + +``` +template< class T, int I > +class SomeOtherTemplate: public BaseTemplate< T, I > +{ + ... +}; + +CLIO_TEMPLATE_CLASS( SomeOtherTemplate, (2,(class,int)) ) +{ + typedef BaseTemplate< T1, T2 > BASE; + CLIO_CLASS_BASE( BASE ); + ... +} + +``` + +=== Instantiation === + +So, after all this work, how do you access template instances from Io? Unfortunately, you don't, you're not +done yet. Templates need to be instantiated before they can be used. The easiest to understand way +is explicit instantiation; his happens over the implementation macro (can be used in ``.cpp`` files) +``CLIO_INSTANTIATE_TEMPLATE( <template>, <arguments>, <name> )``. <template> is the name +of the template ot instantiate, <arguments> is the list of arguments in clio-format, and <name> is +the class name you want your template instance to be known as, it can be freely choosen per instance, +but of course you're encouraged to follow some system. Take the ``SomeTemplate`` from earlier; +you would instantiate ``SomeTemplate< std::string, 5 >`` with +``` +CLIO_INSTANTIATE_TEMPLATE( SomeTemplate, (2,(std::string,5)), "SomeTemplate_string_5" ); +``` + +In Io, you'll then be able to do +``` +x := SomeTemplate_string_5 clone +x f( "string" ); +``` + +=== Master Classes === + +Templates can be instantiated automatically. This happens, for example, when you use one as a +function argument and export that function to clio, or if it appears as a base class, +or by any other way you can automatically instantiate a template and clio noticing it. +But these instantiations will, at first, stay invisible and have no name you can access +them by. Enter master classes. Master classes manage all instantiations of a specific template. +There are two kinds of master classes: one that is itself an instance of the given template, +the other one isn't. + +To make a template instance the master of the whole template, use the +header macro ``CLIO_TEMPLATE_CLASS_MASTER( <template>, <signature>, <arguments> )``, +where <template> is the +template in question, <signature> is the template's signature and <arguments> +are the template arguments for the master instance in +the usual notation. This will have two effects: for one, it has the same effect as +``CLIO_INSTANTIATE_TEMPLATE( <template>, <arguments>, <template name> )``: it makes the +master instance accessible by the template's own name. The second effect is that ALL template +instances clio knows about will be accessible via the "With" prototype method of the master. +Notice the capital "W". it is technically a method and should therefore get a lowercase "w", but +its sole purpose is to give you access to the template instance class prototyles and therefore +deserves the capital. + +Example. Take again the ``SomeTemplate`` template from avove. We'd like to make the instance +``SomeTemplate< int, 0 >`` the default instance, so we use +``` +CLIO_TEMPLATE_CLASS_MASTER( SomeTemplate, (2,(class,int)), (2,(int,0)) ); +``` +Now, we can type in Io: +``` +master := SomeTemplate clone // returns a SomeTemplate< int, 0 > instance +master f( 5 ) // calls SomeTemplate< int, 0 > ::f + +instance := SomeTemplate With( Sequence, 5 ) clone // returns a SomeTemplate< std::string, 5 > instance +instance f( "bla" ) +``` + +The "With" instance prototype access function is a regular overloaded function that accepts +values (or prototypes) of the types of the instantiated templates. + +If the template is a container of sorts, the best choice for class arguments of the master +instance would be ``IoObjectPointer``, defined in the header ``"clio/gcpointer.hpp"``. It will make +the template usable with arbitrary Io objects. + +For master classes of the other type, you need a dummy, empty class. Then, the format of the +macro to use is ``CLIO_TEMPLATE_CLASS_NOMASTER( <template>, <signature>, <dummy class> )``. +The effect is the same as that of ``CLIO_TEMPLATE_CLASS_MASTER``, except that the master +class itself will be empty, abstract and therefore unusable except for accessing the +template instances. + +@navbar@ Modified: clio/trunk/clio/doc/main.t2t.in =================================================================== --- clio/trunk/clio/doc/main.t2t.in 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/doc/main.t2t.in 2008-02-23 21:20:00 UTC (rev 8089) @@ -15,7 +15,9 @@ = Manual = -Things you'll need to know, hopefully in the order you'll need them in. +Things you'll need to know, ordered so you can read it from top to bottom and actually +understand something without too many future references, and hopefully also in a useful +order that teaches the most important things first. [Notes notes.html]: general notes @@ -37,10 +39,10 @@ [Constructors method_overloads.html]: custom constructors +[Template Classes classes_template.html]: template classes + [Virtuals virtuals.html]: how to overload virtual C++ member functions from Io -[Template Classes classes_template.html]: template classes - [Namespaces and Nesting namespaces.html]: how C++ namespaces and nested classes are handled [Lifetime Management lifetime.html]: how you make it so that your objects stay alive as long as C++ and Io are still interested in them Modified: clio/trunk/clio/doc/notes.t2t.in =================================================================== --- clio/trunk/clio/doc/notes.t2t.in 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/doc/notes.t2t.in 2008-02-23 21:20:00 UTC (rev 8089) @@ -21,6 +21,10 @@ All macros looking like function calls will require a semicolon after them. +Most macros also have variants ending in _EX; the difference is that in the _EX variant, +you have additional parameters. If nothing else is said, the extra argument simply is the +Io name of the object created by the macro. + By default, clio enforces the Io coding standards. Everything that maps to prototypes (Classes, namespaces and template instantiators) get a name starting with an uppercase letter in Io, everything that maps Modified: clio/trunk/clio/tests/basic.test/test.cpp =================================================================== --- clio/trunk/clio/tests/basic.test/test.cpp 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/tests/basic.test/test.cpp 2008-02-23 21:20:00 UTC (rev 8089) @@ -45,7 +45,7 @@ int Len( std::string s ) { return s.size(); } int Len( std::string s ) const { return s.size(); } char const * Convert( std::string const & s ) { return s.c_str(); } - std::string const & Convert2( std::string & s ) { return s; } + std::string const & Convert2( std::string & s ) { s = s + s; return s; } TestWrapper const * Ptr2( TestWrapper * s ) { return s; } bool NOP( std::string const & s ) { return false; } @@ -148,6 +148,12 @@ TestString( state, "writeln( testObject lenConst(\"har\") )" ); TestString( state, "writeln( testObject nop(\"har\") )" ); TestString( state, "writeln( testObject convert(\"har\") )" ); + + TestString( state, "s := Clio Ref With( Clio Int ) with(1)" ); + TestString( state, "s := Clio Ref With( Sequence ) clone set( \"har\")" ); + TestString( state, "writeln( s )" ); + TestString( state, "writeln( testObject convert2( s ) )" ); + TestString( state, "writeln( testObject ptr( testObject ) )" ); // test creating objects Modified: clio/trunk/clio/tests/runtest.sh =================================================================== --- clio/trunk/clio/tests/runtest.sh 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/tests/runtest.sh 2008-02-23 21:20:00 UTC (rev 8089) @@ -5,7 +5,7 @@ dirbase=`echo $1 | sed -e "s,.result$,,"` dir=${dirbase}.test fulldir=${dir} -test "." == "${srcdir}" || fulldir=${srcdir}/${dir} +test "." = "${srcdir}" || fulldir=${srcdir}/${dir} touch ${dirbase}.failed Modified: clio/trunk/clio/tests/templates.test/test.cpp =================================================================== --- clio/trunk/clio/tests/templates.test/test.cpp 2008-02-23 19:02:54 UTC (rev 8088) +++ clio/trunk/clio/tests/templates.test/test.cpp 2008-02-23 21:20:00 UTC (rev 8089) @@ -55,8 +55,8 @@ } template< class T > class NONAME{}; -CLIO_TEMPLATE_SET_POLYMORPHIC( base::TemplateTestBase, (3,(class,class,int)), false ); -CLIO_TEMPLATE_SET_POLYMORPHIC( TemplateTest, (1,(class)), true ); +CLIO_TEMPLATE_CLASS_SET_POLYMORPHIC( base::TemplateTestBase, (3,(class,class,int)), false ); +CLIO_TEMPLATE_CLASS_SET_POLYMORPHIC( TemplateTest, (1,(class)), true ); void breakp() { @@ -74,6 +74,7 @@ CLIO_TEMPLATE_CLASS( TemplateTest, (1,(class))) { + typedef CLASS C; typedef base::TemplateTestBase<T1,T1,2> BASE; CLIO_CLASS_BASE( BASE ); CLIO_METHOD( f ); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |