[ 
https://issues.apache.org/jira/browse/LUCY-142?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13033833#comment-13033833
 ] 

Marvin Humphrey commented on LUCY-142:
--------------------------------------

The dev list thread at [http://s.apache.org/ub], continued at
[http://s.apache.org/2vC], contains a list of stages in which the porting
might proceed:

  #  *DONE* Migrate to an inside-out object model within the Clownfish
     compiler internals.  This makes it easier to move piecemeal from Perl
     implementations to XS to C implementations.
  #  *DONE* Eliminate sophisticated usage of polymorphism by Clownfish
     compiler components, e.g. by rolling up many Type classes into one
     module.  In our C-based compiler, we can still use crude inheritance
     based on struct layout and casting, but we don't want to require method
     overriding if we can help it.
  #  *UNDERWAY* Port primary Clownfish components to thin XS wrappers around C
     implementations.  This includes everything within trunk/clownfish/lib/
     except the items under lib/Clownfish/Binding/ and lib/Clownfish/Parser.pm.
  #  Port everything under trunk/clownfish/lib/Clownfish/Binding/ to XS
     wrappers around C code.
  #  Port Clownfish/Parser.pm to an XS wrapper around a C implementation using
     Lemon.
  #  Port all the test files in trunk/clownfish/t/ to C, using the test
     harness code provided by Charmonizer.
  #  Change the interface by which bindings are spec'd to e.g. parse static
     JSON files rather than be invoked from Perl code, and change over all the
     binding specs embedded within .pm files in trunk/perl/lib/ to use the new
     interface.
  #  Remove all Perl/XS from trunk/clownfish/.
 

Since that posting, stage 3 has been completed.  

Stages 4 and 5 are actually independent tasks which could be tackled in 
either order.


> Port Clownfish compiler to C
> ----------------------------
>
>                 Key: LUCY-142
>                 URL: https://issues.apache.org/jira/browse/LUCY-142
>             Project: Lucy
>          Issue Type: Improvement
>          Components: Clownfish
>    Affects Versions: 0.2-incubating
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>
> The Clownfish compiler was originally written in pure Perl, which has proven
> to be a barrier to entry for people who want to work on binding Clownfish to
> other languages but who don't know Perl.  We should port the compiler to C,
> the common language across all of Lucy's subcommunities.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to