Skip to content

Commit

Permalink
Report #8
Browse files Browse the repository at this point in the history
  • Loading branch information
ingydotnet committed Dec 15, 2014
1 parent d6b0b40 commit 101f117
Show file tree
Hide file tree
Showing 7 changed files with 379 additions and 0 deletions.
61 changes: 61 additions & 0 deletions index.html
Expand Up @@ -39,6 +39,66 @@ <h1 class="blog-title">The TPF Inline Grant Info Site</h1>
<div class="row">
<div class="col-sm-8 blog-main">
<div class="blog-post">
<h2 class="blog-post-title"><a href="node/zfp7.html">Inline Grant Weekly Report #8</a></h2>
<p class="blog-post-meta">
December 14, 2014 by
<a href="page/ingy-and-david-bio.html">Ingy and David</a>
</p>
<p>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.</p>

<h2>So Many Modules!</h2>

<p>This report will be organized by the modules created and updated this week.</p>

<h2><code>R.pm</code></h2>

<p>The hacker known as <code>sivoais</code> on IRC #inline, started a project to embed the &quot;R&quot; language in Perl. It uses <a href="https://metacpan.org/pod/PDL">PDL</a> and <a href="https://metacpan.org/pod/Inline::C">Inline::C</a>. This week he got the whole thing to work using <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a>. It&#39;s not yet shipped to CPAN, but the repo is <a href="https://github.com/zmughal/embedding-r-in-perl-experiment">here</a>.</p>

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

<h2><code>Alt::Math::Prime::FastSieve::Inline</code></h2>

<p>David wrote <a href="https://metacpan.org/pod/Math::Prime::FastSieve">Math::Prime::FastSieve</a> a few years ago, to show off using <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> for a CPAN module. He was able to do it, but it had an <a href="https://metacpan.org/pod/Inline">Inline</a> requirement. (Ditching that requirement is a primary goal of this project).</p>

<p>This week we released it as <a href="https://metacpan.org/pod/Alt::Math::Prime::FastSieve::Inline">Alt::Math::Prime::FastSieve::Inline</a> using the latest <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a>. This required some refactoring of <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a>. See below.</p>

<h2><code>Inline::CPP</code></h2>

<p>We needed to bring <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> into closer parity with <a href="https://metacpan.org/pod/Inline::C">Inline::C</a> (in the parser department). Basically we moved <a href="https://metacpan.org/pod/Inline::CPP::Grammar">Inline::CPP::Grammar</a> to <a href="https://metacpan.org/pod/Inline::CPP::Parser::RecDescent">Inline::CPP::Parser::RecDescent</a>. This also makes Inline::CPP work with Inline&#39;s <code>using</code> directive.</p>

<p>This let us do the right thing from <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and after that <code>C++</code> 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).</p>

<h2><code>Dist::Zilla::Plugin::InlineModule</code></h2>

<p>In order for <code>sivoais</code> to use Inline::Module, we needed to update the <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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 <code>ether++</code> helped us find a couple of the deep magic requirements that were needed to make it all work.</p>

<p>The <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a> module ends up being extremely simple though. It just glues <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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.</p>

<h2>Alt::Acme::Math::XS::*</h2>

<p>Our test module <a href="https://metacpan.org/pod/Acme::Math::XS">Acme::Math::XS</a> got released in it&#39;s various forms:</p>

<ul>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::EUMM">Alt::Acme::Math::XS::EUMM</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::DistZilla">Alt::Acme::Math::XS::DistZilla</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ZillaDist">Alt::Acme::Math::XS::ZillaDist</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ModuleInstall">Alt::Acme::Math::XS::ModuleInstall</a></li>
</ul>

<h2>Next Steps</h2>

<p>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:</p>

<ul>
<li>Module::Build support module for Inline::Module</li>
<li>More tests</li>
<li>More Alt modules</li>
</ul>

