<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:at="http://www.sixapart.com/ns/at"
    xmlns:icbm="http://postneo.com/icbm"
    xmlns:rvw="http://purl.org/NET/RVW/0.2/"
    xmlns:media="http://search.yahoo.com/mrss">
    <channel>
        <title>TokuLog!@vox</title>
        <link>http://tokuhirom.vox.com/library/posts/page/1/</link>
        <description></description>
        <language>en</language>
        <generator>Vox</generator>
        <lastBuildDate>Sat, 14 Mar 2009 08:37:14 +0900</lastBuildDate>
        <copyright>Copyright 2009</copyright>
        <docs>http://blogs.law.harvard.edu/tech/rss</docs>  
 
        <item>
            <title>fork the perl with binary code(linux x86 version)</title>
            <link>http://tokuhirom.vox.com/library/post/fork-the-perl-with-binary-codelinux-x86-version.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/fork-the-perl-with-binary-codelinux-x86-version.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/fork-the-perl-with-binary-codelinux-x86-version.html?_c=feed-rss-full</guid> 
            <pubDate>Sat, 14 Mar 2009 08:37:14 +0900</pubDate>         
            
            <description>    &lt;p&gt;In these days, Japanese perl mongers trying to inject a x86 binary code to the perl world with pure perl.&lt;/p&gt;&lt;p&gt;DynaLoader::dl_install_xsub inject binary code, that can call as CV(coderef).&lt;/p&gt;&lt;p&gt;Following is a sample code, call the fork(2).&lt;/p&gt;&lt;blockquote&gt;&lt;pre class=&quot;syntax-highlight&quot;&gt;&lt;span class=&quot;synStatement&quot;&gt;use &lt;/span&gt;DynaLoader;&lt;br /&gt;&lt;span class=&quot;synStatement&quot;&gt;my&lt;/span&gt; &lt;span class=&quot;synIdentifier&quot;&gt;$s&lt;/span&gt; = &lt;span class=&quot;synStatement&quot;&gt;join&lt;/span&gt;(&lt;span class=&quot;synConstant&quot;&gt;&amp;#39;&amp;#39;&lt;/span&gt;,&lt;br /&gt;    &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\x31\xc0&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synComment&quot;&gt;# xor %eax,%eax&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\xb0\x02&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synComment&quot;&gt;# mov $0x2,%al&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\xcd\x80&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synComment&quot;&gt;# int $0x80&lt;/span&gt;&lt;br /&gt;    &lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\xc3&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;,     &lt;span class=&quot;synComment&quot;&gt;# ret&lt;/span&gt;&lt;br /&gt;);&lt;br /&gt;DynaLoader::dl_install_xsub(&lt;br /&gt;    &lt;span class=&quot;synConstant&quot;&gt;&amp;#39;myfork&amp;#39;&lt;/span&gt;,&lt;br /&gt;    &lt;span class=&quot;synStatement&quot;&gt;unpack&lt;/span&gt;(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;L&amp;quot;&lt;/span&gt;,&lt;span class=&quot;synStatement&quot;&gt;pack&lt;/span&gt;(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;P*&amp;quot;&lt;/span&gt;,&lt;span class=&quot;synIdentifier&quot;&gt;$s&lt;/span&gt;))&lt;br /&gt;);&lt;br /&gt;&lt;span class=&quot;synIdentifier&quot;&gt;&amp;amp;myfork&lt;/span&gt;;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;     &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb011017b15378860e?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>About the functionality expansion of Mouse</title>
            <link>http://tokuhirom.vox.com/library/post/about-the-functionality-expansion-of-mouse.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/about-the-functionality-expansion-of-mouse.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/about-the-functionality-expansion-of-mouse.html?_c=feed-rss-full</guid> 
            <pubDate>Sun, 07 Dec 2008 22:53:25 +0900</pubDate>         
            
            <description>    &lt;p&gt;Me(tokuhirom) and Yappo works for the Mouse in Shika-based branch.&lt;/p&gt;&lt;p&gt;Followings are Changes list.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;method inject at apply roles(tokuhirom)&lt;/li&gt;&lt;li&gt;apply multi roles at once(yappo)&lt;/li&gt;&lt;li&gt;inline constructor at make_immutable(tokuhirom,sartak)&lt;/li&gt;&lt;li&gt;inline destructor at make_immutable(tokuhirom)&lt;/li&gt;&lt;li&gt;do not load Test::Exception at runtime(tokuhirom)&lt;/li&gt;&lt;li&gt;added MouseX::Types(yappo)&lt;/li&gt;&lt;li&gt;added Mouse::Meta::Class-&amp;gt;create(_anon_class)?(tokuhirom)&lt;/li&gt;&lt;li&gt;user type definition(yappo)&lt;/li&gt;&lt;li&gt;added coercion support(yappo)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;runtime speed is good enough.&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;Class::MOP: 0.71&lt;br /&gt;Moose: 0.62&lt;br /&gt;Mouse: 0.12&lt;br /&gt;---- new&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Rate MooseOne MouseOne&lt;br /&gt;MooseOne 89286/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -4%&lt;br /&gt;MouseOne 93458/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 5%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&lt;br /&gt;---- new,set&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Rate MouseOne MooseOne&lt;br /&gt;MouseOne 62500/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -4%&lt;br /&gt;MooseOne 64935/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 4%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;My work is finished.&lt;/p&gt;     &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb0109d0f34fc7000f?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>Memory Usage in Class Builders</title>
            <link>http://tokuhirom.vox.com/library/post/memory-usage-in-class-builders.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/memory-usage-in-class-builders.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/memory-usage-in-class-builders.html?_c=feed-rss-full</guid> 
            <pubDate>Sat, 06 Dec 2008 21:39:17 +0900</pubDate>         
            
            <description>    &lt;p&gt;I wrote small tool for measurement process size.&lt;/p&gt;&lt;p&gt;Following is the result.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;perl&amp;gt; package F; use Moose;&lt;br /&gt;5,185,536&lt;br /&gt;perl&amp;gt; use Mouse;&lt;br /&gt;700,416&lt;br /&gt;perl&amp;gt; use Shika;&lt;br /&gt;581,632&lt;br /&gt;perl&amp;gt; use Class::MOP;&lt;br /&gt;1,957,888&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img src=&quot;http://gyazo.com/ce8e36177b11b74e7540e10e956064c8.png&quot; /&gt;&lt;/p&gt;&lt;p&gt;Moose uses over 5MB.This is too much...&lt;/p&gt;&lt;p&gt;script is here: http://svn.coderepos.org/share/lang/perl/misc/memory-shell.pl&lt;br /&gt; &lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb010981531a51000d?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>Performance improvements for Mouse</title>
            <link>http://tokuhirom.vox.com/library/post/performance-improvements-for-mouse.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/performance-improvements-for-mouse.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/performance-improvements-for-mouse.html?_c=feed-rss-full</guid> 
            <pubDate>Wed, 03 Dec 2008 13:02:20 +0900</pubDate>         
            
            <description>    &lt;p&gt;some people says &amp;quot;mouse is fast in loading time, but!!! mouse is slower than moose at&amp;#160; runtime&amp;quot;. ok, this is true in the latest released version of Mouse!&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;------ new&lt;br /&gt;Rate MouseDefault MooseImmutableBuild ClassAccessor MooseImmutableDefault MouseImmutableDefault ShikaDefault Popo&lt;br /&gt;MouseDefault&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 12658/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -73%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -77%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -82%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -84%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -91% -95%&lt;br /&gt;MooseImmutableBuild&amp;#160;&amp;#160;&amp;#160; 47619/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 276%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -14%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -33%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -38%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -67% -81%&lt;br /&gt;ClassAccessor&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 55556/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 339%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 17%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -22%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -28%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -61% -78%&lt;br /&gt;MooseImmutableDefault&amp;#160; 71429/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 464%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 50%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 29%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -7%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -50% -71%&lt;br /&gt;MouseImmutableDefault&amp;#160; 76923/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 508%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 62%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 38%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 8%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -46% -69%&lt;br /&gt;ShikaDefault&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 142857/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1029%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 200%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 157%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 100%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 86%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; -- -43%&lt;br /&gt;Popo&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 250000/s&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1875%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 425%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 350%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 250%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 225%&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 75%&amp;#160;&amp;#160; --&lt;/p&gt;&lt;/blockquote&gt;&lt;br /&gt;I&amp;#39;m implement the Meta::Method::Constructor &amp;amp; Meta::Method::Desctructor for Mouse.This makes Mouse 500% faster&amp;#160; at runtime.&lt;/p&gt;&lt;p&gt;and, some people says &amp;quot;Why Shika is FAST???&amp;quot; ok, i don&amp;#39;t know ;) this is japanese XS magicians work.&lt;/p&gt;&lt;p&gt;benchmark script is here:http://svn.coderepos.org/share/lang/perl/Shika/trunk/benchmark/new-get-set.pl &lt;br /&gt; &lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb0109811243a6000c?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>make_immutable in Moose</title>
            <link>http://tokuhirom.vox.com/library/post/make_immutable-in-moose.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/make_immutable-in-moose.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/make_immutable-in-moose.html?_c=feed-rss-full</guid> 
            <pubDate>Tue, 02 Dec 2008 19:49:54 +0900</pubDate>         
            
            <description>    &lt;p&gt;this code will die.by &amp;quot;Attribute (foo) is required&amp;quot;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; package Parent;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; use Moose;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; package Child;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; use Moose;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; extends &amp;#39;Parent&amp;#39;;&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;Parent-&amp;gt;meta-&amp;gt;add_attribute(&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;#39;foo&amp;#39; =&amp;gt; (&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; required =&amp;gt; 1,&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )&lt;br /&gt;);&lt;/p&gt;&lt;p&gt;Child-&amp;gt;new();&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;but, following code doesn&amp;#39;t throw error.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; package Parent;&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; use Moose;&lt;br /&gt;
}&lt;/p&gt;&lt;p&gt;
{&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; package Child;&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; use Moose;&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; extends &amp;#39;Parent&amp;#39;;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; __PACKAGE__-&amp;gt;meta-&amp;gt;make_immutable();&lt;br /&gt;
}&lt;/p&gt;&lt;p&gt;
Parent-&amp;gt;meta-&amp;gt;add_attribute(&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; &amp;#39;foo&amp;#39; =&amp;gt; (&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; required =&amp;gt; 1,&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; )&lt;br /&gt;
);&lt;/p&gt;&lt;p&gt;
Child-&amp;gt;new();&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span style=&quot;font-size: 1.95312em;&quot;&gt;&lt;span class=&quot;wordlink&quot;&gt;conclusion&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 0.64em;&quot;&gt;Moose doesn&amp;#39;t mention to this operation.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;


&lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb0109d070052e000e?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>loading time of Class builders</title>
            <link>http://tokuhirom.vox.com/library/post/loading-time-of-class-builders.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/loading-time-of-class-builders.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/loading-time-of-class-builders.html?_c=feed-rss-full</guid> 
            <pubDate>Tue, 02 Dec 2008 16:01:42 +0900</pubDate>         
            
            <description>    &lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;run -Ilib -e &amp;#39;package F; use Moose&amp;#39;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;#160; total = 0.3154765&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;run -Ilib -e &amp;#39;package F; use Mouse&amp;#39;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;#160; total = 0.0436822&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;run -Ilib -e &amp;#39;package F; use Shika&amp;#39;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;#160; total = 0.0283219&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;ok, shika has few features =)&lt;/p&gt;&lt;p&gt;http://svn.coderepos.org/share/lang/perl/Shika/trunk/benchmark/loading-time.pl&lt;/p&gt;&lt;p&gt;【following ups】&lt;br /&gt;&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;run -Ilib -e &amp;#39;package F; use Mouse&amp;#39;&lt;br /&gt;&amp;#160; total = 0.0307623&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;in shika based branch@r6714!yay! &lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;main&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strict.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; warnings.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;warnings&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Carp.pm =&amp;gt;&lt;br /&gt;Carp&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Exporter.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.pm =&amp;gt;&lt;br /&gt;base&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; vars.pm =&amp;gt;&lt;br /&gt;vars&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; warnings/register.pm&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse/Util.pm&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse::Util&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Scalar/Util.pm&amp;#160; =&amp;gt;&lt;br /&gt;Scalar::Util&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List/Util.pm&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;List::Util&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; XSLoader.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse::Util&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MRO/Compat.pm&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;MRO::Compat&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Class/C3.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Class::C3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Class/C3/XS.pm&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse/Meta/Attribute.pm =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse/Meta/Class.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse/Object.pm =&amp;gt;&lt;br /&gt;Mouse&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mouse/TypeRegistry.pm&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;Exporter&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Exporter/Heavy.pm&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; =&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;     &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb010980bcd891000b?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>HTTP::Engine is optimized for CGI?</title>
            <link>http://tokuhirom.vox.com/library/post/httpengine-is-optimized-for-cgi.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/httpengine-is-optimized-for-cgi.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/httpengine-is-optimized-for-cgi.html?_c=feed-rss-full</guid> 
            <pubDate>Tue, 02 Dec 2008 09:53:37 +0900</pubDate>         
            
            <description>    &lt;p&gt;ANSWER is NO and YES.&lt;/p&gt;&lt;p&gt;Main target of the HTTP::Engine is FastCGI/ModPerl.&lt;/p&gt;&lt;p&gt;1. CGI is not a main target.&lt;/p&gt;&lt;p&gt;2. HTTP::Engine 0.0.x seriese uses a lot of memory.Shika makes smart process.&lt;/p&gt;&lt;p&gt;3. HTTP::Engine is middleware. not a application.middleware should use small memory.&lt;/p&gt;&lt;p&gt;4. Short compile time makes easy development.&lt;/p&gt;&lt;p&gt;5. As a side effect, HTTP::Engine::Interface::CGI is faster than before.&lt;br /&gt; &lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb010980bcbf46000b?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>Why Shika?</title>
            <link>http://tokuhirom.vox.com/library/post/why-shika.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/why-shika.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/why-shika.html?_c=feed-rss-full</guid> 
            <pubDate>Tue, 02 Dec 2008 08:04:36 +0900</pubDate>         
            
            <description>    &lt;p&gt;Shika is a new class builder.Current main maintener is tokuhirom and yappo.&lt;/p&gt;&lt;p&gt;Shika&amp;#39;s use case is very simple. Jus a HTTP::Engine.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Moose has cool API&lt;/li&gt;&lt;li&gt;Moose uses too much loading time for HTTP::Engine&lt;/li&gt;&lt;ul&gt;&lt;li&gt;perl -e &amp;#39;use Moose&amp;#39;&amp;#160; 0.30s user 0.01s system 94% cpu 0.330 total&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Moose uses a lot of memory.&lt;/li&gt;&lt;li&gt;We need a lightweight class builder, based on cool API.&lt;/li&gt;&lt;li&gt;We don&amp;#39;t need a MOP.&lt;/li&gt;&lt;li&gt;We can write faster implementation&lt;/li&gt;&lt;ul&gt;&lt;li&gt;no MOP;&lt;/li&gt;&lt;li&gt;use XS;(gfx can write very fast XS code =)&lt;/li&gt;&lt;li&gt;type check is optional(in development mode)&lt;/li&gt;&lt;li&gt;no eval.&lt;/li&gt;&lt;li&gt;Shika is Moose incompaible.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Shika supports&lt;/li&gt;&lt;ul&gt;&lt;li&gt;opional type constraints&lt;/li&gt;&lt;li&gt;Role, with, has, before, around, after, etc.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Mouse is the answer one of this problem. I know.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Current project status is&lt;br /&gt;&lt;ul&gt;&lt;li&gt;development release&lt;/li&gt;&lt;li&gt;no XS yet&lt;/li&gt;&lt;li&gt;loading time is 0.88sec =&amp;gt; 0.11sec&lt;/li&gt;&lt;/ul&gt; &lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb010980bcb8f2000b?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>shipped llv8call 0.07</title>
            <link>http://tokuhirom.vox.com/library/post/shipped-llv8call-007.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/shipped-llv8call-007.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/shipped-llv8call-007.html?_c=feed-rss-full</guid> 
            <pubDate>Sun, 28 Sep 2008 16:03:07 +0900</pubDate>         
            
            <description>    &lt;p&gt;The killer feature of this version is &amp;quot;shttpd support&amp;quot;(http://shttpd.sourceforge.net/).&lt;/p&gt;&lt;p&gt;Run the httpd by JavaScript!&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;v8ext.LoadBinary(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;org.coderepos.shttpd&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;span class=&quot;synIdentifier&quot;&gt;var&lt;/span&gt; SHTTPD = org.coderepos.shttpd.SHTTPD;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;synIdentifier&quot;&gt;var&lt;/span&gt; httpd = &lt;span class=&quot;synStatement&quot;&gt;new&lt;/span&gt; SHTTPD(8080);&lt;br /&gt;httpd.RegisterURI(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;, &lt;span class=&quot;synIdentifier&quot;&gt;function&lt;/span&gt; (r) &lt;span class=&quot;synIdentifier&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;    r.Print(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;HTTP/1.1 200 OK&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\r\n&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;Content-Type: text/html&lt;/span&gt;&lt;span class=&quot;synSpecial&quot;&gt;\r\n\r\n&lt;/span&gt;&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;    r.Print(&lt;span class=&quot;synConstant&quot;&gt;&amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;Hello, v8 world&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;    r.SetFlags(SHTTPD.END_OF_OUTPUT);&lt;br /&gt;&lt;span class=&quot;synIdentifier&quot;&gt;}&lt;/span&gt;);&lt;br /&gt;httpd.StartLoop();&lt;/p&gt;&lt;/blockquote&gt;&lt;pre class=&quot;syntax-highlight&quot;&gt;&lt;/pre&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb0100a7fec849000e?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
 
        <item>
            <title>Architecture of llv8call</title>
            <link>http://tokuhirom.vox.com/library/post/architecture-of-llv8call.html?_c=feed-rss-full</link>   
            <author>nobody@vox.com(tokuhirom)</author>
            <comments>http://tokuhirom.vox.com/library/post/architecture-of-llv8call.html?_c=feed-rss-full</comments>
            <guid isPermaLink="true">http://tokuhirom.vox.com/library/post/architecture-of-llv8call.html?_c=feed-rss-full</guid> 
            <pubDate>Sun, 28 Sep 2008 11:42:55 +0900</pubDate>         
            
            <description>    &lt;p&gt;llv8call is a good solution for server side javascript.It is composed of &lt;strong&gt;three&lt;/strong&gt; parts. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 1.95312em;&quot;&gt;1. Core&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; builtin functions&lt;/li&gt;&lt;li&gt;ARGV support&lt;/li&gt;&lt;li&gt; ENV support&lt;/li&gt;&lt;li&gt; better interactive mode based on libreadline&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: 1.25em;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 1.5625em;&quot;&gt;2.v8ext&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;v8ext is extension library library for v8. This module makes &amp;quot;easy to extend your application, uses v8&amp;quot;.&lt;br /&gt;This module provides 2 methods and 1 property&lt;br /&gt;&lt;ul&gt;&lt;li&gt;v8ext.LoadScript()&lt;/li&gt;&lt;li&gt;v8ext.LoadBinary()&lt;/li&gt;&lt;li&gt;v8ext.LibraryPath&lt;/li&gt;&lt;/ul&gt;This library is easy to use =)&lt;br /&gt;&lt;span style=&quot;font-size: 1.95312em;&quot;&gt;&lt;strong&gt;3.extension libraries&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: 0.512em;&quot;&gt;llv8call respects&amp;#160; &amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;em&gt;batteries&lt;/em&gt; included&amp;quot; style.&lt;br /&gt;current version provides:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sqlite3&lt;/li&gt;&lt;li&gt;libfcgi&lt;/li&gt;&lt;li&gt;nspr(NetScape Portable Runtime), this module exports File, TCPSocket, UDPSocket, Process Management, Dir, etc.&lt;/li&gt;&lt;li&gt;libmemcached&lt;/li&gt;&lt;li&gt;curl&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/p&gt;    &lt;p style=&quot;clear:both;&quot;&gt;    
    &lt;a href=&quot;http://www.vox.com/share/6a00c2252096d88fdb00fa969e5abe0003?_c=feed-rss-full&quot;&gt;Send to a friend&lt;/a&gt; 
&lt;/p&gt;
 
            </description>   
        </item> 
    </channel>
</rss>

