このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Catyの変更や拡張

http://d.hatena.ne.jp/m-hiyama-memo/20120229/1330491076 から後の2012年前半の変更拡張:

  1. debug:fuserコマンドを追加(Linux用)
  2. cpl (Classical Propositional Logic) モジュールを追加、暫定的
  3. gv:draw に --format=plaindot を追加
  4. Caty起動時オプション --app に追加
  5. callコマンドで.catyファイルの呼び出しを可能に
  6. 文字列化コマンド to-string を追加
  7. deprecatedログを追加
  8. os:platform コマンド追加
  9. 古いexecを廃止
  10. 型パラメータのデフォルト指定構文を導入、 など
  11. hconをコンソールから起動可能に
  12. 型ケース構文を導入 case
  13. 手続き的cond構文を導入
  14. オブジェクトに対するeachの仕様を変更 #397 、each --obj の導入 #398
  15. takeに--indfオプションで三値論理対応
  16. takeに--objオプションでオブジェクト出力対応 #430
  17. file:list の機能拡張 glob対応、末尾スラッシュの解釈、--recオプション
  18. 定数定義constを導入
  19. Caty起動オプションに --goodbye オプションを追加
  20. catyをアプリケーション名として予約
  21. inspectモジュールを追加 #460
  22. Catyにクラスシステムを導入
  23. helpアプリケーション、とりあえず動くレベル
  24. テンプレートの区切り記号のクォーティングとして、<<, >>、{{, }} などを導入
  25. helpアプリケーションにhelpモジュール追加
  26. CDパス(ColonDotパス)仕様を導入
  27. Caty起動オプション --force-app を追加
  28. state宣言の構文拡張、asとbaseobjectを追加、#528
  29. docコメントを構造化、最初の一行を特別扱い #533
  30. 各種テンプレート変数より_接頭辞を削除(例: _CONTEXT --> CONTEXT)
  31. パッケージメタデータファイル pkg-manifest.xjson を導入
  32. Catyの標準モジュールも.casmから読むように修正
  33. Catyコマンドラインで、同一名称の複数のオプションを許す
  34. public.casmを廃止(モジュールの@[register-public]で代替)
  35. call で任意のファイルを呼べるようにした
  36. Web処理に三層のレイヤーアーキテクチャを導入
  37. バイナリリテラル b"..." を導入
  38. binモジュールを追加
  39. webioモジュールを追加
  40. 環境変数の追加:QUERY_STRING, SERVER_SOFTWARE, SERVER_MODULE
  41. pv, item, nth に --safeオプションを追加。
  42. ext-content-typeコマンドを追加
  43. アプリケーションごとにlibを持たせた、#639
  44. class構文を導入
  45. classのrefers節、構文だけ対応
  46. runtime.casmを追加、暫定的不完全
  47. setenv, unsetenv特殊コマンドを追加
  48. FITのabandon -> suspend と変更
  49. XJSONパスで末尾の'?'をサポート
  50. neqコマンドを追加

2012年6月までの更新は以上。2012年後半の次回のエントリーに。

以下に、http://d.hatena.ne.jp/m-hiyama-memo/20120229/1330491076 までを再掲

  1. text:verify-chars追加
  2. start.logにロギング
  3. _OPTS, _ARGV変数
  4. dribbleファイル機能
  5. smarty-mxの実装 https://bitbucket.org/project_caty/dev/issue/17/smarty-mx
  6. list:tightenを実装
  7. object-to-array, array-to-objectを実装
  8. テンプレートで仮想プロパティをサポート
  9. list:range コマンド追加
  10. smarty=smarty-mx とした
  11. ハイフン1個オプションを廃止
  12. path:matchesコマンド、テスト不十分
  13. パス式アクセスに$記法を導入(実装方式はけっこうヒドイ)
  14. ハイパーリンク記述を開始 https://bitbucket.org/project_caty/dev/issue/63/
  15. httpコンソール
  16. viva:draw
  17. gen-data -> gen:sampleに変更
  18. リソースのヘルプを追加
  19. viva:draw-action
  20. 環境変数LANGUAGEを追加。主にi18nメッセージの言語選択に使われる。
  21. viva:draw-actionに --loneオプション
  22. caraとcasmの統合
  23. call, forwardを追加。コマンド宣言にsignals節追加
  24. start{...}を追加、参考:https://bitbucket.org/project_caty/dev/issue/114/
  25. sleepを追加。
  26. キーボード割り込みでREPの中断、Windowsではまともに動かない。
  27. gen:urlを実装
  28. <?caty-* の出現位置の制限を先頭200文字→先頭10行に変更
  29. viva:draw/draw-action に --if-modified オプション
  30. vivaの描画フォーマットにsvgeを追加
  31. Literate形式のモジュール
  32. Wikiにignoreプラグイン
  33. caraにもlit形式
  34. h, hc, ht, hrをコンソールに出力するよう修正(helpはこれまで通り)
  35. schemata@this, actions@this を readonly で公開する。
  36. patternスキーマ属性
  37. userrole宣言、ユースケースのアクター概念を入れた(最小限)
  38. 不明なuserroleに疑問符
  39. --node=userrole の描画
  40. Catyの名前文字の日本語対応
  41. file:listでschemataやactionsを見られるように
  42. globalをアプリケーションとして扱えるように
  43. -マークで、別にどっちでもいいよトリガー
  44. globalのWebアクセス禁止(Webからは存在しない扱い)
  45. lexicalキーワードをsyntax宣言で使用可能に
  46. portのナンチャッテ実装
  47. ポートが束縛される機構/タイミングによりポートノードの色を変える
  48. 不明なノードのSVG出力時、classにunknownを追加
  49. CSSセレクターライブラリ
  50. filter:json フィルターコマンド
  51. filter:javascript フィルターコマンド
  52. with, withoutアノテーションを実装
  53. gv:drawを実装
  54. コマンドがエラーになったときに、スクリプトでの位置を同時に出力
  55. setモジュールを暫定的に追加

