diff options
| author | nsfisis <nsfisis@gmail.com> | 2023-03-19 00:47:11 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2023-03-19 00:47:11 +0900 |
| commit | 88b66f82aae2d7784002b07bfc7877932da3ec94 (patch) | |
| tree | 4950a8f9f740715f2c56383309edab97df37a2f5 /content/posts/2021-10-02/ruby-detect-running-implementation.xml | |
| parent | 0e5fff11e9a455273dad77fc26796af03ddf08d3 (diff) | |
| download | blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.tar.gz blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.tar.zst blog.nsfisis.dev-88b66f82aae2d7784002b07bfc7877932da3ec94.zip | |
fix(content): fix XML notations
Diffstat (limited to 'content/posts/2021-10-02/ruby-detect-running-implementation.xml')
| -rw-r--r-- | content/posts/2021-10-02/ruby-detect-running-implementation.xml | 184 |
1 files changed, 107 insertions, 77 deletions
diff --git a/content/posts/2021-10-02/ruby-detect-running-implementation.xml b/content/posts/2021-10-02/ruby-detect-running-implementation.xml index ccc797b..18548c2 100644 --- a/content/posts/2021-10-02/ruby-detect-running-implementation.xml +++ b/content/posts/2021-10-02/ruby-detect-running-implementation.xml @@ -15,81 +15,111 @@ </revision> </revhistory> </info> - <simpara>この記事は Qiita から移植してきたものです。 元 URL: - <link xl:href="https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791">https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791</link></simpara> -<simpara><hr/></simpara> -<simpara>Ruby -という言語には複数の実装があるが、それらをスクリプト上からどのようにして -programmatically に見分ければよいだろうか。</simpara> -<simpara><literal>Object</literal> クラスに定義されている <literal>RUBY_ENGINE</literal> - という定数がこの用途に使える。</simpara> -<simpara>参考: -<link xl:href="https://docs.ruby-lang.org/ja/latest/method/Object/c/RUBY_ENGINE.html">Object::RUBY_ENGINE</link></simpara> -<simpara>上記ページの例から引用する:</simpara> -<programlisting language="shell-session" linenumbering="unnumbered">$ ruby-1.9.1 -ve 'p RUBY_ENGINE' -ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] -"ruby" -$ jruby -ve 'p RUBY_ENGINE' -jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] -"jruby"</programlisting> -<simpara>それぞれの処理系がどのような値を返すかだが、stack overflow -に良い質問と回答があった。</simpara> -<simpara><link xl:href="https://stackoverflow.com/a/9894232">What values for RUBY_ENGINE -correspond to which Ruby implementations?</link> より引用:</simpara> -<blockquote> - <table> - <thead> - <tr> - <td>RUBY_ENGINE</td> - <td>Implementation</td> - </tr> - </thead> - <tbody> - <tr> - <td><undefined></td> - <td>MRI < 1.9</td> - </tr> - <tr> - <td>`ruby'</td> - <td>MRI >= 1.9 or REE</td> - </tr> - <tr> - <td>`jruby'</td> - <td>JRuby</td> - </tr> - <tr> - <td>`macruby'</td> - <td>MacRuby</td> - </tr> - <tr> - <td>`rbx'</td> - <td>Rubinius</td> - </tr> - <tr> - <td>`maglev'</td> - <td>MagLev</td> - </tr> - <tr> - <td>`ironruby'</td> - <td>IronRuby</td> - </tr> - <tr> - <td>`cardinal'</td> - <td>Cardinal</td> - </tr> - </tbody> - </table> -</blockquote> -<simpara>なお、この質問・回答は -2014年になされたものであり、値は変わっている可能性がある。MRI (aka -CRuby) については執筆時現在 (2020/12/8) も <literal>'ruby'</literal> -が返ってくることを確認済み。</simpara> -<simpara>この表にない主要な処理系として、https://mruby.org[mruby] は <literal>'mruby'</literal> - を返す。</simpara> -<simpara><link xl:href="https://github.com/mruby/mruby/blob/ed29d74bfd95362eaeb946fcf7e865d80346b62b/include/mruby/version.h#L32-L35">mruby -該当部分のソース</link> より引用:</simpara> -<programlisting language="c" linenumbering="unnumbered">/* -* Ruby engine. -*/ -#define MRUBY_RUBY_ENGINE "mruby"</programlisting> + <simpara> + この記事は Qiita から移植してきたものです。 元 URL: + <link xl:href="https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791">https://qiita.com/nsfisis/items/74d7ffeeebc51b20d791</link> + </simpara> + <simpara> + <hr/> + </simpara> + <simpara> + Ruby + という言語には複数の実装があるが、それらをスクリプト上からどのようにして + programmatically に見分ければよいだろうか。 + </simpara> + <simpara> + <literal>Object</literal> クラスに定義されている <literal>RUBY_ENGINE</literal> + という定数がこの用途に使える。 + </simpara> + <simpara> + 参考: + <link xl:href="https://docs.ruby-lang.org/ja/latest/method/Object/c/RUBY_ENGINE.html">Object::RUBY_ENGINE</link> + </simpara> + <simpara> + 上記ページの例から引用する: + </simpara> + <programlisting language="shell-session" linenumbering="unnumbered"> + <![CDATA[ + $ ruby-1.9.1 -ve 'p RUBY_ENGINE' + ruby 1.9.1p0 (2009-03-04 revision 22762) [x86_64-linux] + "ruby" + $ jruby -ve 'p RUBY_ENGINE' + jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java] + "jruby" + ]]> + </programlisting> + <simpara> + それぞれの処理系がどのような値を返すかだが、stack overflow + に良い質問と回答があった。 + </simpara> + <simpara> + <link xl:href="https://stackoverflow.com/a/9894232">What values for RUBY_ENGINE + correspond to which Ruby implementations?</link> より引用: + </simpara> + <blockquote> + <table> + <thead> + <tr> + <td>RUBY_ENGINE</td> + <td>Implementation</td> + </tr> + </thead> + <tbody> + <tr> + <td><undefined></td> + <td>MRI < 1.9</td> + </tr> + <tr> + <td>`ruby'</td> + <td>MRI >= 1.9 or REE</td> + </tr> + <tr> + <td>`jruby'</td> + <td>JRuby</td> + </tr> + <tr> + <td>`macruby'</td> + <td>MacRuby</td> + </tr> + <tr> + <td>`rbx'</td> + <td>Rubinius</td> + </tr> + <tr> + <td>`maglev'</td> + <td>MagLev</td> + </tr> + <tr> + <td>`ironruby'</td> + <td>IronRuby</td> + </tr> + <tr> + <td>`cardinal'</td> + <td>Cardinal</td> + </tr> + </tbody> + </table> + </blockquote> + <simpara> + なお、この質問・回答は + 2014年になされたものであり、値は変わっている可能性がある。MRI (aka + CRuby) については執筆時現在 (2020/12/8) も <literal>'ruby'</literal> + が返ってくることを確認済み。 + </simpara> + <simpara> + この表にない主要な処理系として、https://mruby.org[mruby] は <literal>'mruby'</literal> + を返す。 + </simpara> + <simpara> + <link xl:href="https://github.com/mruby/mruby/blob/ed29d74bfd95362eaeb946fcf7e865d80346b62b/include/mruby/version.h#L32-L35">mruby + 該当部分のソース</link> より引用: + </simpara> + <programlisting language="c" linenumbering="unnumbered"> + <![CDATA[ + /* + * Ruby engine. + */ + #define MRUBY_RUBY_ENGINE "mruby" + ]]> + </programlisting> </article> |
