AliceScript 2.2の新機能

この記事では、AliceScript2.2の変更点と新機能について説明します


taiseiue | 2023-02-13

新機能

  • 配列に対する高度な操作をサポートするメソッドを実装
  • 変数に対する厳密な等値・比較演算に対応
  • REPL環境でも配列が一行で表示されるように変更
  • ラムダ式で引数のない状態を表現する表現_を導入しました。詳しくはIssues#15を参照してください。
  • MD5/SHA1/SHA384ハッシュ関数を導入
  • バイナリを暗号/復号するencrypt_datadecrypt_data関数を導入
  • alice updateが自動的に実行権限を付与するように
  • ファイルIO関連関数がパッケージ内のファイルを参照できるように
  • 前処理指令を導入
  • aliceで例外発生時にコードが全文表示されないように変更
  • 専用ビルド以外では環境名がNET6.0を返すように変更

不具合の修正

  • ラムダ式が動作しない不具合を修正しました。詳しくはIssues#10を参照してください。
  • デリゲート内で演算を行っても反映されない不具合を修正しました。詳しくはIssues#14を参照してください。
  • パースの問題でreturnステートメントがnullを受取ったときに予期しない例外が発生する不具合を修正
  • alice update実行時にエラーが発生する不具合を修正しました。詳しくはIssues#8を参照してください。
  • 代入時に変数名と代入演算子の間に空白を開けることができない不具合を修正しました。詳しくはIssues#14を参照してください。
  • ラムダ式内でメソッドを呼び出せない不具合を修正しました。詳しくはIssues#17を参照してください。
  • is演算子とas演算子が動作しない不具合を修正しました。詳しくはIssues#18を参照してください。
  • 型変換の実行時に目的の型と現在の型が同一のときnullになる不具合を修正しました。詳しくはIssues#19を参照してください。

廃止・破壊的変更

互換性に影響を与える変更点も参照してください。

  • globalキーワードをpublicキーワードに変更しました
  • 生文字列表現の導入によって不要になったGetString関数を削除
  • ラムダ式の引数の括弧が不要に(使用できない)
  • HandleError設定は無意味なので削除
  • デリゲート宣言省略文字_を廃止
  • #から始まるコメントの廃止

既知の不具合

現在把握している不具合は、GitHubのIssuesで管理しています。そちらも参照してください。

  • #9 switch式で選択されるより後の条件も実行されてしまう不具合
  • #11 引数の型指定が効かない不具合
  • #21 while構文が使用できない不具合
  • #22 foreach構文の記述に一貫性のない問題
  • #24 デリゲートのスコープの妥当性の問題
  • #25 オブジェクトのプロパティに対して複合代入演算が使用できない不具合
  • #28 Alice.Random.random_intがクラッシュする不具合
  • #29 Alice.Random.random_intに最大値だけを指定して実行すると、nullが返ってくる不具合を修正
  • #31 do-while完了後に0x020エラーが発生する不具合
  • #32 gc_gettotalmemoryが値を返さない不具合
  • #34 env_get_environmentvariableがobjectを返す不具合
  • #37 for文で一度も本文が処理されない場合に0x004例外が発生する不具合
  • #38 0x029例外が発生してfor文が動作しない不具合
  • #41 new式でインスタンス化したオブジェクトのプロパティが参照できない不具合
  • #43 関数内で発生した例外に対して関数外のtryブロックが効かない不具合を修正
  • ファイルのテキスト読み込みで例外が発生する不具合
  • CLR配列からAlice配列への変換ができない不具合