ユーザ用ツール

サイト用ツール


update:2_0_fc

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
update:2_0_fc [2026/09/23 11:30] machiaworxupdate:2_0_fc [2026/09/23 13:50] (現在) machiaworx
行 1: 行 1:
 ===== 概要 ===== ===== 概要 =====
-  * MiniScriptの次期バージョン・MiniScript2のリリース前バージョンが公開されてます。 +  * MiniScriptの次期バージョン・MiniScript2の最終候補バージョンが公開されてます。 
-  * あくまで私見なので参考程度に見てね。+  * https://github.com/JoeStrout/miniscript2/releases/tag/v2.0-fc1 
 +  * https://github.com/JoeStrout/miniscript2/blob/main/docs/NewInMS2.pdf 
 +  * 機能を記載してみるけど、あくまで私見なので参考程度に見てね。
   * 試しに動かしてみたレポートも別途書く予定です。   * 試しに動かしてみたレポートも別途書く予定です。
  
行 12: 行 14:
   * MS1は前から乗算していくんだけど、他の言語は後ろから順番に積み上げていく方式とのこと。   * MS1は前から乗算していくんだけど、他の言語は後ろから順番に積み上げていく方式とのこと。
   * よって、それに合わせる形で後ろから(右側の数値から)乗算していく形式に変更された。   * よって、それに合わせる形で後ろから(右側の数値から)乗算していく形式に変更された。
 +
 +----
   * 2個目:数値リテラルの点構文   * 2個目:数値リテラルの点構文
   * つまり「4.foo」「3.14.foo」みたいな書き方を許すとのこと。   * つまり「4.foo」「3.14.foo」みたいな書き方を許すとのこと。
 +
 +----
   * 3個目:フリーズ構文   * 3個目:フリーズ構文
   * https://github.com/JoeStrout/miniscript2/blob/main/notes/FROZEN_VALUES.md   * https://github.com/JoeStrout/miniscript2/blob/main/notes/FROZEN_VALUES.md
   * C言語でいうconstのような値を動的に定義することができる機能のよう。   * C言語でいうconstのような値を動的に定義することができる機能のよう。
   * 勝手に更新されたくない場合は便利かもしれない。   * 勝手に更新されたくない場合は便利かもしれない。
 +
 +----
   * 4個目:関数式   * 4個目:関数式
   * end function outerってキーワードが追加されたみたいだけど、関数への参照を得るみたい。どういう効果かは具体的には不明。   * end function outerってキーワードが追加されたみたいだけど、関数への参照を得るみたい。どういう効果かは具体的には不明。
 +
 +----
   * 5個目:mapの反復順序   * 5個目:mapの反復順序
   * MiniScriptの仕様としてmapは順序が定義されていない。ただ、C#はDictionaryクラスを利用している関係上挿入時にキーを返していたため、C++版も同じようにするとのこと。   * MiniScriptの仕様としてmapは順序が定義されていない。ただ、C#はDictionaryクラスを利用している関係上挿入時にキーを返していたため、C++版も同じようにするとのこと。
 +
 +----
   * 6番目:文字列のインデックス付け   * 6番目:文字列のインデックス付け
   * どうもC#版とC++版ではインデックス付の方法が異なっていた(C++がUTF-8、C#がUTF-16)ため、それが統一されたということみたい。   * どうもC#版とC++版ではインデックス付の方法が異なっていた(C++がUTF-8、C#がUTF-16)ため、それが統一されたということみたい。
 +
 +----
   * 7番目:エラー型の追加   * 7番目:エラー型の追加
   * ランタイムエラーの出力を特定の型で受け取ることができる。これはだいぶ助かるのではと思った。今までは数値型で確認するとかだったし。   * ランタイムエラーの出力を特定の型で受け取ることができる。これはだいぶ助かるのではと思った。今までは数値型で確認するとかだったし。
 +
 +----
   * 8番目:プロパティセッター   * 8番目:プロパティセッター
   * 主にクラスを使うときに影響するみたいで、変数アクセスの際にアクセスできるメソッドを選定できる感じ、かなあ。   * 主にクラスを使うときに影響するみたいで、変数アクセスの際にアクセスできるメソッドを選定できる感じ、かなあ。
行 31: 行 47:
   * あとパフォーマンスにも影響があるので使い込む場合影響ありそう。   * あとパフォーマンスにも影響があるので使い込む場合影響ありそう。
  
 +----
   * 最後にキーワード情報   * 最後にキーワード情報
   * info(x):フリーズ済みの値を返す(3番目)   * info(x):フリーズ済みの値を返す(3番目)
行 36: 行 53:
   * listの内部の処理方法が変わったみたい。ちょっと内容わからんので調べてみる   * listの内部の処理方法が変わったみたい。ちょっと内容わからんので調べてみる
   * mapにfrozenというプロパティが追加された(3番目)   * mapにfrozenというプロパティが追加された(3番目)
-  * errorにmessage/inner/stack/isaプロパティが追加された。(7番目)+  * errorにmessage/inner/stack/isaプロパティが追加された。(7番目) 
  
 +===== 軽く利用してみた =====
 +  * 超遅いフィボナッチ関数について起動してみたところ・・・まったく返ってこない内容が60秒で返ってきた!w
 +  * 今までの文法は基本的に使えるのと、全体的に高速化されているのでかなり快適になっていると思う。
 +  * とはいうもののやはり遅いケースは存在するのでそういうのは避ける必要がある。
 +  * 個人的にはエラー型が存在するのとフリーズ変数の存在が大きいかなあと思った。
update/2_0_fc.1790130643.txt.gz · 最終更新: 2026/09/23 11:30 by machiaworx