You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucy.apache.org by "Nick Wellnhofer (Updated) (JIRA)" <ji...@apache.org> on 2012/04/04 18:51:23 UTC

[lucy-issues] [jira] [Updated] (LUCY-215) Support extensions written in C

     [ https://issues.apache.org/jira/browse/LUCY-215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nick Wellnhofer updated LUCY-215:
---------------------------------

    Attachment: 0008-LUCY-215-Use-Module-Build-s-include_dirs.patch
                0007-LUCY-215-Derive-build-file-names-from-module_name.patch
                0006-LUCY-215-Use-Module-Build-s-dist_version.patch
                0005-LUCY-215-Process-Binding-classes-from-all-namespaces.patch
                0004-LUCY-215-Derive-parcel-and-boot_class-from-module_na.patch

Patches 0004 - 0008 contain some changes to Lucy::Build that are in preparation of breaking out parts of it into Clownfish::CFC::Perl::Build. Many build parameters can be handled using the Module::Build machinery.

The following parameters still need work:

h4. Extra C sources

Module::Build has a 'c_source' parameter that also supports a list of directories starting with version 0.3604. If we start using this parameter, I think we can even remove ACTION_compile_custom_xs completely and let M::B compile and link all .xs and .c files. If we don't want to bump the M::B version requirement, we have to find another way to pass extra C source dirs.

h4. Clownfish include dirs

The directories with .cfh files to include. For now, a switch that turns the Clownfish/_include dirs in $Config{installsitearch} and $Config{installvendorarch} on or off should be enough.

h4. Autogen header

Since the autogen header might contain a license, there should be a way for extensions to set their own header.

                
> Support extensions written in C
> -------------------------------
>
>                 Key: LUCY-215
>                 URL: https://issues.apache.org/jira/browse/LUCY-215
>             Project: Lucy
>          Issue Type: New Feature
>          Components: Clownfish
>            Reporter: Nick Wellnhofer
>            Assignee: Nick Wellnhofer
>         Attachments: 0001-Use-path_part-instead-of-source_class-in-CFC.patch, 0002-Implement-CFCFileSpec.patch, 0003-LUCY-215-Allow-filename-clash-between-source-and-inc.patch, 0004-LUCY-215-Derive-parcel-and-boot_class-from-module_na.patch, 0005-LUCY-215-Process-Binding-classes-from-all-namespaces.patch, 0006-LUCY-215-Use-Module-Build-s-dist_version.patch, 0007-LUCY-215-Derive-build-file-names-from-module_name.patch, 0008-LUCY-215-Use-Module-Build-s-include_dirs.patch
>
>
> Currently, all Lucy extensions that contain C code must be shipped with the Lucy source tree. In order to support external C-based extensions, Clownfish must be able to compile .cfh files that extend classes from a separate source tree. As discussed on the mailing list, a solution could look like this:
> * Install the .cfh files together with Lucy.
> * When building the extension, rebuild the complete Clownfish hierarchy together with the new classes.
> * Generate C headers, regenerating the headers for Lucy's core classes.
> * Compile the extension.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira