Loading

S.F. Info.

S.F.@SFPGMR

2019/5/19 19:23:04

この試合を観てから「シダックス・ファイヤー」を口ずさまない日はない。。

Youtube - シダックスファイヤー 2018秋決勝 中央学院1回表

2019/5/19 19:23:48

千葉の高校の応援は全国的にみてもレベルが高いのではないかと個人的には思ってる。

2019/5/19 19:25:43

私大阪出身だが、夏の予選でもこんなにガッツリ応援してなかったと思うんだけどね。でも府大会のテレビ中継なんて観てたのもう25年以上前だから今どうなってるかわからんけど。。

2019/5/19 19:27:16

この一回の中央学院の攻撃がすごかったんだよなあ。ストライク取りにきた甘い球を逃さないんだよな。。中央学院って強い。。てこの時思った。

2019/5/19 19:30:07

中央学院もピッチャーが今年は課題かもしれんね。。打撃は素晴らしいものがある。

2019/5/19 19:32:07

専大松戸に7-3で負けたんだけど、あの横山くんから3点取ってるのはやっぱりすごいんじゃないかな。。

2019/5/20 19:27:46

専大松戸は10-6で桐光学園に勝利。専大松戸の先発は千葉県大会でも決勝で先発で投げた西村くん。杉田くんかな?と思ってたけど、違った。ただ西村くんは捕まって杉田くんにスイッチ。杉田くんはそのあとはしっかり抑えた。

2019/5/20 19:27:46

やっぱり横山くんと杉田君の二本柱はすごいよなあ。

2019/5/20 19:29:00

次は東海大相模。おそらく明日は雨だから中1日空くんじゃないだろうか。そうすると横山くん先発ー杉田くんリリーフの黄金の継投で最少失点で勝利の可能性も出てきたな。。

2019/5/20 20:50:01

投手力・打力で見るといまいまのベスト4の順位は

1.専大松戸
2.木更津総合
3.習志野
4.銚子商

の順になるよなあ。ピッチャーの枚数と完成度は専大松戸が1つ頭出てる気がする。習志野と木更津総合がどれだけ伸びてくるかだけど、ポテンシャルは木更津総合のほうに分があるように思うなあ。。

2019/5/20 20:50:01

木総は根本くんがどれだけ復調するかにかかってるよな。習志野は2人目のピッチャーの安定性にかかってる。

2019/5/20 20:51:11

ベスト5となると中央学院がやっぱり入ってくるよな。あとは畔柳くんと2番手の出来次第。打線は申し分ないんじゃなかろうか。

2019/5/20 20:53:50

春から夏予選にかけては1年生も入ってくきて戦力も多少変わるし、他のメンバーも2-3か月の過ごし方でコロっと変わるから、わからんよなあ。。思いもよらぬチームが行く可能性もなくはない。八千代東を思い出すなあ。。

2019/5/22 17:50:44

うーむ。専大松戸負けたか。。杉田くん先発とは意外でしたな。。横山くん登板なしか。。黄金の投手リレーは夏におあずけですな。。

2019/5/22 17:51:17

まあでも杉田くんの投球内容はそんなに悪くないよね。。

2019/5/22 17:53:36

山村学園は和田くんが4試合連投なんじゃないの?しかも延長で勝ち越されるまであの東海大相模を一点に抑えたのは大したもんだ。。

2019/5/23 19:19:05

そして東海大の冠を背負った同士の春季関東大会の決勝、下馬評通り東海大相模が優勝した。東海大相模はあの打力で結構細やかな野球をするのですな。これは手ごわいですわ。とはいえ神奈川は激戦区だから夏の甲子園はそう簡単には行けないんだな。これが。

2019/5/23 19:22:20

春季大会が終了すると次はいよいよ夏の予選。千葉県予選が始まる7月10日までは1か月半ほどある。この1か月半をどう過ごすかで結果が変わってくるわけですな。。

S.F.@SFPGMR

2019/5/23 18:27:05

KRAFTWERKの「Franz Schubert」。このストリングスの音を聴いたとき、1977年でまさかサンプリングか!と思った。がこれは「メロトロン」というアナログ・サンプラの音らしい。テープ・サンプラと言ったほうが正確だろうか。。

Youtube - Franz Schubert (2009 Remastered Version)

2019/5/23 18:34:05

メロトロンはキーボード一つ一つにテーププレーヤーがついてて、キーボードを押すと再生して、話すとテープが巻き戻るというものすごいメカニカルなものである。。

Youtube - The Mellotron: Famous Songs!

2019/5/23 18:37:08

ビートルズの「Strawberry Fields Forever」のイントロでも使われてるよね。。

Youtube - The Beatles - Strawberry Fields Forever

2019/5/23 18:40:39

これを知った当時(1980年後半)実物をみたことはなかったし、そんなメカニカルなものできちんと演奏できるのか?と思ってたが、Youtubeのおかげで実物の構造や演奏を見ることができた。
これはポールマッカトニーよるメロトロンの紹介動画。

Youtube - Paul McCartney shows the Mellotron

2019/5/23 18:41:05

よい時代になったものだ。

2019/5/23 18:52:16

こういうメロトロンもあったのか。。左手でバッキング・トラックを弾いて、右手でソロを弾くという。この時代(1965年)でこれができてるのもすごいよね。音色のスイッチもできるような。

Youtube - The Mellotron: A Keyboard with the Power of an Orchestra (1965) | British Pathé

2019/5/23 18:57:33

若いときには全然知りえなかったことが、いまいろいろ知ることができるようになって、ほんと楽しい世の中になったよな。。逆もあるけど。

S.F.@SFPGMR

2019/5/23 18:22:55

KRAFTWERK 「Kometenmelodie 2 」。1974年ですでにこのベースの音色。すごいことですわな。。

Youtube - Kometenmelodie 2 (2009 Remaster)

S.F.@SFPGMR

2019/5/23 17:21:22

Jeff Beckの「Play With Me」。シンセのソロがギター・シンセなのかヤン・ハマーの演奏によるものなのか私はいまだにわからない。ヤン・ハマーもギターのようにキーボードを演奏するそうだと聞いてるし。「Narada Michael Walden」のドラムもいいよね。。

Youtube - Jeff Beck - Play With Me

2019/5/23 17:21:22

Jeff Beckの「Red Boots」。
「Narada Michael Walden」のドラムがすごいなあと思った一曲。超絶技巧を持つ演奏家が集まってセッションやると「なんとなく弾いてみた」で1曲できてしまうんじゃないだろうか。。

Youtube - Jeff Beck-Led Boots

2019/5/23 17:27:44

Jeff Beck - Come Dancing
このイントロのドラムの部分はUAの曲で使われてるよね。「情熱」聴いたとき「あ、ジェフベック」ってなった。。

Youtube - Jeff Beck - Come Dancing

S.F.@SFPGMR

2019/5/23 16:55:49

私がJames Brownで一番好きな曲はこれ。

Youtube - James Brown - Give It Up Or Turnit A Loose (In The Jungle Groove Remix)

2019/5/23 16:55:59

このCDも持っている。。

2019/5/23 16:58:20

Licking Stick。これもちょっと好きですな。。

Youtube - Licking Stick, Licking Stick by James Brown

2019/5/23 17:01:32

Kool & The Gang チョコレート・バターミルク。
このドラムのノリにちょっとハマってた。何度聴いたことか。。ノリとはなんなのか。。

Youtube - Chocolate Buttermilk - Kool & The Gang (1969)

2019/5/23 17:04:28

Kool & The Gang の「N.T.」。これもちょっとリズムのノリがちょっとクセになる一曲。初期のKool & The Gangの曲が結構好きなんだなあ。。とはいえKool & The Gangの曲全部聴きこんだわけではないけどね。

Youtube - Kool & the Gang N.T. Pts 1 & 2

2019/5/23 17:07:09

多分Kool & The Gangはこの曲のイメージが強いと思うが。。

Youtube - Kool & The Gang - Celebration (Official Video)

S.F.@SFPGMR

2019/4/19 20:51:04

