[
https://issues.apache.org/jira/browse/CLOWNFISH-66?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15166421#comment-15166421
]
ASF GitHub Bot commented on CLOWNFISH-66:
-----------------------------------------
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.
----
> Python-specific CFC
> -------------------
>
> Key: CLOWNFISH-66
> URL: https://issues.apache.org/jira/browse/CLOWNFISH-66
> Project: Apache Lucy-Clownfish
> Issue Type: Improvement
> Components: Python
> Reporter: Marvin Humphrey
> Assignee: Marvin Humphrey
>
> The current Python bindings for CFC are rudimentary -- they only run
> charmonizer and bind to existing core functionality. The next step is to add
> code-gen of CPython glue code.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)