[
https://issues.apache.org/jira/browse/CLOWNFISH-9?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14539139#comment-14539139
]
ASF GitHub Bot commented on CLOWNFISH-9:
----------------------------------------
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`.
----
> Make most Clownfish core types final
> ------------------------------------
>
> Key: CLOWNFISH-9
> URL: https://issues.apache.org/jira/browse/CLOWNFISH-9
> Project: Apache Lucy-Clownfish
> Issue Type: Bug
> Components: Runtime
> Reporter: Marvin Humphrey
> Assignee: Marvin Humphrey
>
> Obj and Err are designed to be extended. Most everything else should be
> sealed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)