wasm テキスト・フォーマットに定数ラベルなどの機能を拡張しようと試みてる。まあ完成するかどうかはまたアレだが。
プリプロセッサとして作り、watを吐くようにするつもり。「夢のオレオレ言語」にも生かせそうだしね。

2019/4/19 20:51:04

定数ラベルだけではなく、定数式も処理できたほうがいいというかできないと使い物にならないことに気づいて、どうしようか実装しながら考えてる。peg.jsを使ってパーサを書こうと思ってるんだけどね。

2019/4/19 20:51:05

最初は定数ラベルの定義をパースして、wasmのテキスト部分をトークン分割して定数ラベル名と識別子名が同じなら定数ラベル名に対応する定数を置き換えればいいじゃないかと思っていた。

2019/4/19 20:55:36

定数ラベルだけだと簡単だけど、定数式を導入するとなるとそうはいかない。wasm命令をある程度解釈して、定数が入る部分を特定する必要が出てくる。特定すれば後はプリプロセス段階でその式を実行してできた値に置き換えていけばいいよな。

2019/4/19 20:55:37

wasmテキスト・モードで定数式書けるならもうちょっと端折れるかなあと思ったけど、人間が直接書くことは想定してないから無いのだよね。。

2019/4/19 20:57:54

これは連休明けくらいまでには形なってればいいなあくらいの感じで進めようと思ってるけどね。。

2019/4/19 20:59:16

でまあ定数周りの式が書けるようになるとあとは#ifディレクティブみたいなことや、ソースインクルードをつければまあそこそこのものは開発できるのではないかなあと思ってるんだけどね。

2019/4/20 10:59:56

いろいろ考えた結果、マクロを(というかプリプロセス処理を)JSで書けるようにしてみた。一応画像のような記法のものをプリプロセスできている。 https://t.co/zpH00CDbCj

2019/4/20 11:04:32

プリプロセス後はこうなる。 https://t.co/HV7x9LpRlT

2019/4/20 11:06:25

gist

WASMテキストモードのプリプロセスをJSでできるようにしてみた。 · GitHub
WASMテキストモードのプリプロセスをJSでできるようにしてみた。. GitHub Gist: instantly share code, notes, and snippets.

2019/4/20 11:08:19

JSで書けるようにしたのはマクロのパーサを書くのが面倒なのがその理由。Functionオブジェクトを使って$というコンテキスト変数を使ってあれこれやる。

2019/4/20 11:14:30

マクロのパーサというか式実行とかを書くのが面倒なので、JSにマクロ部分のコードを預ければ結果が返ってくるのでそうしようかなと。。evalは使わずFunctionでやってる。そしてマクロブロック内はContextクラスのインスタンスをthisとして実行するようにしてる。

2019/4/20 11:15:12

Contextインスタンスの変数名が「$」である。thisでもいいが長いので「$」にした。。

2019/4/20 11:26:27

コードブロックなかではJSが動くのでWASMソースコードをJSで吐くようにすることも可能だわな。。 https://t.co/RHjMGSEreY

2019/4/20 11:27:50

そしてこれをプリプロセスするとこうなるというわけですな。 https://t.co/KpFTxx4IJM

2019/4/20 11:32:49

wabtに読ませてtoText()した結果がこれ。 https://t.co/h6jyJMTpC9

2019/4/20 11:42:02

あとはソースインクルードと条件つきプリプロセスですわな。。

2019/4/20 11:43:09

とりあえずこのレベルでwasmだけでpsgエミュレータを移植してみようかなと思ってるんだけどね。。

2019/4/20 11:43:24

自分用なのでこれでいいかなと。

2019/4/20 17:37:11

ソースインクルードってやっぱりややこしいなあ。。

2019/4/20 18:11:31

まずはソースインクルードして1つのソーステキストにしないといかんわな。でもインクルードしたソーステキスト中にソースインクルードがあったらそれもインクルードせんといかんわな。

2019/4/20 18:11:31

ちゅうことは再帰的にソースインクルードを繰り返して最終的にソースインクルードがなくなるまでインクルードしないといかんわな。

2019/4/21 20:17:15

