このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(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/20120227/1330299117 から後の2011年の変更拡張:

  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モジュールを暫定的に追加

2011年までは以上。2012年に入ってからは次の機会に。

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演算子 ^