Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    kojix2
    @kojix2
    戻ってきました。今日はどうせ待ち時間だからもう少しchartyを見るか…
    kojix2
    @kojix2
    お茶買ってこよう... :tea:
    Sutou Kouhei
    @kou
    rb_memory_view_flagsのそれぞれの意味の説明ってどこかにありましたっけ?
    memory_view.hにあるかと思ったけどなかった。)
    Kenta Murata
    @mrkn
    あー、完全に忘れてますねぇ
    Sutou Kouhei
    @kou
    え!?
    ArrowのArrayをmemory viewに対応させようとみているんですけど、NULLな要素は表現できないですよね。
    (表現しなくていいですよね?)
    Kenta Murata
    @mrkn
    あー、いまやってるんですね
    Sutou Kouhei
    @kou
    そうです!
    Kenta Murata
    @mrkn
    Arrow の Array を単体の memory view にできるかどうか以前考えて、できないなという結論に至りました。
    Sutou Kouhei
    @kou
    なるほど!
    Kenta Murata
    @mrkn
    Arrow の Array からは、値の memory view とビットマップの memory view の2つを作ることになるんじゃないかと
    Sutou Kouhei
    @kou
    なるほど!
    Arrayのmemory viewは値のmemory viewにして、Arrayのnull_bitmap(Arrow::Buffer)もmemory viewにするんですね。
    使う側は両方考慮しながら処理するんですね。
    Kenta Murata
    @mrkn
    はい。
    memory view はメモリの内容をそのまま見せるための仕組みなので、そうなると思います。
    Sutou Kouhei
    @kou
    ういっす。
    Kenta Murata
    @mrkn
    pyarrow がどう対応しているか見てみると良いかもしれません
    Sutou Kouhei
    @kou
    なるほど!
    Kenta Murata
    @mrkn
    (してない可能性もありますが・・・
    Sutou Kouhei
    @kou
    対応していないですね。。。
    bufferがmemoryview対応しているだけでした。
    あと、tensorはmemoryviewに対応していました。
    Kenta Murata
    @mrkn
    なるほど
    理にかなってますね
    Sutou Kouhei
    @kou
    arrayはmemory viewに対応してもうれしいことはないんですかねぇ。
    Kenta Murata
    @mrkn
    あーそうか、array の値列は複数の Buffer に分割されてる場合があるんでしたねぇ
    ArrayData::buffers に値が入ってるんでしたよね
    Sutou Kouhei
    @kou
    listとかのnestedなやつはそうなんですが、intとかは分割されないんですよ。
    なのでintとかだけ対応させようとしていました。
    Kenta Murata
    @mrkn
    primitive array は buffers.size() == 1 が常に成立するんでしたっけ
    Sutou Kouhei
    @kou
    そうっすね。
    常にここだけにデータが入っています。
    Kenta Murata
    @mrkn
    おぉ、なるほど。
    でしたら、PrimitiveArray だけ MemoryView に対応すると良いと思いました。
    Sutou Kouhei
    @kou
    わかりました!
    Kenta Murata
    @mrkn
    で、その場合は RUBY_MEMORY_VIEW_SIMPLE だけで良いと思います
    Sutou Kouhei
    @kou
    SIMPLE以外が立っていたらfalseを返せばいいってことですね。
    Kenta Murata
    @mrkn
    そのとおりです〜
    Sutou Kouhei
    @kou
    ういっす!
    Sutou Kouhei
    @kou
    C++でruby/memory_view.hincludeできない。。。
    /tmp/local/include/ruby-3.1.0/ruby/memory_view.h:103:17: error: expected unqualified-id before ‘private’
      103 |     void *const private;
          |                 ^~~~~~~
    Sutou Kouhei
    @kou
    #define private memory_view_privateでごまかすとビルドはできるけど、プロセス終了時のGCでSEGVするやつ ruby/fiddle#79 が発生する。
    これ、どうするのがいいのかしら。
    プロセス終了時のGC時にview->objを触るのが危険(先にview->objの方が開放されているかもしれない)だからなんだけど、rb_memory_view_release()内でview->objを触らなくてもいいようにどうにかしてrb_memory_view_tに対応するrb_memory_view_entry_t *を入れておいてlookupしなくてもいいようにするのがいいのかしら。
    でも、release_funcobjにさわっちゃうかもしれないんだよなぁ。うーん。
    また今度がんばろう。
    RubyKaigi Takeout 2021のCFPは出した。
    MemoryView対応は未完。
    Kenta Murata
    @mrkn
    うへ、そうか、C++ のこと完全に考えてなかった〜
    それは名前を変えますね。
    Sutou Kouhei
    @kou
    あざっす!
    kojix2
    @kojix2
    Seaborn をコマンドラインから呼ぶツールを思いついてしまったけど、
    cat hoge.csv | sns lineplot -x timepoint -y signal --hue region --style event | display
    無いわけがないという気がする。(display は svg を表示) Pythonの練習のためにスクリプトを書いてみてもいいかも知れない…
    kojix2
    @kojix2
    まあでも、これだとターミナルだけで見ることは不可だから、それなら最初からJupyterNotebookを使うという話になって、需要がないのかも。