<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://rubyex.sairyx.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://rubyex.sairyx.org/feed.php">
        <title>rubyex</title>
        <description></description>
        <link>http://rubyex.sairyx.org/</link>
        <image rdf:resource="http://rubyex.sairyx.org/lib/images/favicon.ico" />
       <dc:date>2008-08-20T08:13:15+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/dev:bytecode?rev=1208607218&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/dev:eval?rev=1208578131&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/package:program?rev=1208578030&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/start?rev=1208577792&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/dev:objectmodel?rev=1208434584&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/package:module?rev=1203583534&amp;do=diff"/>
                <rdf:li rdf:resource="http://rubyex.sairyx.org/package:translator?rev=1203583276&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://rubyex.sairyx.org/lib/images/favicon.ico">
        <title>rubyex</title>
        <link>http://rubyex.sairyx.org/</link>
        <url>http://rubyex.sairyx.org/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://rubyex.sairyx.org/dev:bytecode?rev=1208607218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-19T12:13:38+00:00</dc:date>
        <title>dev:bytecode - ruby_class, not ruby_cbase</title>
        <link>http://rubyex.sairyx.org/dev:bytecode?rev=1208607218&amp;do=diff</link>
        <description>class Frank
  def initialize(name)
    puts &quot;Hi #{name}.&quot;
  end

  def kill
    puts &quot;I'm dead!&quot;
  end
end

def do_it name
  f = Frank.new &quot;Equinox&quot;
  f.kill
  puts &quot; -- #{name}&quot;
end

do_it (rabid = &quot;Forethought&quot;)


Now, we're tasked with converting this into bytecode for RubyEx, keeping consideration of the entire object model. How do we handle the creation of classes, for instance? Or defining functions? We need to be aware of our “context”, which is this strange main Object. MRI uses an i…</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/dev:eval?rev=1208578131&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-19T04:08:51+00:00</dc:date>
        <title>dev:eval - context, link to :start</title>
        <link>http://rubyex.sairyx.org/dev:eval?rev=1208578131&amp;do=diff</link>
        <description>Problem with package:module

If source-code contains an eval-like statement (which it probably will - this is Ruby), then RubyEx's module has no method for decoding it. Probably, translator would either need to be called in user-space from kernel-space (ouch!), or perhaps translator can also be loaded into the kernel.</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/package:program?rev=1208578030&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-19T04:07:10+00:00</dc:date>
        <title>package:program - created</title>
        <link>http://rubyex.sairyx.org/package:program?rev=1208578030&amp;do=diff</link>
        <description>Synopsis

The Program package of RubyEx is a C++ VM which accepts byte-code generated from the translator and evaluates it.

Interface

Program accepts bytecode on stdin by default, and evaluates the bytecode in the context of a RubyEnvironment (more-or-less equivalent to a cell in module).</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/start?rev=1208577792&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-19T04:03:12+00:00</dc:date>
        <title>start - Adding github link.</title>
        <link>http://rubyex.sairyx.org/start?rev=1208577792&amp;do=diff</link>
        <description>Synopsis

 RubyEx is a parser, byte-code compiler and interpreter for the programming language Ruby.

You can track/fork the source code on Github.

Its progress is documented in English and Japanese (日本語) on my blog, and here.

Target

RubyEx consists of a few packages at current:</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/dev:objectmodel?rev=1208434584&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-04-17T12:16:24+00:00</dc:date>
        <title>dev:objectmodel - created</title>
        <link>http://rubyex.sairyx.org/dev:objectmodel?rev=1208434584&amp;do=diff</link>
        <description>RubyObject v. RubyValue, etc. Discussion will be entered here.</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/package:module?rev=1203583534&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-02-21T08:45:34+00:00</dc:date>
        <dc:creator>Arlen Christian Mart Cuss</dc:creator>
        <title>package:module - created</title>
        <link>http://rubyex.sairyx.org/package:module?rev=1203583534&amp;do=diff</link>
        <description>Synopsis

The module package of RubyEx is a C kernel module which accepts byte-code generated from the translator and evaluates it.

Interface

This package's interface is exposed by character devices. 

Developers

It registers a chardev and outputs the major to dmesg. Minor 0 is used for communications, and it supports a fairly simple command language, supporting the registration of cells. Each cell is a Ruby execution environment/ObjectSpace, and is associated with a name and minor. Byte-code…</description>
    </item>
    <item rdf:about="http://rubyex.sairyx.org/package:translator?rev=1203583276&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2008-02-21T08:41:16+00:00</dc:date>
        <dc:creator>Arlen Christian Mart Cuss</dc:creator>
        <title>package:translator - created</title>
        <link>http://rubyex.sairyx.org/package:translator?rev=1203583276&amp;do=diff</link>
        <description>Synopsis

The translator package of RubyEx is a C++ Bison/Flex parser written from scratch. It constructs an AST and emits byte-code (there is relevant discussion on byte-code).

Support

This package attempts to parse Ruby source-code in a manner as compatible with the official Ruby implementation as possible, targetting 1.8, with some of 1.9's features. It is barely complete, though the framework is completely set up, and relatively complex constructs are parsed correctly.</description>
    </item>
</rdf:RDF>
