<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>literal thoughts</title>
	<atom:link href="http://blog.nix.is/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.nix.is</link>
	<description>Come for the thoughts, stay for the rants</description>
	<lastBuildDate>Tue, 01 Sep 2009 13:15:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Testing vim syntax files</title>
		<link>http://blog.nix.is/testing-vim-syntax-files</link>
		<comments>http://blog.nix.is/testing-vim-syntax-files#comments</comments>
		<pubDate>Tue, 01 Sep 2009 13:13:04 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=343</guid>
		<description><![CDATA[Yesterday, Andy Lester opened an issue for vim-perl on github about adding an automated test suite. I&#8217;ve thought about doing something like this before, so last night got busy with prototyping a test harness.
What I&#8217;ve got so far (in my fork) is a test file that uses Text::VimColor to generate HTML and compare it against [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, Andy Lester opened an <a href="http://github.com/petdance/vim-perl/issues#issue/15">issue</a> for vim-perl on github about adding an automated test suite. I&#8217;ve thought about doing something like this before, so last night got busy with prototyping a test harness.</p>
<p>What I&#8217;ve got so far (in <a href="https://github.com/hinrik/vim-perl/tree">my fork</a>) is a test file that uses <code>Text::VimColor</code> to generate HTML and compare it against a reference HTML document to determine if the syntax file is doing its job. If a reference file can&#8217;t be found, it will create it and <code>skip</code> that test. Here&#8217;s what it looks like:</p>
<pre>
$ make test
prove -rv t
t/01_highlighting.t ..
ok 1 - Correct output for t_source/perl/basic.t
ok 2 # skip Created t_source/perl/advanced.t.html
ok 3 - Correct output for t_source/perl6/basic.t
1..3
ok
All tests successful.
</pre>
<p>In case of failure, it will use <code>Test::Differences</code> to show you what&#8217;s wrong, and write the incorrect output to disk for you to inspect:</p>
<pre>
$ vim syntax/perl6.vim # make a bad change
$ make test
prove -rv t
t/01_highlighting.t ..
ok 1 - Correct output for t_source/perl/basic.t
ok 2 - Correct output for t_source/perl/advanced.t
not ok 3 - Correct output for t_source/perl6/basic.t

#   Failed test 'Correct output for t_source/perl6/basic.t'
#   at t/01_highlighting.t line 77.
#
«output from Test::Differences showing the offending lines»
# You can inspect the incorrect output at t_source/perl6/basic.t_fail.html
1..3
# Looks like you failed 1 test of 3.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/3 subtests
</pre>
<p>The only big downside to this is that <code>01_highlighting.t</code> tests all the source files in one go. You currently can&#8217;t tell it to only test one specific file.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/testing-vim-syntax-files/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More docs added</title>
		<link>http://blog.nix.is/more-docs-added</link>
		<comments>http://blog.nix.is/more-docs-added#comments</comments>
		<pubDate>Mon, 17 Aug 2009 23:52:54 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=326</guid>
		<description><![CDATA[I&#8217;ve added Jonathan Scott Duff&#8217;s introduction to Perl 6 regexes to Perl6-Doc as perlreintro. In addition I put in a first draft of a perlobjintro. Neither of these correspond to names from the set of Perl 5 man pages, which is fitting since they are not directly based on them. So, Perl6-Doc now has 4 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve added Jonathan Scott Duff&#8217;s introduction to Perl 6 regexes to <code>Perl6-Doc</code> as <code>perlreintro</code>. In addition I put in a first draft of a <code>perlobjintro</code>. Neither of these correspond to names from the set of Perl 5 man pages, which is fitting since they are not directly based on them. So, <code>Perl6-Doc</code> now has 4 man pages, the aforementioned two as well as <code>perlintro</code> and <code>perlsyn</code>. I&#8217;ll be carefully adding to and polishing these in the near future. I&#8217;m hesitant to start on man pages relating to modules, IO, laziness/iterators, and other very important features, as the specs (and implementation) for those are still shifting heavily from month to month.</p>
<p>I&#8217;ve been thinking about using the Perl Table Index as initial source material for the magical syntax recognition feature, the implementation of which has remained elusive for a while. The current implementation is just a proof-of-concept with only a few terms as of yet. However, Damian Conway just published a significant update to Synopsis 26 on Perl documentation, focused on tying docs to code, so it might be time to figure out some Pod-ish source format for the terms to be stored in. Writing Pod is a breeze, so it should be easy to contribute new terms.</p>
<p><code>grok</code> also needs more love. I&#8217;m not as happy as I&#8217;d like to be with some of its implementation details, most notably how it picks out functions from Synopses 29 and 32, using simple regexes (to be fair, this is exactly what good ol&#8217; <code>perldoc -f</code> does). It should parse the Pod and pick out parts of the document tree instead, I think. There are also still a few visual differences between textual output of Pod 5 and Pod 6 that I have to address. Pod 5 textual output is pleasingly indented (gradually depending on the current heading level), which makes it very easy to follow, while Pod 6 is not.</p>
<p>As a sidenote, I believe I&#8217;ve found what was causing intermittent FAIL reports from CPAN testers. Some machines had a pretty old version of Pod::Simple which didn&#8217;t take well to subclassing. Another failure was caused by an old Pod::Parser (deprecated, but relied on by <code>Pod::Xhtml</code>) version which didn&#8217;t recognize <code>=encoding</code> directives. The relevant distributions now depend on newer versions of those troublesome modules.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/more-docs-added/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tagging, FAIL, regexes</title>
		<link>http://blog.nix.is/tagging-fail-regexes</link>
		<comments>http://blog.nix.is/tagging-fail-regexes#comments</comments>
		<pubDate>Wed, 29 Jul 2009 19:03:20 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=308</guid>
		<description><![CDATA[I&#8217;m currently working on making grok index all X (and maybe C) tags in Pod documents. The user will then be able to look them up and see which docs contain the search term in question.

Gábor Szabó has already done something like this for the Perl 6 Synopses (here and here). His implementation only looked [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on making <code>grok</code> index all <code>X<></code> (and maybe <code>C<></code>) tags in Pod documents. The user will then be able to look them up and see which docs contain the search term in question.<br />
<span id="more-308"></span><br />
Gábor Szabó has already done something like this for the Perl 6 Synopses (<a href="http://perlcabal.org/syn/index_X.html">here</a> and <a href="http://perlcabal.org/syn/index_X.html">here</a>). His implementation only looked for formatting codes using the standard <code><></code> format, but I just patched it to look for <code><< >></code>, <code><<< >>></code>, and <code>«»</code> tags as well. Ideally I would like to use a Pod parser to get the tags, but it&#8217;s just using regexes for now. Gábor also asked me to have <code>grok</code> look up the predefined subrules from Synopsis 5, which I think would be a good addition.</p>
<p>For a while, I&#8217;ve been getting some rare <a href="http://static.cpantesters.org/distro/G/grok.html">FAIL reports</a> about <code>grok</code> from CPAN testers. It seems to be two problems that always manifest themselves at the same time. One of them is obviously because the tester has an old version of <code>Pod::Parser</code> which doesn&#8217;t understand the <code>=encoding</code> directive, but the other one is more mysterious. I&#8217;ll have to do some more digging, as I haven&#8217;t been able to reproduce it on my machines.</p>
<p>Jonathan Scott Duff pointed me to his unpublished <a href="http://feather.perl6.nl/~duff/articles/perl6/p6-regex.pod">introduction</a> to Perl 6 regexes which I could use as a starting point for a <code>perlretut</code> man page. I haven&#8217;t got it into a releasable state yet, but it will soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/tagging-fail-regexes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grok refactor</title>
		<link>http://blog.nix.is/grok-refactor</link>
		<comments>http://blog.nix.is/grok-refactor#comments</comments>
		<pubDate>Fri, 24 Jul 2009 13:30:12 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=298</guid>
		<description><![CDATA[As the title suggests, I reorganized the grok a bit, in addition to adding a few new features.

The code is now more modular, and much easier to maintain. I added support for looking up individual functions/methods from all the chapters of Synopsis 32. In other news, Perl6::Doc 0.42 is just out, which includes first drafts [...]]]></description>
			<content:encoded><![CDATA[<p>As the title suggests, I reorganized the <code>grok</code> a bit, in addition to adding a few new features.<br />
<span id="more-298"></span><br />
The code is now more modular, and much easier to maintain. I added support for looking up individual functions/methods from all the chapters of Synopsis 32. In other news, <code>Perl6::Doc</code> 0.42 is just out, which includes first drafts of <code>perlintro</code> and <code>perlsyn</code> documents, which <code>grok</code> will now find.</p>
<p>This brings the total number of things known to <code>grok</code> up by almost a hundred:</p>
<pre>
$ grok -i|wc -l
613
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/grok-refactor/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On to the man pages</title>
		<link>http://blog.nix.is/on-to-the-man-pages</link>
		<comments>http://blog.nix.is/on-to-the-man-pages#comments</comments>
		<pubDate>Wed, 22 Jul 2009 18:31:57 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=280</guid>
		<description><![CDATA[This week I&#8217;ve been working on the perlintro document found in the pugs repository, as well as porting Perl 5&#8217;s perlsyn. These are the most &#8220;basic&#8221; man pages about the language, and should be ported first (especially since many of the more specific bits in Perl 6 are still in flux).

As for perlintro, I can [...]]]></description>
			<content:encoded><![CDATA[<p>This week I&#8217;ve been working on the <code>perlintro</code> document found in the pugs repository, as well as porting Perl 5&#8217;s <code>perlsyn</code>. These are the most &#8220;basic&#8221; man pages about the language, and should be ported first (especially since many of the more specific bits in Perl 6 are still in flux).<br />
<span id="more-280"></span><br />
As for <code>perlintro</code>, I can see a few more-than-trivial things that need changing. For one thing, the introduction to regular expressions is very casual, but Perl 6&#8217;s regex/grammar support has seen a major overhaul. Simply translating the examples to the Perl 6 equivalent seems to just make them longer, which gives the wrong impression. Focusing less on quick-and-dirty examples and more on the big picture might help the newcomer here, as grammars are integral to Perl 6, not just some special strings with weird syntax as they were in ol&#8217; Perl 5.</p>
<p>A lot of special cases and &#8220;warts&#8221; have been replaced with new, exciting concepts that show up again and again in Perl (laziness, autothreading, all blocks are closures, everything is an object) that need to be touched upon. You could say that in Perl 6, the harmony / idiosyncrasy ratio has been lowered, and that&#8217;s a very <b>good</b> thing. Some of these can be saved for <code>perlsyn</code>, but nonetheless, they need to be introduced well.</p>
<p>In other news, I noticed that <a href="http://perldoc.perl.org">perldoc.perl.org</a> has seen a facelift. I wonder if the software behind it might be used to power a Perl 6 doc site sometime in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/on-to-the-man-pages/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucky 0.13</title>
		<link>http://blog.nix.is/lucky-013</link>
		<comments>http://blog.nix.is/lucky-013#comments</comments>
		<pubDate>Thu, 16 Jul 2009 06:42:01 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=259</guid>
		<description><![CDATA[I just uploaded grok 0.13 to PAUSE. It has the things I mentioned in my last post, plus some bug fixes.

grok can look up quite a few things now (527 including documents such as Synopses), but many of the answers it provides lack thoroughness. According to my project schedule, it&#8217;s time to start writing new [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded <code>grok</code> 0.13 to PAUSE. It has the things I mentioned in my last post, plus some bug fixes.<br />
<span id="more-259"></span><br />
<code>grok</code> can look up quite a few things now (527 including documents such as Synopses), but many of the answers it provides lack thoroughness. According to my project schedule, it&#8217;s time to start writing new documentation. That means I can focus on making these answers better.</p>
<p>I should also write/update a tutorial pretty soon, though I&#8217;m not exactly sure where I&#8217;ll start. I could update the <a href="http://svn.pugscode.org/pugs/docs/Perl6/Tutorial/perlintro.pod6"><code>perlintro</code></a> in the Pugs repository and add it to <code>Perl6::Doc</code>, or I could use the <a href="http://svn.pugscode.org/pugs/docs/tutorial/">Perl 6 part</a> of the book <i>Perl 6 and Parrot Essentials</i> which was donated to the Perl Foundation by O&#8217;Reilly. That one is a bit longer, so I might just use it for a more detailed introduction (something like Perl 5&#8217;s <code>perlsyn</code>).</p>
<p>P.S. Since I&#8217;ve got the Pod 5 ANSI-color renderer mostly working now, users of Perl 5&#8217;s <code>perldoc(1)</code> who like colors might want to install <code>Pod::Text::Ansi</code> and put the following in their <code>~/.bashrc</code> (or equivalent):</p>
<p><code>export PERLDOC="-MPod::Text::Ansi"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/lucky-013/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Half way there</title>
		<link>http://blog.nix.is/half-way-there</link>
		<comments>http://blog.nix.is/half-way-there#comments</comments>
		<pubDate>Sat, 11 Jul 2009 01:54:58 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=222</guid>
		<description><![CDATA[With Summer of Code&#8217;s mid-term evaluations coming up, some interesting things are about to happen to grok. I was contacted by Herbert Breunung, author of Perl6::Doc (formerly Perl6::Bible), which is a project that shares some of grok&#8217;s goals.

He told me that he doesn&#8217;t have enough time to maintain his project anymore and would like some [...]]]></description>
			<content:encoded><![CDATA[<p>With Summer of Code&#8217;s mid-term evaluations coming up, some interesting things are about to happen to <code>grok</code>. I was contacted by Herbert Breunung, author of <code><a href="http://search.cpan.org/dist/Perl6-Doc/">Perl6::Doc</a></code> (formerly <code>Perl6::Bible</code>), which is a project that shares some of <code>grok</code>&#8217;s goals.<br />
<span id="more-222"></span></p>
<p>He told me that he doesn&#8217;t have enough time to maintain his project anymore and would like some sort of merge to happen. I said I&#8217;d look into it. His project bundles all the Synopses, Apocalypses, Exegeses, and some other Perl 6 documentation, and ships with a <code>perldoc</code> wrapper for reading them. What I would like to do is to move all documentation out of the <code>grok</code> distribution and update/add more to <code>Perl6::Doc</code> while eliminating the <code>perldoc</code> wrapper (in favor of <code>grok</code>).</p>
<p>He also brought to my attention the <a href="http://www.perlfoundation.org/perl6/index.cgi?perl_table_index">Perl Table Index</a>, a sort of Perl 6 glossary. Ahmad Zawawi has <a href="http://padre.perlide.org/trac/changeset/5994">just patched</a> his <a href="http://search.cpan.org/dist/Padre-Plugin-Perl6/"><code>Padre::Plugin::Perl6</code></a> to feed this index to <code>grok</code>. I will probably port the Perl Table Index to the <code>Perl6::Doc</code> distribution and make <code>grok</code> look things up in it.</p>
<p>I&#8217;ve started writing a <code>Pod::Text</code> subclass as well as amending <code>Perl6::Perldoc::To::Ansi</code> to conform to a consistent color scheme when using the default ANSI-colored output.</p>
<p>Something which <code>grok</code> should eventually be able to do is recognize arbitrary Perl 6 syntax (at very fine level of granularity, that is) and tell you what it means. A first stab at this will be to simply include a table of some common ones and look those up. Stuff like &#8216;<code>my</code>&#8216;, &#8216;<code>+</code>&#8216;, and so on. Doing this reliably is the original inspiration for the u4x project (Userdocs for Christmas), of which <code>grok</code> is a part.</p>
<p>I hope to make a release of <code>grok</code> and <code>Perl6::Doc</code> shortly which will include all of the above.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/half-way-there/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>grok 0.09 is out</title>
		<link>http://blog.nix.is/grok-009-is-out</link>
		<comments>http://blog.nix.is/grok-009-is-out#comments</comments>
		<pubDate>Wed, 01 Jul 2009 19:33:57 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=206</guid>
		<description><![CDATA[The code is starting to take a more stable form. I&#8217;ve prepended an underscore to all private/internal subroutines and documented the rest. Perl authors wishing to use grok&#8217;s functionality will now have an easier time doing so.

I&#8217;ve also added various author tests to the distribution to help keep the code in shape (or at least [...]]]></description>
			<content:encoded><![CDATA[<p>The code is starting to take a more stable form. I&#8217;ve prepended an underscore to all private/internal subroutines and documented the rest. Perl authors wishing to use <code>grok</code>&#8217;s functionality will now have an easier time doing so.<br />
<span id="more-206"></span><br />
I&#8217;ve also added various author tests to the distribution to help keep the code in shape (or at least remind me when it&#8217;s not), notably <code>Test::Pod</code>, <code>Test::Pod::Coverage</code>, and <code>Test::Perl::Critic</code>.</p>
<p>Since my last blog post, <code>grok</code> has gained a few features. It can print the name of the target file (like <code>perldoc -l</code>), print an index of known documentation files, output xhtml, and detect whether the target file has Pod 5 or Pod 6 in it. It&#8217;s also got some Win32 fixes and more informative error messages.</p>
<p>Pretty soon I will start bringing in some more docs to bundle with it. Tutorials and such. I will also most likely implement function documentation lookup (like <code>perldoc -f</code>) in grok.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/grok-009-is-out/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>grok update</title>
		<link>http://blog.nix.is/grok-update</link>
		<comments>http://blog.nix.is/grok-update#comments</comments>
		<pubDate>Fri, 26 Jun 2009 05:54:33 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=183</guid>
		<description><![CDATA[Some things have kept me very busy lately and I&#8217;m a bit behind on my GSoC schedule. I&#8217;m starting to catch up now, though.

First of all, as of version 0.05, you can now easily install grok from the command line on most operating systems like so:
$ cpanp -i App::Grok.
It can handle Pod 5 files now [...]]]></description>
			<content:encoded><![CDATA[<p>Some things have kept me very busy lately and I&#8217;m a bit behind on my GSoC schedule. I&#8217;m starting to catch up now, though.<br />
<span id="more-183"></span><br />
First of all, as of version 0.05, you can now easily install <code>grok</code> from the command line on most operating systems like so:</p>
<p><code>$ cpanp -i App::Grok</code>.</p>
<p>It can handle Pod 5 files now (via <code>Pod::Text</code>) as well (which most of the Perl 6 Synopses are written in). The ANSI-colored output looks a bit different than the Pod 6 output because <code>Pod::Text</code> is very conservative in its use of colors. I&#8217;ll probably make them more similar later to keep it consistent.</p>
<p>When called interactively, <code>grok</code> now uses your system&#8217;s pager to view the output by default.</p>
<p>It will now treat an argument as a Pod 6 file to read if said argument doesn&#8217;t match a known documentation target. As for the targets, the only known ones so far are the synopses (which are bundled with <code>grok</code> for now), so you can do things like:</p>
<p><code>$ grok s02</code><br />
<code>$ grok s32-rules</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/grok-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First GSoC post</title>
		<link>http://blog.nix.is/first-gsoc-post</link>
		<comments>http://blog.nix.is/first-gsoc-post#comments</comments>
		<pubDate>Wed, 27 May 2009 17:25:39 +0000</pubDate>
		<dc:creator>Hinrik Örn Sigurðsson</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>

		<guid isPermaLink="false">http://blog.nix.is/?p=160</guid>
		<description><![CDATA[I officially started on my Google Summer of Code project (project details here) last weekend.
I&#8217;ve been tasked with writing a perldoc equivalent for Perl 6. I&#8217;ve decided to write it in Perl 5 for now, since it&#8217;s already got Perl6::Perldoc, which is a fast and feature-complete parser for the Perl 6 version of Pod (see [...]]]></description>
			<content:encoded><![CDATA[<p>I officially started on my Google Summer of Code project (project details <a href="http://nix.is/gsoc/">here</a>) last weekend.</p>
<p>I&#8217;ve been tasked with writing a <code>perldoc</code> equivalent for Perl 6. I&#8217;ve decided to write it in Perl 5 for now, since it&#8217;s already got <code>Perl6::Perldoc</code>, which is a fast and feature-complete parser for the Perl 6 version of Pod (see <a href="http://perlcabal.org/syn/S26.html">specification</a>), as well as lots of other useful CPAN modules which I won&#8217;t have to rewrite in Perl 6 (yet).<br />
<span id="more-160"></span><br />
The program will be called <code>grok</code> (<a href="http://github.com/hinrik/grok">repository</a>). So far it&#8217;s just a barebones command-line reader for Pod 6, but I did create an ANSI-colored terminal renderer for <code>Perl6::Perldoc</code>. It might be too colorful for some people&#8217;s taste currently, so maybe I&#8217;ll tone it down a little. I think Ruby&#8217;s <code>ri</code> documentation reader is the only such tool which colors the output, and I thought it was a nice enough feature (one of many!) to copy. I&#8217;ve also been looking at <code>pydoc</code> and <code>javadoc</code> in search of interesting features to implement.</p>
<p>The plan is to make it more modern and extensive than <code>perldoc</code>. One interesting thing I might end up doing is making use of <code>STD</code> (the standard Perl 6 grammar) to parse arbitrary syntax, so you could do stuff like <code>grok &#39;[*]&#39;</code> and the program would tease the expression apart and show you documentation for both the <code>[]</code> and the <code>*</code> operators.</p>
<p>Some portion of the project also includes writing new documentation for Perl 6. I haven&#8217;t written any yet, but I bet it will be fun. Before doing so, we first have to figure out how to organize the the docs. Since Perl 6 is a specification, it&#8217;s not as obvious as with Perl 5, where the docs are included (sometimes inline) with the implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.nix.is/first-gsoc-post/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