http://d.hatena.ne.jp/m-hiyama-memo/20120227/1330299117 再掲

  1. osモジュールにコマンド追加
  2. json:fix-on-selection
  3. json:fix-on-selection に、インライン・インクルード機能としての $embed
  4. pidファイル機能
  5. server status を server だけで参照可能。
  6. OSシグナル SIGTERM, SIGQUITに対応。Windowsでは不十分。
  7. キーボード割り込みをシグナルハンドラで対応するよう変更。Windowsでは不十分。
  8. isarray, isobjectフィルターを追加
  9. smarty3のfunctionを実装。
  10. その他 SmartyMinEx(smarty-mx)
  11. モジュールにアノテーションを付けられる。
  12. chcker.casm と checker:check-files、 まだ不十分。

http://d.hatena.ne.jp/m-hiyama-memo/20110623/1308807276 再掲

  1. when-otherwiseのワイルドカード
  2. PATH_INFO環境変数
  3. 環境変数が直接参照可能に。
  4. app.logとloggingモジュールを追加。
  5. osモジュール os:exec-scriptコマンドを追加。
  6. rc-once/*.caty による一回実行起動時スクリプト
  7. 複数候補から選択した値の解決 json:fix-on-selectionコマンド、$selection, $embed。
  8. モジュール循環依存性の検出
  9. コンパイル方式を少しずつ改善
  10. make-exception, throw-if-can。throw-if-canは今バグっている。
  11. pathモジュール
  12. when, eachにオプションが(構文上は)可能となる。
  13. gen-dataの改善、@[typical]アノテーション
  14. デーモンモードでのシグナル(SIGTERM, SIGHUPなど)に対応
  15. SIGHUPではリスタートする。
  16. PIDファイルをちゃんと消す。
  17. システム情報の公開性を少し高めた。
  18. 疑似タグのプロパティ名に文字列が使える。
  19. 疑似タグでundefinedが使える。

予定:

http://d.hatena.ne.jp/m-hiyama-memo/20110506/1304662541 再掲。

  1. 変数生成 '>'
  2. 変数参照 '%'
  3. パイプラインの一時的終了 ';'
  4. eachによる変数スコープ(つうかエクステント)
  5. casmでスクリプトコマンド定義
  6. kindのナンチャッテ第一段階。
  7. バッグ型
  8. actions/*.cara
  9. 新しいスキーマ属性 maxProperties, minProperties, propNameFormat, tight。(remarkは以前から。)
  10. XJSONパス、XJSON get/put、パートはまだだが。
  11. ignore-tag-onceルール、pv, item, nth とXJSONパス
  12. 疑似タグ構文 '@?' '(' (name|string) ':' スカラーリテラル ')'
  13. 任意のタグ '@*'
  14. 任意の明示的タグ '@*!'
  15. 型名タグ '@&'
  16. undefined型と#'undefined
  17. @[register-public]
  18. CatyBNFのナンチャッテ実装: ::=, :=, = が使える。
  19. /*{{{, }}}*/ コメント
  20. debug特殊コマンド
  21. --no-ambient, --no-appオプション
  22. select-action, select-script, trace-dispatchコマンド
  23. スキーマ記述用のPythonファイルの分離
  24. *.caraにfiletypeを書ける
  25. 例外型の定義(exception宣言)
  26. deferred型
  27. お尻スラッシュ問題に対して、マニフェストに "missingSlash" 追加。
  28. _global.xjsonに "addrsAllowed", "addrsDenied"
  29. スタックトレースのWebへの出力
  30. throws only
  31. 総称コマンドの実行時具体化
  32. 国際化フレームワーク
  33. フィルターのコマンド化
  34. deprecatedアノテーションの処理
  35. defaultアノテーションの処理
  36. moduleにdocコメント
  37. 配列型の項目名
  38. HTTPメソッドトンネリング
  39. CatyFITのjudge欄
  40. ハッシュ記法
  41. timeメタコマンド
  42. CatyFITにignore-spaceオプション

予定:

  1. __integerスキーマ属性
  2. whenにotherwiseワイルドカード
  3. 複数プロファイル
  4. オブジェクトのeach
  5. ユニオン型のワイルドカード
  6. importと名前の本籍追跡
  7. tag-onlyデータ
  8. コマンドオーバーロード(優先度低し)
  9. テンプレートの elseif

中途半端または未着手:

  1. profileスキーマ属性(これはそもそも間違いだった)
  2. パラメータ付きのファシリティ
  3. inspect-dispatchコマンド
  4. アクションサーチのfinishing
  5. ファイルタイプの登録抹消
  6. auto-print, gen-data
  7. 動的総称型、動的総称コマンド
  8. アクションの内部プロファイル
  9. インスタンスドキュメンテーション
  10. 初期化の最後にコマンドラインを実行するオプション
  11. 疑似タグによる分岐
  12. 例外マッパースクリプト
  13. rootApplication 設定
  14. validate --closed
  15. untagged演算子 ^