Elixrのプロセスとは一体何なのか。Elixrのプロセスとは一体何なのか。探索の旅に出てた2019-12-04Elixrのプロセスとは一体何なのか。message)とするだけで対象のプロセスにdataを送ることが可能なのだろか。self()#PID<0.105.0>この値がPID。ここに表示されたPIDは現在、立ち上がっているiexに割り振られたPIDになる。iexもプロセスとして動いているということになる。self()#PID<0.105.0>spawnを使って生成したプロセスのPIDとself()で確認したPIDが異なっていることが確認できる。新たなる別のプロセスの生成に成功しているということだ。spawn/1としてhelpを確認したところ、spawnはProcessというモジュールに実装されているそうだこちらがspawn/1に該当するコード。defdelegateって何じゃい。:spawn_optdefdelegateについてまずはdefdelegateから調べてみよう。ぐぐったらElixirのKernelにdefdelegateを発見。見た感じ、別のモジュールに用意されている関数を自身で定義しているモジュールの関数として振る舞わせることが可能なようだ無事にEnumに実装されているrandomの関数に処理が割り当てられているようだ。okspawn_opt次にErlangドキュメントのspawn_optを見に行こう。pid()ドキュメントの文言通り、optionを用いて新たなプロセスを生成するで〜とのこと。BIFs.この関数はどれもpid()という値を返している。Typesの項目にPidの項目があるのだが、実際に内部のデータがどうなっているかという記述はなく、詳しいことはProcessを見て下さいとある。Programmershttps://github.com/erlang/otp/blob/maint/erts/emulator/beam/erl_term.h#571現在はErlangのディレクトリ構造やファイル内容が更新されていて、パスは変わっている。こちらが現在、erl_term.hが格納されているディレクトリのパスになるgithub.comそこに記述されているのがこのコメント。