Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Report #8
- Loading branch information
1 parent
29d07a5
commit 7c27942
Showing
1 changed file
with
81 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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! |