GitHub user rectang opened a pull request:

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

    CLOWNFISH-9 Make most types final (v2)

    Mark most core types as final: Blob, ByteBuf, CharBuf, Class, Method, Hash, 
HashIterator, Vector, and the concrete Num types.
    
    Differences from v1 of this pull request are:
    
    *   Rebase on top of current master.
    *   Omit commits using `new` instead of `init` for construction by Perl 
bindings.
    *   Add a stopgap bugfix which disables most `final` method optimization.
    


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

    $ git pull https://github.com/rectang/lucy-clownfish 
CLOWNFISH-9-most-types-final-v2

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

    https://github.com/apache/lucy-clownfish/pull/17.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 #17
    
----
commit 7c1dc695c496352a9d44eb1a686d1ecc94b24ee9
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T01:06:16Z

    Make PerlSub helpers more flexible.
    
    Add an extra argument, `first`, controlling which params to include.
    Don't force the first argument name to `self`.

commit 88895811c67745db71926895dfeea97931a474de
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T02:04:07Z

    Change test to subclass Obj rather than Hash.
    
    Hash is about to become final, so we need to subclass a class which will
    remain extensible: Obj.

commit 5bcadfd0094adc7521dd3ab4dcc6c69017902870
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T02:05:31Z

    Export OFFSET vars for `final` methods.
    
    Without the export, symbol resolution fails during dynamic linking.

commit cb6f14bacbbb1057ebba074b899e1d7994c28297
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T02:24:56Z

    Export all _IMP symbols.
    
    It is not sufficient to export only _IMP symbols for final methods,
    because it's possible that a subclass final method be an alias for it.

commit 308086649bc83c549e4e67dcfaf2ee1ccbba8a44
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T02:27:49Z

    Mark many core types as `final`.
    
    Blob, ByteBuf, CharBuf, Class, Hash, HashIterator, Method, Integer32,
    Integer64, Float32, Float64, Vector.

commit 0ea34cf37ac3a536c5be75aac71f13cac8ff2a0a
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-12T02:13:31Z

    Temporarily disable broken final methods.
    
    Right now, final methods are broken unless they are fresh.  Disable the
    final method optimization.

commit d199d868af846d53b632dbdf7390dad5029c2fb0
Author: Marvin Humphrey <[email protected]>
Date:   2015-05-09T23:09:54Z

    Eliminate `arg_self` assumptions.
    
    Always use real name of first argument rather than assuming that it is
    `self`.

----


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