のでやってみます。まずビルドだけできる状態にしてみます。
これで実行すると当たり前ですがエラーになります。
のでやってみます。まずビルドだけできる状態にしてみます。
これで実行すると当たり前ですがエラーになります。
ので docker + qemu で試してみます。
ファイルを作った後 WSL で以下のようにして環境を作りました。
てきとうに読み始めててきとうに書き始めていてまだ終わっていません。 何か変なことを書いていたらすみません。
https://github.com/socketry/falcon がどう動いているのか気になったので見てみます。
# original file: https://git.ruby-lang.org/ruby.git/tree/parse.y | |
%prefix "tiny_ruby_parser" | |
%capture on | |
%value c -> "tiny_ruby_value" rb -> "TinyRubyValue" | |
%auxil c -> "tiny_ruby_context_ext *" | |
dump <- program:program | |
c -> { |
# This code is hereby placed in the public domain. | |
# | |
# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS | |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE | |
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
classDiagram
Parser --> LrMemoTable: memos
Parser --> Thunk: thunks[]
LrMemoTable --> LrMemo: memos[pos][rule_name]
LrMemo --> ThunkChunk: answer
Thunk <|-- ThunkNode
Thunk <|-- ThunkLeaf
program : top_compstmt | |
; | |
top_compstmt : top_stmts opt_terms | |
; | |
top_stmts : none | |
| top_stmt | |
| top_stmts terms top_stmt | |
; |
Feature #18875 https://bugs.ruby-lang.org/issues/18875 で、Ruby になにやら大きな変更が入ったようです。 チケットを読んでもどういうものなのかまだあまりわからず、気になったので調べつつメモします。
もっとも特徴的なのはこの部分です。
@@ -456,9 +460,12 @@ struct rb_iseq_constant_body {
} variable;
unsigned int local_table_size;