Changes between Version 19 and Version 20 of TechnicalDocumentation


Ignore:
Timestamp:
Mar 23, 2016, 3:44:13 PM (3 years ago)
Author:
flip
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TechnicalDocumentation

    v19 v20  
    1 = GAMMA/PyGAMMA Technical Documentation =
     1= GAMMA/PyGamma Technical Documentation =
    22
    33This page is a collection of various technical documents about GAMMA and
    4 PyGAMMA. Some of it is for GAMMA's maintainers, some is for those who might
     4PyGamma. Some of it is for GAMMA's maintainers, some is for those who might
    55like to change or extend GAMMA, and some is general troublehsooting
    66information.
    77
    8 == For GAMMA Maintainers ==
     8== For GAMMA/PyGamma Maintainers ==
    99
    1010  * [project:wiki:CppCodingStandards C++ Coding Standards]: Useful C++ references
    1111    and a first pass on coding standards.
    12 
    13   * [wiki:Versioning] - Our versioning guide for GAMMA and PyGAMMA, including
    14   instructions on how to release a new version of PyGAMMA.
    15  
     12  * [wiki:Versioning] - Our versioning guide for GAMMA and PyGamma, including
     13  instructions on how to release a new version of PyGamma.
    1614  * GammaTestingTools - Tools and environment setup for testing GAMMA.
    17 
    1815  * GammaToDoList - Item that are necessary, or just good, to
    1916  implement for the GAMMA code base and project.
    20 
    2117  * [wiki:TestingGamma] - Procedures for testing a build, to guarantee that you didn't break anything (or at least that you didn't break anything that is being tested).
     18  * PyGammaHowToUploadWheels - How to upload PyGamma wheels to PyPI.
    2219
    2320
    24 == Extending PyGAMMA ==
     21== Extending PyGamma ==
    2522
    26 [ExtendingPygamma Extending PyGAMMA] can be relatively simple.
     23[ExtendingPygamma Extending PyGamma] can be relatively simple.
    2724
    28 == Issues With PyGAMMA ==
     25== Issues With PyGamma ==
    2926
    3027=== SWIG, and Garbage Collection ===
    3128
    32 While PyGAMMA mostly behaves as happy normal Python, there are a few instances where this is not true. In those cases, a little bit of care must be taken to write code that does not have unpredictable behavior.
     29While PyGamma mostly behaves as happy normal Python, there are a few instances where this is not true. In those cases, a little bit of care must be taken to write code that does not have unpredictable behavior.
    3330
    34 The reasons for this include the fact that Python has reference counting and garbage collection and C++ does not. And while SWIG (the tool used to create PyGAMMA from GAMMA) has some support for keeping track of object ownership, it is not complete (for good reasons) - and in some cases there are ambiguities as to what it should do. In addition, C++ has copy semantics and Python has pointer semantics.
     31The reasons for this include the fact that Python has reference counting and garbage collection and C++ does not. And while SWIG (the tool used to create PyGamma from GAMMA) has some support for keeping track of object ownership, it is not complete (for good reasons) - and in some cases there are ambiguities as to what it should do. In addition, C++ has copy semantics and Python has pointer semantics.
    3532
    3633So, code that worked fine in C++ may *not* work properly if you simply copy the code, and change it's syntax to that of Python. And code written using Python semantics may, in certain circumstances, not perform as expected.
     
    4340
    4441Be aware that
    45 [PyGammaAndPythonStrings PyGAMMA can't accept Python's Unicode strings].
     42[PyGammaAndPythonStrings PyGamma can't accept Python's Unicode strings].
    4643
    4744
    4845== Performance ==
    4946
    50  * GammaVsPyGamma - The performance of PyGAMMA (the swigged version of
     47 * GammaVsPyGamma - The performance of PyGamma (the swigged version of
    5148 GAMMA) relative to "native" GAMMA.
    5249