ASP3カーネル (for mros2) ビルド時の警告メッセージについて #53
Replies: 6 comments 1 reply
-
cfgに関しては、TOPPERS Tracのリビジョン191で対処されていると思います。 |
Beta Was this translation helpful? Give feedback.
-
「TECSに関わるもの」に関しては、私が1年以上前にTOPPERSプロジェクト内部のTECS WGのTracにチケットとして登録(1186)しており、TOPPERS内部のリポジトリ上ではfix済みです。 Proc.newの行をコメントアウトするだけではなく、Proc.newを呼び出したメソッドの引数として、ブロック引数&prを追加する必要があります。 現状は、内部ではfix済みですが、最近はTECS WGからのリリースがなかったため、fix済みのバージョンのtecsgenは公開されていません。 質問されたwarningが発生する原因は、Ruby2.7からProc.newの振る舞いが変更されたためです。 Ruby2.7ではwarningの発生だけですが、Ruby3.0以降では例外が発生してしまいます。 また、tecslib/core/bnf.tab.rbは、YACCに似たRubyのパーサジェネレータの一つであるRaccが自動生成したファイルです。 「cfgに関わるもの?」に関しても、TOPPERSプロジェクト内部でのリポジトリでは対応されているようです。 これもRuby 2.7からのメソッドのキーワード引数の振る舞いが変更されたことによります。 warningを出さないようにする方法ですが、以下の方法が考えられます。
|
Beta Was this translation helpful? Give feedback.
-
高瀬君、小南さん
大山です
小南さんが書いてくださっているとおりです。
Ruby 2.6 以前なら警告が出ません。
Ruby 2.7 では、とりあえず警告を無視して問題ありません。
Ruby 3.0 では例外が発生し動作しません。
TECS ジェネレータの修正済みの版はあるのですが、
リリースできておりません。
先日、少し大きな修正を入れて、不具合が出ているので、
それがおわったら、リリースすることにいたします。
年内目標ですすめます。
以上です
2021年12月22日(水) 8:23 ykominami ***@***.***>:
… 「TECSに関わるもの」に関しては、私が1年以上前にTOPPERSプロジェクト内部のTECS
WGのTracにチケットとして登録(1186)しており、TOPPERS内部のリポジトリ上ではfix済みです。
チケットにはwarningが出なくなることを確認したソースコード変更のパッチを添付してあります。
Proc.newの行をコメントアウトするだけではなく、Proc.newを呼び出したメソッドの引数として、ブロック引数&prを追加する必要があります。
また、ここでは指摘されていませんが、tecslib/core/generate.rbの940行付近のメソッドtravers_all_signatureにも同様の対応が必要です。
現状は、内部ではfix済みですが、最近はTECS WGからのリリースがなかったため、fix済みのバージョンのtecsgenは公開されていません。
質問されたwarningが発生する原因は、Ruby2.7からProc.newの振る舞いが変更されたためです。
詳しくは、例えば以下のRubyの公式のドキュメントを参照して下さい。
https://docs.ruby-lang.org/ja/latest/doc/news=2f2_7_0.html
Ruby2.7ではwarningの発生だけですが、Ruby3.0以降では例外が発生してしまいます。
また、tecslib/core/bnf.tab.rbは、YACCに似たRubyのパーサジェネレータの一つであるRaccが自動生成したファイルです。
warningを発生させない対応をする場合は、このファイルではなく、このファイルの生成元となるtecslib/core/bnf.y.rbの方を修正してください。
「cfgに関わるもの?」に関しても、TOPPERSプロジェクト内部でのリポジトリでは対応されているようです。
ただし、直近に公開されたASP3 RX簡易パッケージに同梱されているcfgには反映されていません。
https://www.toppers.jp/download.cgi/asp3_rx_ccrx-20211104.tar.gz
これもRuby 2.7からのメソッドのキーワード引数の振る舞いが変更されたことによります。
対応方法は上記URLの公式のドキュメントに記載されています。
warningを出さないようにする方法ですが、以下の方法が考えられます。
1.
用いるRubyのバージョンを2.6以前にする
実行するrubyのバージョンにこだわりがなく、Rubyからのwarningに悩まず他のことに注力したい場合、これが最も容易な方法です。
2.
(私が今まで書いてきたことを参考にして)独自にRubyスクリプトを修正
Ruby2.7なら、warningですみますが、Ruby3.0以降ではエラーとか、例外発生の可能性もあるため、
3.
fix済みのRubyスクリプトが
—
Reply to this email directly, view it on GitHub
<#53 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AD6IQ7WKSXBY72DO434IF5DUSEEAPANCNFSM5KPNIKUQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
@hiro22022 @ykominami 情報ありがとうございます.Trac/SVNではすでに対処済みとのこと,承知しました. 基本的/私的には,mros2ユーザに対してわざわざRubyのダウングレードを強いることはしたくないです.いっぽうでこちらの一部取り込みもできそうではありますが,他への影響が心配です.Ruby 2.7.0では警告で済んでいますし,直近にリリース予定となる tecsgen version 1.8.0 を取り込むのが良さそうだと感じました.リリースが完了しましたらお知らせいただけますと幸いです. |
Beta Was this translation helpful? Give feedback.
-
25日あたりにRuby3.1がリリースされるようなので、このタイミングでしたら一度そちらでもビルドできることを確認してリリースすると良いのではないでしょうか。 |
Beta Was this translation helpful? Give feedback.
-
@hiro22022 @h7ga40 @yurie @ykominami 改めまして,皆さま情報やアドバイスをありがとうございました.
という感じで進めましたが,お作法としてなにかよろしくないものでしたらご教示ください. @yurie よろしくどうぞ〜(いちどミスってスミマセン,,, |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
@hiroakitakada @hiro22022 @aztk Cc: @yurie @ykominami
ASP3カーネルを弊mros2向けに魔改造した sample1 のビルド時に,警告メッセージが表示されます.動作上は問題ありません.
亜種のものですしTECSとcfgの双方に関わるため,どこに投稿すべきか悩みまして,ここに投下させていただきます.警告メッセージの抑止策について,なにかお気づきの点やヒントなどご存知でしたらご教示ください.
試行環境
リポジトリ・ボード等の情報
ホスト環境
試行方法
https://github.com/mROS-base/asp3-f767zi#how-to-build-sample1-app-without-mros-feature
ビルドログと思索
make.log
TECSに関わるもの?
make.log 3行目から220行目
前者は, GitHub上だと https://github.com/mROS-base/asp3-f767zi/blob/mros2/tecsgen/tecslib/core/bnf.tab.rb#L5156
TOPPERS Trac上だと https://dev.toppers.jp/trac/tecs/browser/toppers/tecsgen/trunk/tecsgen/tecslib/core/bnf.tab.rb#L5124
に該当するところと思われる
後者は,GitHub上だと https://github.com/mROS-base/asp3-f767zi/blob/mros2/tecsgen/tecslib/core/componentobj.rb#L4521
TOPPERS Trac上だと https://dev.toppers.jp/trac/tecs/browser/toppers/tecsgen/trunk/tecsgen/tecslib/core/componentobj.rb 4613行目?(ファイルサイズが大きくプレビューできず)
いずれもTrac最新ではコメントアウトされている.
これに従って両者をコメントアウトしたら,別のエラーが発生してしまう.
警告メッセージを抑止するには最新版を持ってきたら良さそうだが,どうやったらよいか??
cfgに関わるもの?
make.log 222-225行目
GitHub上だと https://github.com/mROS-base/asp3-f767zi/blob/mros2/cfg/pass1.rb#L178-L179
TOPPERS Trac上だと https://dev.toppers.jp/trac/ruby_cfg/browser/trunk/cfg/pass1.rb#L180
に該当するところと思われる
これはまだ特に対処されていないように思われるが,どうするとよいか??
Beta Was this translation helpful? Give feedback.
All reactions