<p>Stay tuned!</p>
</div>
<hr />
<div class="blog-post">
<h2 class="blog-post-title"><a href="node/dgq3.html">Inline Grant Weekly Report #7</a></h2>
<p class="blog-post-meta">
December 6, 2014 by
Expand Down Expand Up @@ -564,6 +624,7 @@ <h4>About</h4>
<div class="sidebar-module">
<h4>Posts</h4>
<ol class="list-unstyled">
<li><a href="/page/inline-grant-weekly-report-8.html">Inline Grant Weekly Report #8</a></li>
<li><a href="/page/inline-grant-weekly-report-7.html">Inline Grant Weekly Report #7</a></li>
<li><a href="/page/inline-grant-weekly-report-6.html">Inline Grant Weekly Report #6</a></li>
<li><a href="/page/inline-grant-weekly-report-5.html">Inline Grant Weekly Report #5</a></li>
Expand Down
16 changes: 16 additions & 0 deletions js/all.js
Expand Up @@ -2078,3 +2078,19 @@ output += '<p>Name: Ingy and David Bio</p>\n\n<h2>Ingy döt Net</h2>\n\n<p>Ingy
return output;
}

Jemplate.templateMap['zfp7.html'] = function(context) {
if (! context) throw('Jemplate function called without context\n');
var stash = context.stash;
var output = '';

try {
output += '<p>Name: Inline Grant Weekly Report #8 Type: post Date: December 14, 2014</p>\n\n<p>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.</p>\n\n<h2>So Many Modules!</h2>\n\n<p>This report will be organized by the modules created and updated this week.</p>\n\n<h2><code>R.pm</code></h2>\n\n<p>The hacker known as <code>sivoais</code> on IRC #inline, started a project to embed the &quot;R&quot; language in Perl. It uses <a href="https://metacpan.org/pod/PDL">PDL</a> and <a href="https://metacpan.org/pod/Inline::C">Inline::C</a>. This week he got the whole thing to work using <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a>. It&#39;s not yet shipped to CPAN, but the repo is <a href="https://github.com/zmughal/embedding-r-in-perl-experiment">here</a>.</p>\n\n<p>I suspect it will be on CPAN soon. The <code>dzil build</code> command produces a working dist that has Inline::Module and Inline::C support to do all the XS work easily. That&#39;s what this grant is all about. Thanks sivoais! (aka ZMUGHAL on CPAN)</p>\n\n<h2><code>Alt::Math::Prime::FastSieve::Inline</code></h2>\n\n<p>David wrote <a href="https://metacpan.org/pod/Math::Prime::FastSieve">Math::Prime::FastSieve</a> a few years ago, to show off using <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> for a CPAN module. He was able to do it, but it had an <a href="https://metacpan.org/pod/Inline">Inline</a> requirement. (Ditching that requirement is a primary goal of this project).</p>\n\n<p>This week we released it as <a href="https://metacpan.org/pod/Alt::Math::Prime::FastSieve::Inline">Alt::Math::Prime::FastSieve::Inline</a> using the latest <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a>. This required some refactoring of <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a>. See below.</p>\n\n<h2><code>Inline::CPP</code></h2>\n\n<p>We needed to bring <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> into closer parity with <a href="https://metacpan.org/pod/Inline::C">Inline::C</a> (in the parser department). Basically we moved <a href="https://metacpan.org/pod/Inline::CPP::Grammar">Inline::CPP::Grammar</a> to <a href="https://metacpan.org/pod/Inline::CPP::Parser::RecDescent">Inline::CPP::Parser::RecDescent</a>. This also makes Inline::CPP work with Inline&#39;s <code>using</code> directive.</p>\n\n<p>This let us do the right thing from <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and after that <code>C++</code> 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).</p>\n\n<h2><code>Dist::Zilla::Plugin::InlineModule</code></h2>\n\n<p>In order for <code>sivoais</code> to use Inline::Module, we needed to update the <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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 <code>ether++</code> helped us find a couple of the deep magic requirements that were needed to make it all work.</p>\n\n<p>The <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a> module ends up being extremely simple though. It just glues <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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.</p>\n\n<h2>Alt::Acme::Math::XS::*</h2>\n\n<p>Our test module <a href="https://metacpan.org/pod/Acme::Math::XS">Acme::Math::XS</a> got released in it&#39;s various forms:</p>\n\n<ul>\n<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::EUMM">Alt::Acme::Math::XS::EUMM</a></li>\n<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::DistZilla">Alt::Acme::Math::XS::DistZilla</a></li>\n<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ZillaDist">Alt::Acme::Math::XS::ZillaDist</a></li>\n<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ModuleInstall">Alt::Acme::Math::XS::ModuleInstall</a></li>\n</ul>\n\n<h2>Next Steps</h2>\n\n<p>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:</p>\n\n<ul>\n<li>Module::Build support module for Inline::Module</li>\n<li>More tests</li>\n<li>More Alt modules</li>\n</ul>\n\n<p>Stay tuned!</p>\n';
}
catch(e) {
var error = context.set_error(e, output);
throw(error);
}

return output;
}