ソースインクルードはできた感じ。あとはCでいうところの#if ディレクティブができたらとりあえず何か作れる状態にはなるかなと。マクロもS式で書けるようにするべきかもしれんが。。

2019/4/21 21:22:44

一応こんなコードがwasmバイナリ化できるようになった。。 https://t.co/d326zviDAm

2019/4/21 21:23:06

これの結果は以下の通り https://t.co/BuCQ0uPKu0

2019/4/21 21:25:06

いまいまの構文はこんな感じ。

mwasm/README.md at master · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/4/21 21:47:41

プリプロセッサとしてはかなり高機能になりそうな感じではある。

2019/4/22 4:55:04

一応リポジトリは以下。

GitHub - sfpgmr/mwasm: wasmテキストフォーマットのプリプロセッサ拡張
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/4/24 21:21:36

プリプロセッサの実装は続けている。当初作り始めたものは1パスというか、peg.jsで生成したパーサー上でプリプロセスを同時に行うというしろものだった。

2019/4/24 21:21:37

しかしそれではソース・インクルードや条件付きインクルードできない、できたとしても非常に面倒くさい実装になるのでいったんパーサでソース・ツリーを出力してからそれを実行するように変更した。

2019/4/24 21:21:37

つまり2パス的な処理に変更した。そして今はメモリレイアウトを定義する仕様を決めつつ実装を進めているところである。

2019/4/24 21:21:37

これはアセンブラでいうところのDWとかEQUとかの擬似命令の類のものである。

2019/4/24 21:25:12

あとはstructとマクロ命令を定義できるようにしようと思っているが、ここまで来るとオレオレ言語の続き作ったほうがいいんじゃないかという気もしてきたけど、とりあえずこれは続けてPSGエミュレータを書くまでは続けるつもりである。

2019/4/24 21:25:12

そこまでできればまた違う世界が見えてくる、そういう気がしている。というのは大げさだろうか。オレオレ言語へのモチベーションも復活するかもしれんかなと。

2019/4/24 21:40:49

このプリプロセッサのメタ言語としてJSを使うというのは実現したかったところ。だけどそれだけではちょっと足りんというかコードを書くのが面倒なので変なディレクティブを作ってる感じ。だけどちょっと楽しい。

2019/4/24 21:50:08

今回のことでpeg.jsの理解が少し深まって、またちょっと評価が変わってきてる。

2019/4/24 21:50:08

S式も何となく好きなんだけどやっぱり書きにくいので、昔のアセンブラ風ニーモニックにできんかなとか考えてたりする。どうしても夢ばかり膨らんでしまうなあ。誇大妄想癖かもね。。

2019/4/24 21:50:08

load.i32 0x00000000
store.i32 0x04000000
load.i32 1

↓アセンブル

(i32.store (i32.const 0) (i32.load ( i32.const 0 )))

みたいな.

2019/4/24 21:51:13

あ、ちょっと間違った。。でもそれは次の段階にして、とりあえず動くものを作ろう。。

2019/4/26 4:27:16

ちょっとアセンブラの処理プロセスを考えなおし2つプロセスを追加することにした。結果、

1.トークナイズ&パース
2.プリプロセス
3.(新規)擬似命令の展開
4.(新規)定数ラベルの置換
5.wasmモジュール変換

2019/4/26 4:27:17

wasmのmemory内のメモリマップを作る処理は、プリプロセッサではなく、擬似命令レベルの処理だよなあと気づいた?からである。

2019/4/26 4:27:17

この擬似命令レベルの処理というのはマクロ命令の処理も入ることになるのでは?というのが今の考え。

2019/4/26 4:27:17

MASMとかMACRO-80のマクロについておさらいできればしておくか。。

2019/4/26 4:27:18

あとは命令は独自の簡略記法にしようかなあとも思ってるけどね。これは成り行きですな。。

2019/5/1 21:41:44

何とかまあ、メモリー配置を記述するマクロをパースする部分はできた模様。。
まあ、こういうのがパースできるようになっただけだど。。
{@map
offset {10};
i32 label[16] {return [1,2,3,4];};
i64 label2,label2_1,label2_2;
i32 label3;
f64 label4;
}

2019/5/1 21:41:44

C-Likeなメモリラベル定義を書けば、offsetで指定したアドレスから定義順にラベルに先頭オフセットを割り当てる。メモリにはラベル名でアクセスできるというわけ。これ使えるだけでだいぶwasmも書きやすくなると思ってるんだけど。。

2019/5/1 21:41:45

でパーサが吐いた定義ツリーを解析してオフセットを求めて割り当てるところはまだだけど、そんなに難しくはないだろう。

2019/5/1 21:41:45

これと構造体(struct)も定義できるようにしようと思ってるんだけどね。メモリラベルを階層化できるようにするものとしてのものだけどね。

2019/5/1 21:43:22

あ、初期化部分をデータセグメントで定義しなおすところはちと面倒かなと。データセグメントの初期値は文字列でしか定義できないからね。。

2019/5/1 21:44:55

まあRYDEENのカバー曲作りも成り行きで進めていて、その合間の作業となってしまってるなあ。。GWはこっちをメインでやろうと思ってたんだけどね。。

2019/5/12 20:51:23

wasmのテキストフォーマット用のプリプロセッサの作成は結局高校野球やらRYDEENのカバー曲つくりやら動画つくりやらですっかり後回しになってしまったが、少しずつ続けてはいる。

2019/5/12 20:51:24

今やっているのは、
1.wasmのリニア・メモリのオフセット・アドレスにラベルを付ける機能(メモリ・マップと勝手に呼んでいる)
2.構造体(struct)
を実装してみている。仕様はころころ変わっているが、所望のものができつつある。

2019/5/12 20:52:38

構造体の定義は今のところこんな感じ。C言語の変数定義みたいな感じになっている。 https://t.co/3G114CoMdN

2019/5/12 20:53:47

メモリマップの定義はこんな感じ。 https://t.co/sUgBj1DgIv

2019/5/12 20:57:48

こういうのでオフセット・アドレスのラベル定義を行って、こんな感じでラベルでオフセット・アドレスの指定ができるようにしようとしている。 https://t.co/38ZzIjreAT

2019/5/12 21:07:16

式でも指定できるようになっていて

&

No Image
Pascal S. Gysi Architekten - www.psga.ch
_c.vol + 4

みたいな演算ができる。この計算はプリプロセスの段階で行われる。

2019/5/12 21:07:16

ちなみに
&

No Image
Pascal S. Gysi Architekten - www.psga.ch
_c.vol
とするとラベルのオフセット・アドレスが取れる。
#psg.ch_c.vol
とするとラベルのサイズが取れる。

2019/5/12 21:07:17

演算はできる限り自前ではやらず、実行時にJSコード化してJSのFunctionオブジェクトで演算をやらせるようにし、実装を端折ろうとしてる。

2019/5/12 21:11:16

式をパーサで解釈させてJSをなぞるように実行してもいいんだろうけどね。

2019/5/12 21:12:51

Functionコンストラクタを使って実行時に関数を作って実行させることができるのでこれ使って式の評価をしてるんだよね。evalでもいいんだけど、evalは非推奨な感じがしてちょっと敬遠してる。

関数 - JavaScript | MDN
一般的に言うと、関数とは外部 (再帰の場合は内部) から 呼ばれる ことのできる「サブプログラム」です。プログラムそのもののように、関数は関数本体と呼ばれる連続した文で構成されます。値を関数に 渡す 事ができ、関数は値を返す事ができます。

2019/5/12 21:15:21

オリジナルの式がJSの式として解釈できるように変換できるレベルまでパーサで構文を分解するのにちょっと時間がかかってるんだよね。

2019/5/12 21:17:23

ちょうどいい塩梅のところをきめるのに手間取ったというか。

2019/5/17 20:32:36

今週はデータセクションの実装をしている。ちょっと面倒なのは、文字列でデータ表現しないといけないところ。これを配列で表現できるようにしてプリプロセスでdatastringにしようとしてる。

No Image
WebAssembly Core Specification
https://t.co/HQT0drPjxB

2019/5/17 20:38:17

バイナリでは単なるbyte arrayなんだけど、テキストフォーマットだと文字配列にしないといけないんだな。これが。。

2019/5/17 20:38:18

こんな感じでメモリの初期値を定義できるようにしようと思ってるのですわ。。パースはとりあえずできてて、これをdatastringにするコードを今書いてるところ。 https://t.co/RTHFbNQq8w

2019/5/17 20:42:57

この配列はu32型なので、配列のそれぞれの値を4バイト、リトルエンディアンで並べてそれぞれのバイトを文字に変えるわけですわな。処理自体難しいわけではないけど、配列のリテラル値は16/10/2の整数と浮動小数を指定できるようにしようと思ってるので面倒くさいんだよね。

2019/5/17 20:46:24

数値リテラルのパースをまともにやらなくてはならなくなったのが面倒だということですわな。ここはJSのFunctionオブジェクトでevalして端折ろうともくろんでたんだけど、64ビット整数リテラルの対応をしないといけないのでやむなく自前で書くことにした。

2019/5/17 20:51:06

BigIntが使えればこの問題も解決するんだけどね。今はまだ普通には使えないからね。64bitの整数リテラルはwasmの力を借りてサポートコードを書いてるのである。

2019/5/20 21:04:05

ちびちび続けてるけど、なかなか進まないねえ。。もちょっとなんだけど、ほかの趣味に時間を割かれてしまってる。。

2019/5/20 21:05:21

休日はゴロゴロ&ウトウトタイムは死守してるし、それが何より一番時間をとってる気がするけど(笑)

2019/5/20 21:07:06

このプリプロセッサができたらオレオレ言語のパーサもやっぱりpeg.jsで作り直そうと思ってるんだよね。。あと5年くらいはかかるかな・・(笑)

2019/5/20 21:08:37

趣味とはいえ、パソコンやってると肩と首がものすごく凝るからストレッチタイムも必要だしね。。

2019/5/21 21:25:08

メモリラベルはバイト単位でのオフセット指定が必要だろうなあ。。そうせんとレトロなチップのエミュレーションができんなあ。割り切って32ビット未満のデータ型は切り捨てるつもりでいたが、そうもいかんな。。

2019/5/21 21:29:07

JSの10進文字列を64ビット整数化するのwasmで書くのが楽そうなので書いてみてるところ。かなりいい加減だけどね。 https://t.co/7SutS81JKC

2019/5/21 21:29:07

今は16進文字列を64ビット整数化するコードを書いてる。

2019/5/21 21:34:27

wat(wasmのテキストフォーマット)はアセンブラというよりはアセンブラ風LISP言語な体である。このプリプロセスをJS風なメタ言語で書けるようにするのが今作ってるmwasmである。とりあえずPSGエミュレータを自作プリプロセッサを使ってコード書いて完成させるまでは続けたいなあ。。

2019/5/21 21:35:53

watに慣れてすらすら書けるようにならんとオレオレ言語コンパイラもいいものが作れないと勝手に思っていて、それがモチベーションになっている状況。。

2019/5/21 21:37:30

最終的にはbinaryenやwat2wasmに頼らず自前でバイナリを書き出せるところまではやろうかなと思ってるんだけどね。10年後くらいかな(笑)。

2019/5/22 6:22:59

いまいまの16進utf-16文字列を64ビット整数に変換するwasmコード。。

test.wat · GitHub
GitHub Gist: instantly share code, notes, and snippets.

2019/5/22 6:23:00

短い期間でとりあえず動く成果物を作ってモチベーションを萎えないようにする作戦で今年は行こう。進捗はゆっくりになるけど継続が大切ですからな。。1年もやってればそれなりのものができるだろう。。

2019/5/22 6:24:47

wasmのテキスト・モードでコードを書くのは結構楽しいね。。まだ簡単なものしか書いてないし、いい加減だけど。。 https://t.co/YmRNHH6UYJ

2019/5/22 6:25:08

テキスト・モードじゃなかった。テキスト・フォーマットだった。。

2019/5/22 6:28:42

スタックに積んだまま値を評価できればもっと簡潔に書けるような気もするのだが。

2019/5/22 6:31:16

頭の中でスタックの中身を想像しながらコードを書く感じが楽しいんだな。そしてS式の簡潔な表現にハマりつつある。emacsが流行った理由もわからなくはないな。

2019/5/22 7:25:15

ありゃ、gtじゃなくてgeだった。コード間違ってるな。。

2019/5/23 5:20:59

とりあえず一通りx進整数文字配列 -> 64bit符号あり/なし整数への変換コードを作成した。

mwasm/mwasm-lib.wat at dev · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/5/23 5:23:20

wasmに「dup」インストラクションを追加する提案。
スタックトップの値を複製して積むやつ。あればちょっと楽かなーとか思う。

dup instruction · Issue #1102 · WebAssembly/design · GitHub
There is a drop instruction to drop a topmost value of the stack, but there's no dup instruction to duplicate the topmost value. It would be very useful in cases like raising to power. Imagine ...

2019/5/23 5:34:36

凡ミスも甚だしい。。u64型なんてwasmにないよな。。アホだ。。今wat2wasmして気づいた。。

2019/5/23 5:43:19

そうだオレオレ言語作ってるときに疑似的にu64型を作ったんだった。。結局i64型だけのコードでいいんだな。。

mwasm/mwasm-lib.wat at dev · sfpgmr/mwasm · GitHub
wasmテキストフォーマットのプリプロセッサ拡張. Contribute to sfpgmr/mwasm development by creating an account on GitHub.

2019/5/23 5:45:12

符号付きであろうとなかろうとi64型でよくて、インストラクションだけ符号ありかなしかを気を付ければよかったんだった。すっかり忘れてた。。

2019/5/23 5:52:09

dup命令は今のところ採用する方向ではなさそう。dropというスタックの先頭を破棄する命令はあるんだけどね。pick命令(演算子)というスタックから値を取り出す命令も提案されていたようだ。

Multiple Values for Wasm - Google スライド
Multiple Values for Wasm Andreas Rossberg Wasm CG meeting 2017/07

2019/5/23 5:56:04

この辺が問題だからかなあ。。

Ben T: Pick should be separate item, since it requires a more complex type checking in the context of unreachable code (polymorphic stack).

2019/5/23 6:01:53

wasmはローカル変数を使えるのでスタック操作しなくてもそれに相当する処理は可能だし、wasmは実CPUのアセンブラではないので、結局はネイティブ・コードに変換されるときに最適化されるのだからそこまで必要ないということなのだろうかね。。

2019/5/23 6:06:05

それに相当する処理というか、それを使用したいと思うケースがあった場合だよな。

2019/5/23 6:09:43

ローカル変数はふつうスタックにアロケートされるので、結局スタック操作することになるんだよな。知らんけど。dupもスタックから値を取り出してまたスタックに積むのだから、結局ローカル変数から2回local.getするのと変わらんだろうしな。。

のぶほっぷ福井【ZModeler超入門講座】発売もうすぐ@nobgame

2019/5/22 15:47:58

やばいね!透明もすごい綺麗!
ミマキエンジニアリングさんのフルカラー3Dプリンター『3DUJ-553』で出力。ミニ版を出してもらったー。
前面とか磨いてないのにめちゃくちゃ透明度が高い。
ミマキさん凄いなあ。
モデリングはZBrush。
#ZBrush https://t.co/S6chG1jd6S

Josh Ge@GridSageGames

2019/5/20 8:54:59

Ape is sharing ASCII explosions with realistic blast waves, where blue is the negative pressure wave (source: r/RoguelikeDev Discord) https://t.co/iVk8Q7EvK7

フリーダム嫁の旦那 書籍化決定12月5日発売@freeyomekan

2019/5/17 18:10:05

⚡️ "嫁が生きてきた壮絶な16年間"
全編をまとめました。良かったら見て下さい #虐待
twitter.com/i/moments/1120…

やじるし@chanomach

2019/5/20 20:41:00

現実にあったらよかったシステム https://t.co/AIv6Qu444n