GitHub user nwellnhof opened a pull request:
https://github.com/apache/lucy-clownfish/pull/74
Build separate test binaries
This brings the size of the Clownfish library down to 95 KB on 32-bit
Ubuntu (with `-fno-asynchronous-unwind-tables`), 88 KB on 64-bit Windows, and
82 KB on OS X.
Fixes CLOWNFISH-80.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/nwellnhof/lucy-clownfish separate-tests
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/lucy-clownfish/pull/74.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 #74
----
commit 5bda4dadd15edf1cd9c0b1d171b99dcf935a6c68
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:06Z
Rename core directory to "cfcore" for CPAN tarball
commit 8ba4e61987f00db2624818c4fa1a6f9c1b4f79b8
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:13Z
Move tests to separate directory
commit 83c9045079e5e5e21b487feaaeb5a506108b24b3
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:18Z
Make some internal symbols visible
Otherwise the separate test binary can't see them.
commit 24fb4d901a56a59913c9ff5a5e67840540215a48
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:23Z
Disable a test in TestClass
Ivars offsets aren't visible from a separate test binary.
commit a80e405ea7878f2eafc3562ab35c3e9ba6eff0c4
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:27Z
Add "xs_prereqs" module parameter
This parameter lists the names of other Clownfish XS modules whose
symbols are referenced from a module. The corresponding libraries
are linked against on Windows.
This obviates the need to call cf_linker_flags manually.
If we start to install parcel metadata, it should be possible to
determine the XS prerequisites automatically (see CLOWNFISH-83).
commit ef738c212adbed879cc75ab49675deae4f6e8b04
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:30Z
Separate test binaries
The C bindings build a separate shared library libcfishtest.so.
Building a static library would simplify things a little but would
require another per-parcel macro on Windows (like
CFP_STATIC_TESTCFISH).
The Perl bindings build a separate XS module Clownfish::Test.
For the Go and Python bindings, a separate static library
libtestcfish.a is built.
commit bad95e074b7cf094cf8c06205f7b1c41ddcaa45b
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:36Z
Bump ExtUtils::ParseXS dependency to 3.00
Older versions wouldn't clear the @BootCode global and mess up the
BOOT section when building multiple XS files.
commit 3764180f0e7b5893f79d7ecb806b7106dd530b29
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:39Z
Fix shared library compilation for Python
Untested. AFAIU, the static library built for Python is linked into
a shared library later. This requires to use -fPIC and define
CFP_CFISH.
I think it would be better if the Python bindings followed the
approach I took for Perl: Pass a list of object files instead of
using a static library.
commit a45abf04a63b7a9d0a2fc40af79216d8778d4d84
Author: Nick Wellnhofer <[email protected]>
Date: 2016-07-08T11:57:47Z
Fix Makefile paths for Perl CPAN build
----
---
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.
---