Naoya Hatta
Naoya Hatta
I think the following `case` and `switch` seems to be good. * `case` statement * case item should not be expression * emits `case inside` * `switch` statement (refs #11)...
> By the way, case expression seems to be converted into logic using ternary operator `?`. But I think converting into case statement is better. The reason using ternary operator...
> まず前提についてなのですが,「 https://veryl-lang.org/ 」の WEB ページのトップに書く紹介なのか,それともドキュメントのトップに書く紹介なのかで,すこし方向性が違ってくるのかなと思いました.現在は両者で同じ文章が使われているようですが,これらではそれぞれ目的が少し違ってくると思います. 想定としてはドキュメントのトップですね。あとはこれをもう少しまとめてGitHubのREADMEにするイメージでした。 正直Webページのトップは頭から抜けてました…。現状のあれはドメインを取るついでにでっち上げたくらいのもので、あまり考えられていないです。 RustやTSのページは参考になりそうなのでそのうち何とかしたいですね。 > あとは,その上で内容についてですが,現在「漸進的な進化」が一番トップに来ていますが,それで良いのかがちょっと気になりました.「漸進的な進化」は柱となるとても重要な要素ではあると思うのですが,より上位の最終的に良くしたい事(理想的にどのような言語であってほしいのか的な)があった上で,それを実現する重要なアプローチなのかな、と言う気がするのですが,どうでしょうか? これはどちらかというと「漸進的」であることが最上位なのではないかと気づいたので今回の文章を作ることにした感じです。 正確に言うとより最上位はSVをなんとかしたいということだと思うので * (自分が)SVで効率よく開発したい * SVの言語自体を改善する -> AccelleraやEDAツールベンダじゃないと無理 * SVのツールを作る -> svlint/svlsで試みたが行き詰まり * 新言語を作って徐々に移行する -> Veryl という感じですかね。 これがSV自体を変えられる立場であれば、理想的な言語に向かっていくアプローチになると思うのですが、 そうではないとすると実は「徐々に」という部分が最も重要でなのではないかと思います。...
@shioyadan コメントありがとうございます。ちょっとすぐには難しいので、また次の機会に新しい案を考えたいと思います。
> テンプレート云々は、ジェネリスクが実装されれば解結しますかね? ジェネリクスだけでは難しいかもしれません。より柔軟にやるならRustの手続きマクロ的なもの(構文木を受け取って変形した構文木を返すようなマクロをユーザが定義できるような仕組み)が必要かもしれないと思っていますが、複雑性も増すのでトレードオフはありますね。
一度に全部考えると大変なので、とりあえず「なぜVerylか?」を書いてみました。1つ目のタイトルもアイデアあればお願いします。 ## なぜVerylか ### ??? Verylの構文は論理設計のために最適化されており、合成可能性やシミュレーションとの一致が保証されています。さらに頻出する定型文を簡素化するような構文が多数提供されています。 ### 相互運用性 Verylは可読性の高いSystemVerilogソースコードを生成します。そのため既存のSystemVerilogコンポーネントと組み合わせたり、SystemVerilogプロジェクトの一部をVerylで置き換えたりすることができます。 ### 生産性 Verylにはパッケージマネージャとビルドツール、多数のエディタに対応するリアルタイムチェッカーや自動補完、自動フォーマッタといったツール群が数多く揃っています。
具体的に他言語の辛い点に触れるのはちょっとセンシティブな感じはします。 (Rustを推すときにC++を下げると印象が悪いというのはよく言われる話だったり…) > 実際のところ、言い方はアレですが、VerylからSystemVerilogに’戻りたくなっても何とかなるだろうと思って触り始めてるというのはあります。最悪、どこかの時点でVerylが生成したSVコードをもとにSystemVerilogのみの開発に戻ればいいだろうと。 ここは実際業務のコードに投入するために意識している部分ですね。 自分が退職したときにVerylを書く人がいなくなったらそのままSVに戻ればいいという想定です。
ありがとうございます。 ひとまずWebサイトの方はこれで更新しようと思います。
https://veryl-lang.org の方を更新しました。
READMEの方もこれで良さそうなので更新しました。 コード例はSVと対比できるようにしましたが、テーブルの横幅が制御できなくていまいちですね…。 SVを左にするとVerylが見切れてしまったのでとりあえずVerylを左のままにしています。 画像にした方がいいかもしれません。