GitHub user rectang opened a pull request:

    https://github.com/apache/lucy-clownfish/pull/59

    CLOWNFISH-66 Py glue part 2

    Make PyTypeObjects and Clownfish Classes work together.
    
    * Generate PyTypeObject def for each Clownfish class.
    * Object allocation and initialization for Py glue.
    * Make Clownfish classes aware of their corresponding PyTypeObjects.
    * Bootstrap Clownfish parcels and Classes, Python type objects and modules.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/rectang/lucy-clownfish CLOWNFISH-66-py-glue2

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucy-clownfish/pull/59.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #59
    
----
commit 4b8d87bcbe098f92e7148ab84e27b619c089218e
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-24T23:19:18Z

    Add missing `static` modifier.

commit 72102abf76bbf6b86af8fd6b261bf4d040524a64
Author: Marvin Humphrey <[email protected]>
Date:   2016-01-28T22:55:45Z

    Stub out CFCPyClass.
    
    Stub module for generating Python binding for a Clownfish Class.

commit f0048b30e37a52cc7257e6500306b2c00970ec57
Author: Marvin Humphrey <[email protected]>
Date:   2016-01-29T02:10:01Z

    Add registry for CFCPyClass.
    
    Register CFCPyClass singletons in a crude map.  Also prepare to generate
    per-class glue code.

commit cd5438b7e31dab8fdd00cb4da47529fa7e6b3614
Author: Marvin Humphrey <[email protected]>
Date:   2016-01-29T02:26:45Z

    Gen PyTypeObject structs and empty method lists.

commit def49238ff3a86cda15baee6cca567d552770be1
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-01T22:12:13Z

    Gen list of Py types.
    
    Generate a function which creates two arrays: one of Clownfish Class
    objects, and one of their corresponding Python type objects.

commit d7133b8d149e2090331b767c1f54d5bf118d1a43
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-01T22:37:58Z

    Create mapping from Py type to CF Class.
    
    Before initializing Clownfish Class objects, create a mapping which
    mates the addresses of Clownfish Class objects to their corresponding
    PyTypeObjects.

commit 2b37cc17c94eabbb27efeb090fd5827eac74807a
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-01T22:47:34Z

    Given a Class, find its PyTypeObject.
    
    Cache the PyTypeObject inside the Clownfish Class object, in a
    `host_type` member.

commit 33189df152305583c976b2701396eff940b992a1
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-01T23:49:29Z

    Stub out some placeholders for Py bindings.
    
    Subclassing from Python won't be supported until these are fully
    implemented.

commit 3e9cd9e45094eea32150622467b3061e5f3e0409
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T00:13:09Z

    Reuse lower_snake_case code for host aliases.
    
    Method host aliases for both Perl and Python use lower_snake_case, so
    share the implementation.

commit c6c74d2718fdac87eb9c2330f75eca93dbaa94da
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T00:43:49Z

    Tell Python about obj alloc sizes.
    
    As a consequence of Clownfish using Python object allocation internally
    under the Python bindings, bootstrapping Clownfish Classes and Python
    type objects requires some intricate interplay.

commit 50c98b1faeb6f8966b769ac7dbff811e3808bc1e
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T00:47:41Z

    Implement Make_Obj and Init_Obj for Python.

commit c9cbb2dcfd3e9435134bf89812f8d0dad363ae10
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T01:03:13Z

    Invoke `PyType_Ready` for inert classes.

commit 67b76306dd136fe88a392d4d489bfd26f0f2f750
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T01:08:27Z

    Bootstrap Clownfish parcels in Python build.
    
    Finally, the Python implementation is complete enough that we can run
    the bootstrapping for the Clownfish parcel.

commit 49972c1cbc6b6f9ae4ad55c6d26b69e491e63741
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T01:13:37Z

    Add classes to Python module object.
    
    For instance, make `clownfish.String` available on the Python
    `clownfish` module object.

commit a15800378cb8f27b2a572961d67fc833a136ea08
Author: Marvin Humphrey <[email protected]>
Date:   2016-02-02T02:17:59Z

    Add CFCPyMethod and CFCPyClass to CFC.h.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to