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.
---