これ、splat展開した時手前のarrayにconcatしてない?www
ボンクラプログラマー
頭とお腹が弱い。
最近は個人鯖の @shibafu528 がメインです。
⚠️ CW設定のない下品な発言が非常に多いです。これは仕様ですのでご了承下さい。
ℹ️ spam対策でフォロー承認制にしています。上の一文が構わないという方ならお気軽にどうぞ。
FINAL FANTASY XIV 関連の著作物は
(C) SQUARE ENIX CO., LTD. All Rights Reserved.
Ruby methodじゃなくてC functionの直接呼出っぽいからフックできないけど
mrb_ary_concat()の中で凍結チェックして、そこで例外出してるように見える
splat operatorを使うとOP_ARYCATとかOP_ARYPUSHが発生するっぽい。
2 005 OP_ARYCAT R3
これはR3+R4だけど、R3がnilなのでR4->R3にムーヴして終わり。
2 009 OP_ARYPUSH R3
ここでR4の1(int)がR3にあるarrayに破壊的にpushされるわけだ。ここでFrozen arrayだと死ぬ。
まーでもコンパイル段階ではfrozenかどうか分からん、frozenが後付けだから効率のために前からやってることがコンフリクトしてるのか
mrb_ary_push(mrb_state *mrb, mrb_value ary, mrb_value elem)
あっこれは確かにこの中ではaryをdupしてみたいなことできないですね…
OPCODE評価から処理関数に飛ぶ前に判定してdupするみたいなことが必要になる
まー2459で関数ジャンプする前にdupしてレジスタに割り付ければいい…?本当か?
mrubyでObject#freeze実装したのこくぶんさんなのか、ほぇーやっぱりCRubyのコミッターこっちにも顔出してんすねえ
ワロタ
火鳥@新刊発売中(@minatohitori)さんがツイートしました: 録画していたTOKYO MX「5時に夢中!」見ました!
正直、夕方の地上波で深堀りするわけがないと見くびっていた。
コメンテーターの中瀬ゆかり氏曰く、「西原理恵子さんから面白いと言われて美容院で読んだら笑ってしまった」と。
堂々たる紹介ぶりに感動。 https://t.co/JtSOaoWOKF
https://twitter.com/minatohitori/status/1298989489226838019?s=20
とりあえずmruby-pluggaloidは Array#dup でお茶を濁します
mruby-pluggaloid、とりあえずパッと目についた所は直せたと思うけど、テストを動かしてるわけでもないのでどこまでいけてるかは分からず…!
https://github.com/shibafu528/mruby-pluggaloid
そういえばmruby-pluggaloidを組み込んでプラグインクソツーツが撃てる丼クラ動作サンプルAppみたいなの作るとしたら、QtかCocoaじゃね!?ってなりながら昨晩寝たんですが
Qt -> C++なのでmruby APIがすぐ使える
Cocoa -> Obj-Cなのでmruby APIがすぐ使える (Swiftでも良い)
スクリプト言語やJavaだとバインディンク層を何とかしないといけないから、この用途では不適だな…
This account is not set to public on notestock.
This account is not set to public on notestock.
まあDocker for Winは元々バックエンド切替の仕組みが備わってたから、たぶんそんな難しい話じゃなかったんだよな
メインマシンのWindows側、Tissueをpullしたら600コミットくらい進んだ…
おお、WSL2内でdocker info叩いたらそのままDocker on WSL2のほうに接続された なるほど
Name: docker-desktop
Operating System: Docker Desktop
Kernel Version: 4.19.104-microsoft-standard
は草
まあでもコードをLinuxなFS下に置いて、そこからよしなに色々してくれるならまあ悪くなさそーだ。仕事環境とかこれ試すのアリな気がするし、そもそももう試してる人がいたきがす
難点はそうだなあ、IntelliJ使いはどうしたらいいんやろね。WSL内にインストールしてX転送?
通常のD4Winは1つのVMをHyper-V上に立ててその中でDocker Engineと各コンテナ起動、
LCOWはホストにDocker Engineを起動して、コンテナごとにHyper-V上にVMを立てて通信、
WSL2 Modeだと前者のVMがWSL2の1distroに置き換わった形になるのか。
やってる事そんなに変わらない気がするが、WSL2のdistro間の通信やHost-distro間のインテグレーションの仕組みに乗っかれるからDocker的にはコスパが良いんだろうか
ユーザー目線では、バインドするディレクトリツリーをWindowsのFS下じゃなくてLinuxのFS下に置いて作業するのがやりやすくなる程度な気がしてきた
ということだそうですが、良い機会なので、逆境のSubwayTooterを応援する気持ちをAmazonギフトで送っちゃいませんか?(他のクライアントも応援しようず)
時折、このような理不尽な困難に見舞われることはあります。
でも、本当にクライアントアプリが死ぬのは、作者がやる気を失った時なのであります。
QT: https://mastodon.juggler.jp/@SubwayTooter/104770518624312905
動画編集がめちゃめちゃ凝ってる
きりたん(20代男性)の夢記録12【VOICEROID劇場】 - ニコニコ動画
https://www.nicovideo.jp/watch/sm37429765
mruby-yaml、よくみたらpyyamlのサイトからlibyaml落としてて草
そういえばlibyamlだからか、別にpsychじゃないのでmikutter.ymlを読むにはやや都合が悪い
今はとりあえず、slugあたりはSymbolだろうと仮定できるからs/^://してからto_symしてる
Symbolで書いてあるパターンとStringで書いてあるパターンがある気がする
yaml gemはな〜〜〜〜
---
- poop
- kuso
をパースして {
:unko => ["poop", "kuso"]
}
にできるんやぞ
mrubyに当てたパッチ何があったっけなあって思ったけど、あれだ。Shellwords.escapeしてないせいでビルドがコケてキレたの直したやつ
This account is not set to public on notestock.
なんかexvoiceのbuild_config.rb、意図的に古いmruby-pluggaloidで固定されてた…
りんすきのmruby 1.3対応パッチを受けとった時に、exvoiceの更新工数が取れなくて古いバージョンで止めてたらしい
/home/shibafu/git/yukari-exvoice/mruby/build/repos/host/mruby-thread/src/mrb_thread.c:350:18: エラー: ‘struct RProc’ は ‘target_class’ という名前のメンバを持っていません
350 | context->proc->target_class = context->mrb->object_class;
| ^~
rake aborted!
mrb_thread.c:function mrb_thread_context_free: error: undefined reference to 'pthread_cancel'
あー理解した、mruby-threadにpthread_cancelの呼出が(前使用したリビジョンと比較して)増えてるけど、これAndroid NDKでは使えないからリンカーエラーになるんだ
ンー、mruby-threadにパッチ当てるしかないね defined __ANDROID__で分けよう
[14/14] Linking C shared library ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libexvoice.so
BUILD SUCCESSFUL in 3m 12s
exvoiceのJenkins走らないと思ったら、引っ越した時にWebhookのURL書き換え忘れてあ
アッ待て!!!! git submodule initしてない!!!!!!!!!!
まあこれには理由があって、r15あたりからgccがなくてちょっと面倒なことになる
めちゃくちゃ容量食う理由、あれだ ビルド環境をDockerでイメージビルドしてから処理してるからや
Jenkins、Docker上に構築してdocker.sockを直マウントするみたいな使い方したほうがやりやすいんだよなー
@toshi_a Welcome to ヨォドォバァシィカァメェラ。手遅的顾客朋友、你们好。衷心欢迎您光临友都手遅。友都八喜是日本手遅的大型购物中心。手遅商品将近一百万种、手遅品、手遅机、电子手遅、名牌手遅等应有尽有。最新的手遅、最优惠的手遅、最优质的手遅。
もし何らかのコンテンツフィルタに従わざるをえなくなったら、せめてフィルタルーチンにsocial justice warriorって名前つける
Yukari Next 3.0.4.2132 (linkage 200829 b0cd7d1*)/exvoice arm64-v8a(Aug 29 2020 16:02:05)/Google/Pixel 3/10
ヤバ、InvocationHandler使ってJavaのメソッドコールをmrubyに転送するやつじゃんこれwwww
JavaSomethingModelInterface model = ModelFactory.newInstance(mrb, JavaSomethingModelInterface.class, "DivaModelClassName", initialValueMap);
この呼出によって、Diva modelのアドレスを持ったプロキシーJavaオブジェクトが生成されて、modelに対する呼出はmruby VM上のDiva modelのメソッドコールになる
Diva modelが持っているfieldを適切に宣言したJava Interfaceが必要だけど、まあそりゃJavaから使うなら呑めるよね。
あんまりJavaでこういうことを皆カジュアルにはやらないから、どう見てもキモく感じてしまうな
一方Objective-Cであれば、forwardInvocation:ひとつで複雑なコードなしにどうにでもなるんですよ……(ニチャァ)
OBJECT_FIELD_READERってなにこのマクロ?と思ってたら、どうも過去に自分が作った「Javaオブジェクトのフィールドの値を得るstatic inline関数を定義する」マクロらしい
実は最近のAndroidには領域内でフォントサイズを小さくするプロパティあるにはあるんですが、こういう所でいちいち使ってるのは見ない
yukari-exvoice側にStatusConverterとか持ってるけど、別にこれYukari側に持たせててもあんま変わらん気がするな
あーそういえば今はdesugarがあるからyukari-exvoiceのコードをJava8にできるな
よしビルド通ったし久々にyukari-exvoiceのコンパイル済パッケージ更新するか
うぇーい
Version yukari-exvoice/20200829.181200 - shibafu528
https://bintray.com/shibafu528/maven/yukari-exvoice/20200829.181200
Yukari Next 3.0.4.2132 (linkage 200829 b0cd7d1*)/exvoice arm64-v8a(Aug 29 2020 18:05:12)/Google/Pixel 3/10
分からないなりに教えてもらう人がいるならその人が分かる製品を買うべきなんですが、そういう意味ではらくスマは完全に選外なのが笑う
libexvoiceの更新だけなので、mruby pluginを使ってない場合はとくに変更ないです
mrubyの更新と、delayer, delayer-deferred, diva, pluggaloidの更新も含んでる。
mikutter互換レイヤーの更新(最近やったmiquire移植とか)は含まれてないです
mrubyの昨日の件、1日で直ってしまった
https://github.com/mruby/mruby/commit/a66d86cfc15771bd62a045572970c567f7e78637