Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Report #8
  • Loading branch information
ingydotnet committed Dec 15, 2014
1 parent 29d07a5 commit 7c27942
Showing 1 changed file with 81 additions and 0 deletions.
81 changes: 81 additions & 0 deletions node/zfp7.cog
@@ -0,0 +1,81 @@
Name: Inline Grant Weekly Report #8
Type: post
Date: December 14, 2014

This was another big week for Inline::Module and friends. This is the week
that modules using Inline::Module start getting out to CPAN. This even
includes the first one written by someone, not working directly on the
project! Read on.

== So Many Modules!

This report will be organized by the modules created and updated this week.

== `R.pm`

The hacker known as `sivoais` on IRC #inline, started a project to embed the
"R" language in Perl. It uses [PDL] and [Inline::C]. This week he got the
whole thing to work using [Inline::Module] and
[Dist::Zilla::Plugin::InlineModule]. It's not yet shipped to CPAN, but the
repo is "here"[https://github.com/zmughal/embedding-r-in-perl-experiment].

I suspect it will be on CPAN soon. The `dzil build` command produces a working
dist that has Inline::Module and Inline::C support to do all the XS work
easily. That's what this grant is all about. Thanks sivoais! (aka ZMUGHAL on
CPAN)

== `Alt::Math::Prime::FastSieve::Inline`

David wrote [Math::Prime::FastSieve] a few years ago, to show off using
[Inline::CPP] for a CPAN module. He was able to do it, but it had an [Inline]
requirement. (Ditching that requirement is a primary goal of this project).

This week we released it as [Alt::Math::Prime::FastSieve::Inline] using the
latest [Inline::Module]. This required some refactoring of [Inline::CPP]. See
below.

== `Inline::CPP`

We needed to bring [Inline::CPP] into closer parity with [Inline::C] (in the
parser department). Basically we moved [Inline::CPP::Grammar] to
[Inline::CPP::Parser::RecDescent]. This also makes Inline::CPP work with
Inline's `using` directive.

This let us do the right thing from [Inline::Module] and after that `C++` Just
Worked™. Note that even though Inline::CPP uses both Inline and Inline::C, no
changes were required to those two modules. (No change, is good change).

== `Dist::Zilla::Plugin::InlineModule`

In order for `sivoais` to use Inline::Module, we needed to update the
[Dist::Zilla] plugin to work with the latest code. Ironically, sivoais himself
did most of the work. Ingy pulled him into a realtime PairUp™ session and soon
it was done. Dist::Zilla superstar `ether++` helped us find a couple of the
deep magic requirements that were needed to make it all work.

The [Dist::Zilla::Plugin::InlineModule] module ends up being extremely simple
though. It just glues [Inline::Module] and [Dist::Zilla] together with no real
special casing for either. The same code that does the right things to an EUMM
(or other) dist, does it for Dist::Zilla. This should lead to maintenance
happiness down the road.

== Alt::Acme::Math::XS::*

Our test module [Acme::Math::XS] got released in it's various forms:

* [Alt::Acme::Math::XS::EUMM]
* [Alt::Acme::Math::XS::DistZilla]
* [Alt::Acme::Math::XS::ZillaDist]
* [Alt::Acme::Math::XS::ModuleInstall]

== Next Steps

Our estimate for the grant work was 2 months. Next week will complete 2 full
months since we started. We are very close to done, and will try to wrap
things up if possible. The things that come to mind are:

* Module::Build support module for Inline::Module
* More tests
* More Alt modules

Stay tuned!

0 comments on commit 7c27942

Please sign in to comment.