usakdsteen

ゆうさくですてぃーん

2021年11月10日(Wed)の独り言

の呟きは 38

 < の独り言 | の独り言 | の独り言 > 
  •  #

    gitのグローバル設定てどこに置くんだったっけ・・・?

  •  #

    idpwmemoを簡単にwrapするだけのstructをexport対象にすれば使えるのだろうか・・・?

    •  #

      コンパイルタイム~

      f:id:neetsdkasu:20211110014805p:plain
      •  #

        まぁ依存関係は
        たいていは初回のみコンパイルってな感じなはず・・・

      •  #

        新たなインストールが・・・

        f:id:neetsdkasu:20211110014721p:plain
        •  #

          インストールはwasm-pack経由でやられると
          ちょっとアレなので中断・・

          •  #

            wasm-bindgen-cliがインストールされようとしていた・・・?

            •  #

              今、perlはPATH通してないけど大丈夫かなあ・・・

            •  #

              cargo installからインストールしたった

              f:id:neetsdkasu:20211110014815p:plain
      •  #

        お、ビルドできた・・・?

        f:id:neetsdkasu:20211110014826p:plain
        •  #

          おおお

          f:id:neetsdkasu:20211110014732p:plain
          •  (UPD ) #

            えっと、デフォのalertしかないgreet()関数しか出力されてないようだが・・・

            •  #

              greet()関数内で
              idpwmemoを使ってみるか・・・?

              •  #

                ひとまずこんな感じに・・・

                f:id:neetsdkasu:20211110014743p:plain
                •  #

                  cargo cleanとかやってしまったから
                  依存関係コンパイルからやりなおし・・・

                •  #

                  んん?コンパイルできたっぽい・・・?

                  f:id:neetsdkasu:20211110014649p:plain
                  •  #

                    これは・・・voidなんですが・・・

                    f:id:neetsdkasu:20211110014754p:plain
                    •  #

                      あのさ・・・
                      greet()関数を消してリビルドしても
                      このgreet()のやつしか出てこないんだけど・・・?

                      •  #

                        ゼロからwasm-pack newやって試す・・・

                        f:id:neetsdkasu:20211110014700p:plain
                        •  #

                          ん、ちゃんとビルドされたが・・・

                          f:id:neetsdkasu:20211110014710p:plain
                          •  #

                            違いは、何

                            •  (UPD ) #

                              新しくwasm-pack newやって
                              lib.rsとcargo.tomlだけ引っ張ってきて
                              ゼロからビルドやってみる

                              •  #

                                今度は、生成できたっぽい・・・何故・・・

                                f:id:neetsdkasu:20211110024856p:plainf:id:neetsdkasu:20211110024845p:plain
                                •  #

                                  相変わらず元のほうはgreet()しか生成されない・・

                                  •  (UPD ) #

                                    foo-barのほうのlib.rsをずっと弄ってたぽいのだ・・・
                                    idpwmemo-wasmのほうはテンプレートのままのlib.rsで一切変更されてなかったってこと・・・

                                    notepad++で複数のlib.rsのタブが開いてたから
                                    関係ないlib.rsのほうをね・・・
                                    バカだよね・・・
                                    マヌケだよね・・・

                      •  #

                        原因わかった・・・
                        idpwmemo-wasmのlib.rsだと思っていたら
                        別のlib.rsをずっと弄ってた・・・

                        •  #

                          初歩的ミス(?)

    •  #

      ちょろっとやってみた感じ

      idpwmemo_rsをwasmにする価値は皆無ぽそう

  •  (UPD ) #

    作ったrustライブラリがwasmに組み込めるかは
    cargo build --target wasm32-unknown-unknownすればいい、みたいなこと書いてあるな
    エラーが無ければ使えるとかどうとか・・・

    https://rustwasm.github.io/book/reference/add-wasm-support-to-crate.html#maybe-your-crate-already-supports-webassembly

    •  #

      (omitted)

    •  #

      (omitted)

    •  #

      (omitted)

    •  #

      (omitted)

    •  #

      これ、要するにJS側に一切表出させないならOKだよって感じのOKだよな…

      JS側から呼び出す関数内部でのみ、ライブラリ使える、という感じ
      つまり完全にwasm内でしか使わない感じ

      •  (UPD ) #

        idpwmemo_rsをwasmで呼び出そうとして悪戦苦闘した結果として
        idpwmemoの目的にwasmは全く向かない

        •  #

          設計的にIDPWMemoのデータを直接操作する感じになっており・・・
          wasm側からJS側へ表出させることが出来ない構造してるから

          IDPWMemoが全く使えないという、役立たず

          •  #

            操作するためのメソッドを作れば
            まぁデータは操作できなくもなさそうぽいけど

            他のIDPWMemoとはかなり違った使い方になる・・・

  •  (UPD ) #

    おお、idpwmemo_rsがwasmで動いた

    f:id:neetsdkasu:20211110190357p:plainf:id:neetsdkasu:20211110190346p:plain
    •  #

      ところでこのinit()とやら
      自動的に実行とかやってくれないんすかね・・・

      •  #

        チュートリアルのやり方だと
        どうもinit()を呼び出してくれてなさそうで
        関数が見つからないエラーが出たんだよね・・・

        まぁそもそもチュートリアルがnpm前提で書かれてるからかもしれんが・・・

      •  (UPD ) #

        このinitはJSモジュールにおけるデフォルトエクスポートという形式でエクスポートされているらしいが

        まぁよくわからん・・・

        https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/export

        •  #

          デフォルトエクスポートはJSモジュールごとに1個持てるらしい

          他のエクスポートのクラスや関数や変数とは異なるようで

          •  (UPD ) #

            idpwmemo_wasm.jsでは
            wasmコードを読み込む処理のinit関数がデフォルトエクスポートとして定義されており・・・

            •  #

              ところでwasm-pack newだとアンダースコアがハイフンに変換された記憶があるんだが
              何で生成物はアンダースコアになってんの・・・

 < の独り言 | の独り言 | の独り言 >