8 changes: 8 additions & 0 deletions js/all.json
@@ -1,6 +1,7 @@
{
"heading" : "Up to date information on The Perl Foundation's 2014 grant for Inline.pm.",
"node_order" : [
"zfp7",
"dgq3",
"n6sv",
"cc8p",
Expand All @@ -13,6 +14,13 @@
"y5yq"
],
"nodes" : [
{
"cogid" : "zfp7",
"date" : "December 14, 2014",
"link" : "inline-grant-weekly-report-8",
"title" : "Inline Grant Weekly Report #8",
"type" : "post"
},
{
"cogid" : "dgq3",
"date" : "December 6, 2014",
Expand Down
146 changes: 146 additions & 0 deletions node/zfp7.html
@@ -0,0 +1,146 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="http://getbootstrap.com/favicon.ico">

<title>Inline Grant Weekly Report #8</title>

<!-- Bootstrap core CSS -->
<link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">

<!-- Custom styles for this template -->
<link href="/css/blog.css" rel="stylesheet">
<link href="/css/cog.css" rel="stylesheet">
</head>
<body>
<div class="blog-masthead">
<div class="container">
<nav class="blog-nav">
<a class="blog-nav-item active" href="/">Home</a>
<!--
<a class="blog-nav-item" href="#">New features</a>
<a class="blog-nav-item" href="#">Press</a>
<a class="blog-nav-item" href="#">New hires</a>
<a class="blog-nav-item" href="#">About</a>
-->
</nav>
</div>
</div>
<div class="container">
<div class="blog-header">
<h1 class="blog-title"></h1>
<p class="lead blog-description"></p>
</div>
<div class="row">
<div class="col-sm-8 blog-main">
<div class="blog-post">
<h2 class="blog-post-title">Inline Grant Weekly Report #8</h2>
<p>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.</p>

<h2>So Many Modules!</h2>

<p>This report will be organized by the modules created and updated this week.</p>

<h2><code>R.pm</code></h2>

<p>The hacker known as <code>sivoais</code> on IRC #inline, started a project to embed the &quot;R&quot; language in Perl. It uses <a href="https://metacpan.org/pod/PDL">PDL</a> and <a href="https://metacpan.org/pod/Inline::C">Inline::C</a>. This week he got the whole thing to work using <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a>. It&#39;s not yet shipped to CPAN, but the repo is <a href="https://github.com/zmughal/embedding-r-in-perl-experiment">here</a>.</p>

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

<h2><code>Alt::Math::Prime::FastSieve::Inline</code></h2>

<p>David wrote <a href="https://metacpan.org/pod/Math::Prime::FastSieve">Math::Prime::FastSieve</a> a few years ago, to show off using <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> for a CPAN module. He was able to do it, but it had an <a href="https://metacpan.org/pod/Inline">Inline</a> requirement. (Ditching that requirement is a primary goal of this project).</p>

<p>This week we released it as <a href="https://metacpan.org/pod/Alt::Math::Prime::FastSieve::Inline">Alt::Math::Prime::FastSieve::Inline</a> using the latest <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a>. This required some refactoring of <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a>. See below.</p>

<h2><code>Inline::CPP</code></h2>

<p>We needed to bring <a href="https://metacpan.org/pod/Inline::CPP">Inline::CPP</a> into closer parity with <a href="https://metacpan.org/pod/Inline::C">Inline::C</a> (in the parser department). Basically we moved <a href="https://metacpan.org/pod/Inline::CPP::Grammar">Inline::CPP::Grammar</a> to <a href="https://metacpan.org/pod/Inline::CPP::Parser::RecDescent">Inline::CPP::Parser::RecDescent</a>. This also makes Inline::CPP work with Inline&#39;s <code>using</code> directive.</p>

<p>This let us do the right thing from <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and after that <code>C++</code> 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).</p>

<h2><code>Dist::Zilla::Plugin::InlineModule</code></h2>

<p>In order for <code>sivoais</code> to use Inline::Module, we needed to update the <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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 <code>ether++</code> helped us find a couple of the deep magic requirements that were needed to make it all work.</p>

<p>The <a href="https://metacpan.org/pod/Dist::Zilla::Plugin::InlineModule">Dist::Zilla::Plugin::InlineModule</a> module ends up being extremely simple though. It just glues <a href="https://metacpan.org/pod/Inline::Module">Inline::Module</a> and <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> 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.</p>

<h2>Alt::Acme::Math::XS::*</h2>

<p>Our test module <a href="https://metacpan.org/pod/Acme::Math::XS">Acme::Math::XS</a> got released in it&#39;s various forms:</p>

<ul>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::EUMM">Alt::Acme::Math::XS::EUMM</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::DistZilla">Alt::Acme::Math::XS::DistZilla</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ZillaDist">Alt::Acme::Math::XS::ZillaDist</a></li>
<li><a href="https://metacpan.org/pod/Alt::Acme::Math::XS::ModuleInstall">Alt::Acme::Math::XS::ModuleInstall</a></li>
</ul>

<h2>Next Steps</h2>

<p>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:</p>

<ul>
<li>Module::Build support module for Inline::Module</li>
<li>More tests</li>
<li>More Alt modules</li>
</ul>

<p>Stay tuned!</p>
</div>
</div><!-- /.blog-main -->
<div class="col-sm-3 col-sm-offset-1 blog-sidebar">
<div class="sidebar-module sidebar-module-inset">
<h4>About</h4>
<p>This site has the latest info about the progress of the TPF grant for Inline.pm</p>
</div>
<div class="sidebar-module">
<h4>Posts</h4>
<ol class="list-unstyled">
</ol>
</div>
<!--
<h4>Archives</h4>
<ol class="list-unstyled">
<li><a href="#">October 2014</a></li>
</ol>
</div>
-->
<!--
<div class="sidebar-module">
<h4>Elsewhere</h4>
<ol class="list-unstyled">
<li><a href="#">GitHub</a></li>
<li><a href="#">Twitter</a></li>
<li><a href="#">Facebook</a></li>
</ol>
</div>
-->
</div><!-- /.blog-sidebar -->

</div><!-- /.row -->
</div><!-- /.container -->
<!--
<div class="blog-footer">
<p>Blog template built for <a href="http://getbootstrap.com/">Bootstrap</a> by <a href="https://twitter.com/mdo">@mdo</a>.</p>
<p>
<a href="#">Back to top</a>
</p>
</div>
-->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://getbootstrap.com/dist/js/bootstrap.min.js"></script>

<!-- Cog JS
================================================== -->
<script src="js/all.js"></script>
</body>
</html>

0 comments on commit 101f117

Please sign in to comment.