[pygccxml-commit] SF.net SVN: pygccxml: [389] pyplusplus_dev/docs
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2006-08-09 12:50:48
|
Revision: 389 Author: roman_yakovenko Date: 2006-08-09 05:50:32 -0700 (Wed, 09 Aug 2006) ViewCVS: http://svn.sourceforge.net/pygccxml/?rev=389&view=rev Log Message: ----------- updating documentation Modified Paths: -------------- pyplusplus_dev/docs/documentation/architecture.rest pyplusplus_dev/docs/history/history.rest pyplusplus_dev/docs/links.rest Modified: pyplusplus_dev/docs/documentation/architecture.rest =================================================================== --- pyplusplus_dev/docs/documentation/architecture.rest 2006-08-09 06:06:50 UTC (rev 388) +++ pyplusplus_dev/docs/documentation/architecture.rest 2006-08-09 12:50:32 UTC (rev 389) @@ -168,7 +168,8 @@ ------------- Do you know how many ways exist to export member function? It is up to you to -find the answer to the question. Please consider next use cases: +find the answer to the question. Please consider next function properties and +mix of them: * function is non virtual, virtual or pure virtual @@ -178,20 +179,34 @@ * function could be an ``operator()`` or an ``operator[]`` -As you see, there are a lot of use cases. How does code creators solves the -problem? There is almost a direct mapping between code creators and use cases. -Code creator knows what code should be generated, in order to export this or that -declaration. That is the only job of code creators. For example: +* function could be overloaded -* ``code_creators.enum_t`` generates code, that will export named enum +As you see, there are a lot of use cases. How does ``code creator``s solves the +problem? There is almost a direct mapping between ``code creator``s and use cases. +``Code creator`` knows what code should be generated, in order to export a +declaration. That is the only job of ``code creator``s. For example: + +* ``code_creators.enum_t`` generates registration code for an enumeration -* ``code_creators.indexing_suite2_t`` generates code, that will export stl container +* ``code_creators.indexing_suite2_t`` generates registration code for an stl container -There are primary 2 kinds of code creators: declaration based and others. -Declaration based code creator creates code or part of it, that will export the -declaration. For example: in order to export virtual function, `pyplusplus`_ -creates 3 code creators: +* ``code_creators.mem_fun_pv_t`` generates registration code for public, pure + virtual function + +* ``code_creators.mem_fun_pv_wrapper_t`` generates declaration code for public, + pure virtual function + +* ``code_creators.include_t`` generates include directives +* ``code_creators.custom_text_t`` adds some custom( read user ) text\\code to + the generated code + +As you can see, there are primary 2 kinds of ``code creator``s: declaration based +and others. Declaration based creator generate code, that is needed to export the +declaration. There a lot of use cases, where in order to export a declaration, +`pyplusplus`_ builds more then one ``code creator``. For example: in order to +export virtual function 3 ``code creator``s are built: + ( I will reuse example from `boost.python`_ `tutorials`__.) .. __ : http://boost.org/libs/python/doc/tutorial/doc/html/python/exposing.html#python.virtual_functions_with_default_implementations @@ -202,7 +217,12 @@ 3. ``f`` registration code -Now when you understand, what code creator is, it is a time to move on - composite +Reminder: classes, defined in ``pyplusplus.decl_wrappers`` package, are used as +configuration to ``code creator``. So, ``code creator`` keeps reference to +declaration and when it is requested to generate code, it does this according +to declaration configuration. + +Now when you understand, what ``code creator`` is, it is a time to move on - composite code creator. Composite code creator is a creator, that contains other creators. For example: ``code_creators.class_t`` or ``code_creators.module_t``. They embed the code created by internal code creators within the code they create. Modified: pyplusplus_dev/docs/history/history.rest =================================================================== --- pyplusplus_dev/docs/history/history.rest 2006-08-09 06:06:50 UTC (rev 388) +++ pyplusplus_dev/docs/history/history.rest 2006-08-09 12:50:32 UTC (rev 389) @@ -22,8 +22,8 @@ 0.8.1 ----- -1. Georgiy Dernovoy contributed a patch, that allows `pyplusplus`_ GUI to save\load - last used header file. +1. Georgiy Dernovoy contributed a patch, that allows `pyplusplus`_ GUI to + save\\load last used header file. 2. `pyplusplus`_ improved a lot functionality related to providing feedback to user: Modified: pyplusplus_dev/docs/links.rest =================================================================== --- pyplusplus_dev/docs/links.rest 2006-08-09 06:06:50 UTC (rev 388) +++ pyplusplus_dev/docs/links.rest 2006-08-09 12:50:32 UTC (rev 389) @@ -11,14 +11,20 @@ Thanks to Allen Bierbaum `pyplusplus`_ now has `wiki`_. We use it primary to discuss new features, that will be introduced in future versions. +.. _`wiki` : https://realityforge.vrsource.org/view/PyppApi/WebHome + ------- Reading ------- * `Building Hybrid Systems with Boost.Python`_ + .. _`Building Hybrid Systems with Boost.Python` : http://www.boost-consulting.com/writing/bpl.html + * `A rationale for semantically enhanced library languages`_ + .. _`A rationale for semantically enhanced library languages` : http://www.research.att.com/~bs/SELLrationale.pdf + ".. A Semantically Enhanced Library Language (a SEL language or a SELL) is a dialect created by supersetting a language using a library and then subsetting the result using a tool that `understands` the syntax and semantics of both @@ -28,14 +34,43 @@ * `Aspect oriented programming`_ - + + .. _`Aspect oriented programming` : http://en.wikipedia.org/wiki/Aspect-oriented_programming + `pyplusplus`_ borrowed few ideas from this programming paradigm. +-------------- +Help resources +-------------- -.. _`Aspect oriented programming` : http://en.wikipedia.org/wiki/Aspect-oriented_programming -.. _`A rationale for semantically enhanced library languages` : http://www.research.att.com/~bs/SELLrationale.pdf -.. _`Building Hybrid Systems with Boost.Python` : http://www.boost-consulting.com/writing/bpl.html -.. _`wiki` : https://realityforge.vrsource.org/view/PyppApi/WebHome +* http://www.google.com :-) + +* http://boost.org/libs/python/doc/index.html - tutorials, FAQs, reference + manuals + +* `boost.python wiki`_ + + .. _`boost.python wiki` : http://wiki.python.org/moin/boost%2epython?action=show&redirect=boost+2epython + +* http://boost.cvs.sourceforge.net/boost/boost/libs/python/test/ - `boost.python`_ + unit tests. They could be very, very helpful. + +* http://svn.sourceforge.net/viewvc/pygccxml/pyplusplus_dev/unittests/ - `pyplusplus`_ + unit tests. They could be even more helpful! + +------------- +Mailing lists +------------- + +* `C++-sig`_ - development of Python/C++ bindings + + .. _`C++-sig` : http://mail.python.org/mailman/listinfo/c++-sig/ + +* `pyplusplus mailing list`_ + + .. _`pyplusplus mailing list` : http://sourceforge.net/mail/?group_id=118209 + +.. _`boost.python`: http://www.boost.org/libs/python/doc/index.html .. _`pyplusplus` : ./pyplusplus.html .. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |