なでしこ本体とは、クジラ飛行机さんが作成した Windows 用のなでしこのことをさす。

ビルドできる環境 (予定)

  • KDE4が入る POSIX 環境
    • マニュアルよんでできたら Tエディタ に Kate のコンポーネントを使いたいので、KDEにした
    • また、そのほうが使う側からしても使いやすいと思う
  • UTF-8環境(もしかしたら EUC でも大丈夫かもしれないが)

それ以下でもそれ以上でもない。

なお、Windows でのビルドは、技術的にできても、競合を避けるためビルドは許されない

言語実装に纏わる内容

  • 整数
    • 32ビット整数型。 -2,147,483,648 から 2,147,483,647 まで。
    • 64ビットでも悪いとは言わないが・・・
  • 実数
    • double を使用。大きさはC++処理系依存。
      • GCC では -1.797693e+308 から 1.797693e+308 まで。
  • 文字列
    • wstring を使用。入れられる最大文字数は変更可能。
      • デフォルトでは unsigned int の最大値 4,294,967,295 文字(これ以上は増やせない)
      • ターミナルや、UIへの出力には、その環境に対応するようコード変換できる予定。
  • 配列
    • vector を使用。可変長で、入れられる最大項目数は、アロケータ依存。普通は気にしないで使われる
  • ハッシュ
    • map を使用。最大項目数とかは配列と同じ。
  • 母艦
    • QApplication (KDE の実装を優先。まだマニュアルを見ていないので)
  • ダイアログ、フォーム
    • QDialog
  • ボタン、画像ボタン
    • QPushButton
  • エディタ
    • QLineEdit
  • メモ、Tエディタ
    • QTextEdit (Tエディタに関しては kate コンポーネントを使いたいが・・・)
  • リスト、リストビュー、イメージリスト
    • QListWidget
    • 「リスト」は配列と名前がかぶっている
  • コンボ
    • QComboBox
  • バー
    • QScrollBar
  • パネル、トラック
    • QSplitter
  • チェック
    • QCheckBox
  • ラジオ
    • QRadioButton
  • グリッド、プロパティエディタ
    • QTableWidget
  • タブページ
    • QTabWidget
  • カレンダー
    • QCalendarWidget
    • Qt3 にこれが含まれていないため、Qt3 は没。
  • イメージ、アニメ
    • QGraphicsView
  • ラベル
    • QLabel
  • メニュー、ポップアップメニュー
    • QMenu
  • ツリー
    • QTreeView
  • ステータスバー
    • QStatusBar
  • ツールバー
    • QToolBar
  • タイマー
    • QTimer
  • ブラウザ
    • QTextBrowser (KHTML か QtWebKit に変更すると思う。どっちにするかは決めていない。)
  • スピンエディタ
    • QSpinBox
    • 整数しかスピンできない。
      • QDoubleSpinBox が実数用。
  • メインメニュー
    • QMenuBar
  • ツールボタン
    • QToolButton
  • 関数へのポインタ
    • 任意のなでしこ関数へポインタを保持できる。これにより、動的に呼び出す関数を変更できる。
    • (内部利用のため作成)
  • 未定義
    • void*

Windows 環境で動くなでしこスクリプトを POSIX 環境で動作させるための問題点

  • 文字コード
    • Shift-JIS のものは nkf などで、実行するシステムの文字コードに変換するよう指示する。
    • ブラウザで表示した場合はすでにシステムの文字コードに変換されているので、コピーアンドペーストでOK。
    • システムの文字コード(特にEUC)ではなく、UTF-8をソースコードに使用したい場合は、そのように指定することができるようにする。
  • 改行文字
    • CR および LF をともに改行とみなす
      • CR+LF コードの場合は 1行とびとびになるが・・・
    • ただし、このように奥には立ち入れない可能性があるので、実際には処理系任せになる可能性大。
  • ディレクトリ関係
    • 絶対パス指定以外はとくに。
    • Konqueror や Dolphin から起動すると、Working Directory は ~ (Konqueror や Dolphin の Working Directory)になる。
      • Working Directory が表示しているディレクトリになるように工夫することは可能
  • GUIオブジェクト「くじら」「わに」「らいおん」「ぺんぎん」など
    • 実装は可能。
    • 著作権等の問題で、なでしこ本体に含まれる画像はそのままでは使えない
  • キー送信、マウス操作
    • 実装しない方向で(セキュリティに難有り)
  • テキスト読み上げ
    • 誰か声を(日本語がない
    • 実装は ktts などに送信する方向で。
  • chmod、chgrp など一部の POSIX 特有の関数
    • これは実装する。
  • ネットワーク
    • HTTP、FTP は Qt のものを。POP と SMTP はどうするか未定。
    • TCP/IP、UDPも未定。
  • ディスク容量、システム情報
    • df および uname の出力を解析する方向で。
    • 専用の関数が見付かればそれを利用。
  • shebang
    • いちおう対応したい。
  • デフォルトは GUI
    • Linux 初心者向け。
    • じつはルギア君(id:lugia)も Linux 歴はまだ 1 年足らずである。
  • デラックスの機能
    • PDFの作成とか?
    • 未定。
  • Office 操作。
    • UNO を使うことで Linux でも OpenOffice を操作できる。
  • コンパイル
    • コンパイルして実行速度が早くなるなら実装する
    • コンパイルには GCC が必要。
  • テキスト音楽「サクラ」のライブラリ dSakura.dll
    • これもとりあえずは実装しない
  • データベース
    • せっかく UNIX 系 OS を使っているんだから、 MySQL とかも対応したい。

何か意見あればどうぞ。

: