FINEARCHS

Results 151 comments of FINEARCHS

確かに ``` var func = null eval { var a = 'hoge' func = @(){ return a } } func() ``` 問題になるのはこういうケースですね

確かにさすがにパーサーで直接バイト列を生成するのは厳しそうですね…

>新しいブロックとかで参照される変数は開放するのを除外すれば行けそうかな🤔 今のところ参照を保持するのは配列、オブジェクト、関数なのでその3つだけ対策すれば良さそう?

どのあたりを定義/説明する仕様書があるといいですかね? (個人的にはエラーの一覧があるといいなと思っています。)

あー、確かに配列やオブジェクトの要素への代入に関しては値渡しだから関数と同じ問題は起こらないのか

なるほど、doc/syntax.mdを拡張する感じですかね?

if, for, each, matchあたりの書き方はそのうち統一したいですね… さておき、↑をそのままドキュメントに載せるだけでもかなりマシになりそうな気がします

結局何が可能なのかを確認する前に設計・思想を固めるのは現実的でないような気も…?

https://github.com/syuilo/aiscript/blob/work/improve-syntax-doc/docs/syntax.md 試しに @saki-lere さんの文をsyntax.mdにそのまま組み込んでみたものです。(都合上`Math:floor`のみ`A:a`に変えています)

>仕様書にまとめることでそれが必要な挙動なのか、議論しやすくなると思います まずどこまでが仕様なのかを定める必要がありますが、 - 一旦現状の全てを仕様として定義してしまう。問題点は後々仕様変更として対処 - この場で私たちが新しく仕様を定める。 - 何案か出してしゅいろさんに選んでもらう - しゅいろさんに全部吐かせる のいずれかを選ぶ必要があるように思います。