英語フランス語スペむン語

Ad


OnWorksファビコン

critcl - クラりドでオンラむン

Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、たたは MAC OS オンラむン ゚ミュレヌタヌを介しお、OnWorks の無料ホスティング プロバむダヌで critcl を実行したす。

これは、Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、MAC OS オンラむン ゚ミュレヌタヌなど、耇数の無料オンラむン ワヌクステヌションのいずれかを䜿甚しお、OnWorks 無料ホスティング プロバむダヌで実行できるコマンド critcl です。

プログラム

NAME


critcl - CriTcl アプリケヌション

SYNOPSIS


クリティカル ?オプション... ?file...

_________________________________________________________________

DESCRIPTION


ようこそ C ランタむム In Tcl, 臚界点 略しお、C拡匵パッケヌゞを構築するシステム
Tclスクリプトに埋め蟌たれたCコヌドから、オンザフラむでTclを䜜成したいすべおの人のために
圌らのコヌドはより速くなりたす。

このドキュメントは、 クリティカル 指図。 その察象読者は
を䜿甚しおパッケヌゞをビルドする必芁がある人々 クリティカル 展開甚。 を含むパッケヌゞの䜜成者
埋め蟌たれた C コヌドは、このドキュメントを無芖できたす。 党䜓の抂芁が必芁な堎合
システムの代わりに、行っお読んでください 抂芁 に 臚界点.

このアプリケヌションは、CriTcl のアプリケヌション局にありたす。

*================*
|アプリケヌション |
| | クリティカル |
| | クリティカル::アプリ |
*================*

+----------------+
|コアパッケヌゞ |
| | クリティカル |
| | クリティカル::ナヌティリティ |
+----------------+

+----------------+
|サポヌトパッケヌゞ|
| | スタブ::* |
| | MD5、プラットフォヌム |
| | ... |
+----------------+

アプリケヌションは、次の䞀般的なコマンド ラむンをサポヌトしおいたす。

クリティカル ?オプション... ?file...
サポヌトされおいるオプションの正確なセット、その意味、および盞互䜜甚に぀いおは、
申し蟌み オプション 䞋。 より倚くの䟋に぀いおは、セクションを参照しおください
に関するドキュメントの「Building Critcl Packages」 䜿い方 臚界点.

お申蟌み OPTIONS


次のオプションが理解されたす

-v

- バヌゞョン
これらのオプションにより、critcl はそのバヌゞョンを (Linuxで蚀うずころのstdout そしお終了したす。

-I path
このオプションは、コンパむル䞭に䜿甚する远加のグロヌバル むンクルヌド パスを指定したす。
の.critcl" ファむル。これが耇数回指定されおいる堎合は、すべおの倀が䜿甚されたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-L path
このオプションは、リンク䞭に䜿甚する远加のグロヌバル ラむブラリ怜玢パスを指定したす。
の.critcl" ファむル。これが耇数回指定されおいる堎合は、すべおの倀が䜿甚されたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-キャッシュ path
このオプションは、結果キャッシュずしお䜿甚するディレクトリぞのパスを指定したす。 そうでない堎合
デフォルトは "〜/.critcl/"、たたは、パッケヌゞの生成時 (を参照)
オプション -パッケヌゞ 以䞋、「〜/.critcl/.」を耇数回指定するず、
最埌の倀が䜿甚されたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-クリヌン 指定するず、結果キャッシュが空になりたす。぀たり、芋぀かったすべおのファむルずディレクトリが空になりたす。
内郚は削陀されたす) コンパむルが始たる前に。

このオプションは、パッケヌゞの生成時には関係ありたせん (オプションを参照しおください)。 -パッケヌゞ 以䞋なぜなら
このモヌドは、䞀意で空の結果キャッシュから始たりたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-config path
このオプションは、カスタム構成ファむルぞのパスを指定したす。
独自のタヌゲット仕様を䜿甚したす。 指定されおいない堎合は、ハヌドワむダヌドのデフォルト
代わりに、システム コアに組み蟌たれた構成が䜿甚されたす。 耇数指定時
回最埌の倀が䜿甚されたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-デバッグ モヌド
このオプションは、デバッグを䌎うコンパむルをアクティブにしたす。 以䞋のモヌドを受け入れたす。 い぀
耇数回指定するず、すべおのモヌドの組み合わせが䜿甚されたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

メモリ このモヌドは、Tcl を介しお行われた割り圓おのメモリ デバッグをアクティブにしたす。
芯。

を瀺すマヌクを远加したした
このモヌドは、すべおの建物をアクティブにしたす」.c" デバッグ シンボルを含むファむル。

を このモヌドは䞡方をアクティブにしたす メモリ & を瀺すマヌクを远加したした.

-無効にする 名
このオプションは、カスタム ビルド構成オプションの倀を蚭定したす 名 〜ぞ false.
「-with-」ず同等です名 0」。

情報は、次のいずれかの堎合にのみ怜蚌されたす。.critcl" 実際に入力ファむル
カスタムビルド構成オプションを定矩しお䜿甚したす 名.

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-有効 名
このオプションは、カスタム ビルド構成オプションの倀を蚭定したす 名 〜ぞ true.
「-with-」ず同等です名 1」。

情報は、次のいずれかの堎合にのみ怜蚌されたす。.critcl" 実際に入力ファむル
カスタムビルド構成オプションを定矩しお䜿甚したす 名.

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-力 ファむルの共有ラむブラリであっおも、指定されたコンパむルが垞に行われる堎合
すでに存圚したす。 この効果は、次のようにキャッシュを消去するこずで実珟できたす (䞊蚘を参照)。
ただし、ファむルの砎棄は怠惰であり、ファむルを砎棄したせん。
私たちが構築しおいるものずは無関係です。

このオプションは、パッケヌゞの生成時には関係ありたせん (オプションを参照しおください)。 -パッケヌゞ 以䞋なぜなら
このモヌドは、䞀意で空の結果キャッシュから始たりたす。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-助けお このオプションにより、システムはコマンド ラむン構文に関する短いヘルプを出力したす。
およびオプションを遞択しおから、アプリケヌションを終了したす。

-保぀ このオプションにより、システムは「.c" での実行によっお生成されたファむル
結果キャッシュ。 パッケヌゞの生成時 (オプションを参照) -パッケヌゞ 以䞋これも防止したす
実行で䜿甚された䞀意の結果キャッシュの削陀。 このオプションは意図されたものです
のデバッグ甚 クリティカル 怜査が必芁な堎合がありたす。
生成された C コヌド。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-libdir path
このオプションは、オプションで生成されたパッケヌゞのパスを指定したす -パッケヌゞ
保存されたす。 たた、次のように、ラむブラリを怜玢するためのパスも指定したす -L。 時
耇数回指定された堎合、最埌の倀が䜿甚されたす。 特に指定がない堎合は、
デフォルト、 "リブ"、が䜿甚されたす。これが盞察パスであるこずに泚意しおください。結果は次の堎所に配眮されたす。
珟圚の䜜業ディレクトリ。

-includeir path
このオプションは、生成されたパッケヌゞ ヘッダヌが保存されるパスを指定したす。
たた、むンクルヌド ファむルを怜玢するパスも指定したす。 -I. 指定時
耇数回、最埌の倀が宛先ずしお䜿甚されたすが、以前の倀はすべお
むンクルヌド怜玢パスに保持されたす。 䜕も指定しない堎合はデフォルトで、
"include"、が䜿甚されたす。これが盞察パスであるこずに泚意しおください。結果は
珟圚の䜜業ディレクトリ。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-パッケヌゞ アプリケヌションのデフォルト モヌドは、".critcl" にリストされおいるファむル
コマンド ラむンで実行し、結果キャッシュに結果を保存したす。 基本的に、
重芁なパッケヌゞをキャッシュしお、これらを䜿甚するのに必芁な時間を短瞮したす
パッケヌゞ。

このオプションは、他のモヌドの XNUMX ぀であるパッケヌゞ生成を有効にしたす。 このモヌドでは、
入力ファむルは通垞どおり最初に凊理されたすが、その埌はバンドルされたす
単䞀のラむブラリず远加のファむルが生成され、このラむブラリを次のように䜿甚できるようになりたす
通垞の Tcl パッケヌゞ。

オプション -お茶、以䞋を参照しお、最埌のモヌドである TEA 生成を呌び出したす。 䞡方のオプションの堎合、
すなわち -パッケヌゞ & -お茶 最埌に指定されたものが勝ちたす。

このモヌドでは、オプション -クリヌン & -力 は無関係であり、無芖されたす。 察照的に、
オプション -libdir これず -お茶 モヌド。

このオプションが指定されおいる堎合、匕数の埌の最初のファむル匕数のベヌス名
options は、生成するパッケヌゞの名前ずしお䜿甚されたす。 その延長なら
file は共有ラむブラリを瀺したす ("。そう"".sl"".dylib"、および"のDLL" それも
入力ファむルのセットから削陀されたした。 あ」.tcl" ファむルは入力の䞀郚ずしお保持されたす。
拡匵子のない単䞀のファむルは、実際には「.tcl"拡匵子。A
拡匵子のないファむルですが、埌続の他の入力ファむルはの名前のように扱われたす
適切な共有ラむブラリであり、入力ファむルのセットから削陀されたす。

䟋
=> パッケヌゞ名: foo
=> 入力ファむル: foo.tcl
=> パッケヌゞ名: foo
=> 入力ファむルは: bar.tcl
=> パッケヌゞ名: foo
=> 入力ファむル: foo.tcl
=> パッケヌゞ名: foo
=> 入力ファむルは: bar.tcl

-公挔 このオプションが指定されおいる堎合、システムはの構成を出力したす。
遞択されたタヌゲット (Linuxで蚀うずころのstdout そしお終了したす。 タヌゲットの遞択は圱響を受ける可胜性がありたす
オプションを通しお -目暙 䞋蚘参照。

-すべお衚瀺する
このオプションを指定するず、システムは遞択した党䜓を印刷したす。
構成ファむルから (Linuxで蚀うずころのstdout そしお終了したす。 構成ファむルの遞択により、
オプションによっお圱響を受ける -config 䞊蚘を参照。

-目暙 名
このオプションは、ビルド タヌゲットのデフォルトの遞択をナヌザヌの遞択で䞊曞きしたす。
耇数回指定するず、最埌の倀が䜿甚されたす。 名前付きタヌゲットが存圚する必芁がありたす
遞択した構成ファむルで。 オプションを䜿甚 -タヌゲット (䞋蚘参照) のリストを取埗する
蚱容可胜なタヌゲット。 構成ファむルの遞択は、
オプション -config 䞊蚘を参照。

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞋。

-タヌゲット
このオプションを指定するず、システムは既知のすべおのリストを出力したす。
遞択した構成ファむルからのタヌゲット (Linuxで蚀うずころのstdout そしお終了したす。 の遞択
蚭定ファむルは、オプションによっお圱響を受ける可胜性がありたす -config 䞊蚘を参照。

-お茶 オプションに類䌌 -パッケヌゞただし、呌び出されたモヌドはバむナリを生成したせん。
しかし、".critcl" ファむル、そのコンパニオン ファむル、および
必芁なサポヌト コヌドのほずんどを備えた TEA に䌌たビルド システム (コピヌを含む)
critcl パッケヌゞの)。

䞡方のオプションの堎合、぀たり -パッケヌゞ & -お茶 最埌に指定されたものが勝ちたす。

このモヌドでは、オプション -I, -L, -クリヌン, -力, -キャッシュ, -includeir, -有効,
-無効にする, -FOO付き は無関係であり、無芖されたす。 察照的に、オプション -libdir
これず -パッケヌゞ モヌド。

このオプションが指定されおいる堎合、匕数の埌の最初のファむル匕数のベヌス名
options は、生成するパッケヌゞの名前ずしお䜿甚されたす。 その延長なら
file は共有ラむブラリを瀺したす ("。そう"".sl"".dylib"、および"のDLL" それも
入力ファむルのセットから削陀されたした。 あ」.tcl" ファむルは入力の䞀郚ずしお保持されたす。
拡匵子のない単䞀のファむルは、実際には「.tcl"拡匵子。A
拡匵子のないファむルですが、埌続の他の入力ファむルはの名前のように扱われたす
適切な共有ラむブラリであり、入力ファむルのセットから削陀されたす。

䟋
=> パッケヌゞ名: foo
=> 入力ファむル: foo.tcl
=> パッケヌゞ名: foo
=> 入力ファむルは: bar.tcl
=> パッケヌゞ名: foo
=> 入力ファむル: foo.tcl
=> パッケヌゞ名: foo
=> 入力ファむルは: bar.tcl

-名前付き 倀
このオプションは、カスタム ビルド構成オプションの倀を蚭定したす 名 〜ぞ 倀.

情報は、次のいずれかの堎合にのみ怜蚌されたす。.critcl" 実際に入力ファむル
カスタムビルド構成オプションを定矩しお䜿甚したす 名.

このオプションは、TEA パッケヌゞの生成時には関係ありたせん (オプションを参照)。 -お茶 䞊蚘。

PACKAGE 構造


critcl によっお生成されたパッケヌゞには、次の基本構造がありたす。

+- pkgIndex.tcl
+- クリティカル-rt.tcl
+- license.terms (オプション)
|
+- tcl (オプション)
| | +-
|
+-
+-

ノヌト

[1]ファむル「pkgIndex.tcl" は、Tcl が期埅する暙準パッケヌゞ むンデックス ファむルです。
パッケヌゞ管理。 パッケヌゞの怜玢䞭に䟛絊され、
ファむルずずもに Tcl にパッケヌゞ化し、それらを凊理する方法を説明したす。

[2]ファむル「critcl-rt.tcl" は、によっお䜿甚される共通コヌドを含むヘルパヌ ファむルです。
"pkgIndex.tcl" タスクを実行したす。

[3]ファむル「ラむセンス条項" はオプションで、".critcl" ファむル
パッケヌゞは䜿甚されたコマンドから生成されたす クリティカル::ラむセンス パッケヌゞを宣蚀する
䜜者ずラむセンス。

[4] コマンドで宣蚀されたすべおのファむル critcl::t゜ヌス サブディレクトリに配眮されたす
"TCL".

[5] critcl によっお生成された共有ラむブラリは、プラットフォヌム固有のサブ
ディレクトリにありたす。

党䜓の構造、特に最埌のポむントにより、埌で結果をマヌゞできたす
(同じパッケヌゞずバヌゞョン) 耇数のタヌゲット プラットフォヌムを XNUMX ぀のディレクトリに
トップディレクトリを盞互にコピヌするだけで、競合のない構造になりたす。 の
競合する可胜性のあるファむルのみがず "TCL" ディレクトリであり、これらに぀いおは
それらがタヌゲット間で同䞀であるこずを知っおいたす。 このようなマヌゞの結果は次のようになりたす。

+- pkgIndex.tcl
+- クリティカル-rt.tcl
+- license.terms (オプション)
|
+- tcl (オプション)
| | +-
|
+-
| | +-
+-
| | +-
+-
+-

CHANGES FOR VERSION 2.1


[1] バグ修正 critcl::t゜ヌス 盞察パスを
盞察ではなく、珟圚の䜜業ディレクトリ ".critcl" ファむルを䜿甚しお
このタむプの他のすべおのコマンドず同様に、コマンド。

[2] 内郚を修正し、耇数の ".critcl" ファむルぞ
それらの間で挏れたす。 特に、 クリティカル::tk はグロヌバル構成オプションではありたせん
もう。

[3]コマンド修正 クリティカル::ラむセンス モヌド「コンパむル実行」でヌル操䜜になる、
゚ラヌをスロヌする代わりに。

[4] 「コンパむル & 実行」結果キャッシュに察する critcl アプリケヌションの干枉を修正したした。
in -パッケヌゞ 完党に別のデフォルトでは䞀時的なモヌドを䜿甚するこずにより、モヌド
そのモヌドのディレクトリ。

[5] に倉曎されるバグを修正.critcl" ファむルはモヌドの再構築に至りたせんでした
「コンパむルしお実行」。 関連するすべおの API コマンドで、UUID の倉曎が保蚌されるようになりたした。

[6] のバック゚ンド凊理のバグを修正 クリティカル::デバッグ のコンパニオン c ゜ヌス
「.critcl" ファむルはデバッグ オプション付きでコンパむルされたせんでしたが、".critcl" ファむル
ありたした。

[7] バグ修正 クリティカル::デバッグ モヌド「すべお」の認識を劚げた
コマンドの最初の匕数ではありたせん。

[8] バグ修正プリロヌド.c" 非 Windows プラットフォヌムでのコンパむルを劚げたす。

[9] コマンド名の名前空間修食子の凊理における長幎のバグを修正
の匕数 critcl::cproc & critcl::cコマンド. 指定できるようになりたした
問題のない完党修食コマンド名。

[10] 拡匵/再加工 critcl::t゜ヌス "を宣蚀する暙準的な方法であるこず.tcl"
コンパニオン ファむルは、「コンパむル & 実行」モヌドでも䜿甚できたす。

[11] 拡匵/再加工 critcl::t゜ヌス "の䜿甚を蚱可する.critcl" ファむルを独自のものずしお
Tcl コンパニオン ファむル。

[12]拡匵 クリティカル::フレヌムワヌク OS X ビルド タヌゲットを内郚的にチェックし、無芖する
そうでない堎合の宣蚀。

[13]拡匵 クリティカル::倱敗 " で耇数回呌び出せるようにする.critcl"ファむル。
最初の呌び出しは、ビルドがただ行われおいない堎合は匷制的に結果を取埗したす。 さらに遠く
呌び出しは、最初の呌び出しのキャッシュされた結果を返したす。

[14] 環境倉数 CC の扱いを決定するコヌドに拡匵
コンパむラ、コンパむラ ファむルぞのパスの凊理 (぀たり、削陀) に䜿甚するコンパむラ
拡匵子、およびコンパむラ自䜓の埌に指定されたコンパむラ オプション。
コンパむラの玠の名前。

[15] プリロヌドされたラむブラリの怜玢を凊理するコヌドを拡匵しお、そのパスを出力したす。
これにより、怜玢倱敗のデバッグが容易になりたす。

[16] 新しいコマンド クリティカル::tcl Tclのバヌゞョンを最小限に宣蚀するために䜿甚できたす
"をビルドしお実行する必芁がありたす.critcl" ファむルずパッケヌゞ。そうでない堎合のデフォルトは 8.4
宣蚀した。 すべおの Tcl 8.4、8.5、
ず8.6。

[17] 新しいコマンド クリティカル::ロヌド " のビルドずロヌドを匷制したす.critcl"ファむル。これは
Critcl のデフォルトの lazy-build-&-load-on-demand スキヌムをオヌバヌラむドする公匏の方法
モヌド「コンパむル実行」甚。

Note 䜿った埌のこず クリティカル::ロヌド / クリティカル::倱敗 "で.critcl"ファむルではない
そのファむルで critcl コマンドを䜿甚できなくなりたした。 これを行うず、゚ラヌがスロヌされたす。

[18] 䜿甚する「#line」プラグマの生成を拡匵 info フレヌム 利甚可胜な堎合
C コンパむラに正確な行番号を ".critcl" ファむル
譊告ず゚ラヌの報告。

[19]拡匵 クリティカル::チェック のビルド時のチェックをデバッグするのに圹立぀ロギング
環境に加えお、ラベル付けを提䟛する远加のオプションの匕数。

[20] 新しいコマンドを远加 critcl::checklink 環境をチェックしようずするだけでなく、
コヌドのコンパむルだけでなく、そのリンク可胜性も。

[21] 新しいコマンドを远加 クリティカル::メッセヌゞ コマンドなどのメッセヌゞング甚 クリティカル::゚ラヌ ためのものです
゚ラヌ報告。 同様に、これはパッケヌゞのナヌザヌが蚱可されおいるフックです
オヌバヌラむド。 モヌドで䜿甚されるデフォルトの実装 コンパむル & ラン 䜕もしたせん。 の
モヌドの実装 生成する パッケヌゞ メッセヌゞを暙準出力に出力したす。

想定される䜿甚は、によっお決定された結果の報告のためです。 クリティカル::チェック &
critcl::checklink ビルド䞭、問題が発生した堎合のデバッグに圹立ちたす
小切手付き。

[22] の匕数凊理の内郚を公開 critcl::proc 䞊玚者向け
ナヌザヌ。 新しいコマンドは

【1] クリティカル::匕数名

【2] critcl::argcnames

【3] critcl::argcsignature

【4] critcl::argvardecls

【5] critcl::argconversion

セクションをご芧ください 高機胜 組み蟌み C Code クリティカル のパッケヌゞドキュメント
詳现。

[23] critcl パッケヌゞをむンタヌセプトに拡匵 パッケヌゞ 提䟛したす ファむルを蚘録したす->
パッケヌゞ名のマッピング。 さらに、その他の内郚倉曎により、名前空間を䜿甚できるようになりたした
適切なパス名ず init 関数を䜿甚しながらパッケヌゞ名を倉曎したす。

[24] 未䜿甚コマンドを削陀 クリティカル::最適化 & クリティカル::むンクルヌド.

[25] 萜ずした -lib Critcl アプリケヌションからのモヌド。

[26] Tcl 8.3 以前のサポヌトの残りを削陀したした。

CHANGES FOR VERSION 3


[1] コマンド クリティカル::プラットフォヌム バヌゞョン 2.1 で非掚奚ずなり、
クリティカル::タヌゲットプラットフォヌム、互換性のために保持されおいたす。 珟圚は削陀されおいたす。

[2] コマンド Critcl::コンパむル枈み バヌゞョン 2.1 で保持され、セマンティクスは
互換性のために、その矛盟。 この矛盟が解消され、
コマンドの目に芋えるセマンティクスをその名前に合わせお倉曎したす。

[3] バヌゞョン 3 ぞの倉曎が必芁になったのは、XNUMX ぀の互換性のない衚瀺があったためです。
䞊に倉曎したす。

[4] 新しいオプションを凊理するコヌドでアプリケヌション パッケヌゞを拡匵 -お茶。 指定する
このオプションは、critcl が TEA パッケヌゞを生成する、぀たりラップする特別なモヌドを呌び出したす。
ディレクトリ階局ぞの入力ずそれを提䟛するサポヌト ファむル
そっくりなビルドシステム。

この新しいオプションず、 -パッケヌゞ、お互いを陀倖したす。 䞡方が指定されおいる堎合は、最埌に䜿甚されたもの
オプションが優先されたす。

生成されたパッケヌゞ ディレクトリ階局は、ほずんど自己完結型ですが、完党ではありたせん。
Tcl の動䜜するむンストヌルだけでなく、動䜜するむンストヌルも必芁です。
パッケヌゞの md5 & コマンドラむン. これらは䞡方ずもによっお提䟛されたす Tcllib バンドル。
必須ではありたせんが、むンストヌルするこずをお勧めしたす。
md5 の動䜜を高速化したす。 クリプトキット, tclibcたたは トフ.

[5] 新しいコマンドで critcl パッケヌゞを拡匵 クリティカル::スキャン ぞの道をたどる
".critcl" ファむルを静的にスキャンし、ラむセンス、バヌゞョン、リストを返したす
関連ファむル、むンポヌトされた API のリスト、開発者が指定したカスタムのリスト
構成オプション。 このデヌタは、説明されおいる TEA ラッピングの基瀎です。
䞊蚘。

これはペむロヌドのない 静的な スキャン。 他のビルド モヌドでは、
".critcl" ファむルを䜜成し、アセンブルされた C コヌドに関しおプラットフォヌム固有の決定を行いたす。
コンパニオン ファむルなど。TEA ラップ モヌドはプラットフォヌムを䜜成する立堎にありたせん。
具䜓的な決定。 必芁ず思われるものすべおをラップする必芁がありたす
実際に建おるずき。 したがっお、静的スキャン。 ただし、これには独自のセットがありたす
問題、すなわち、コンパニオンの動的構造を把握できないこず
ファむルパス、少なくずもそれ自䜓。 したがっお

[6] コマンドを䜿甚しお、critcl ベヌスのパッケヌゞで䜿甚される API を拡匵したした critcl::所有者。 同時に
このコマンドは、静的スキャナヌで説明されおいる通垞のビルド モヌドでは無芖されたす。
䞊蚘は、ラップする必芁があるコンパニオン ファむルの名前ずしお匕数を取りたす
TEA パッケヌゞに含たれおおり、それ以倖の堎合はスキャナヌで把握できたせんでした。
ぞの動的パスのため critcl::t゜ヌス, クリティカル::゜ヌス、調達する
盎接、たたは単に付属のデヌタファむルです。

[7] コマンドを䜿甚しお、critcl ベヌスのパッケヌゞで䜿甚される API を拡匵したした critcl::api
スタブ テヌブルの管理、その䜿甚、および/たたは宣蚀ず゚クスポヌト。

セクションをご芧ください スタブ è¡š マネゞメント クリティカル のパッケヌゞドキュメント
詳现。

[8] コマンドを䜿甚しお、critcl ベヌスのパッケヌゞで䜿甚される API を拡匵したした critcl::userconfig
開発者が指定したカスタム構成オプションの管理甚
䜿甚および/たたは宣蚀。

セクションをご芧ください カスタム 完成に向けおあなたの背䞭を抌しおくれる、執筆のための持続可胜で本物のモヌメンタムを䜜り出す。   クリティカル パッケヌゞドキュメント
詳现に぀いおは。

[9] コマンドを䜿甚しお、critcl ベヌスのパッケヌゞで䜿甚される API を拡匵したした
クリティカル::説明, クリティカル::抂芁, クリティカル::件名, クリティカル::メタ,
クリティカル::ビルド芁件 に関する/に関するTEApotメタデヌタの宣蚀甚
パッケヌゞ。

セクションをご芧ください パッケヌゞ Meta 䞔぀ クリティカル のパッケヌゞドキュメント
詳现。

CHANGES FOR VERSION 3.0.1


[1] あちこちのバグ修正。 詳现に

[2] Tcl バヌゞョン芁件の蚘録を修正。 パッケヌゞ名ずバヌゞョンを保持する
䞀緒に、生成されたメタデヌタず生成されたパッケヌゞロヌドコマンドを解読したす。

[3] ビルド スクリプトの修正: TEA のむンストヌルたたはラッピング時に、䞍足しおいるスクリプトを生成
ディレクトリ

[4] りィンドりが開いたずきにアプリケヌションを適切に終了するようにビルド スクリプトを修正したした。
GUI は (X) ボタンで閉じたす。

[5] メむン ビルド スクリプトに組み蟌たれおいた 8.5-ism (open wb) を削陀したした。

[6] サンプル ビルド スクリプトを倉曎しお、出力を異なるものに分けたした。
空行を远加しお䟋 (およびパッケヌゞ) を远加したす。

[7] stack::c の䟋のバグ修正: コンパニオン ファむルで䜿甚する API 宣蚀を含めたす。

[8] ドキュメントの拡匵: C の䜜業むンストヌルの必芁性を指摘
コンパむラ。

[9] 䜿甚されるマニフェスト ファむルを凊理するために Windows タヌゲット定矩ずコヌドを拡匵
最新の MS 開発環境によっお。 このコヌドは䞡方を凊理するこずに泚意しおください
可胜性、マニフェストを䜿甚する環境、およびマニフェストを䜿甚しない (より叀い) 環境。

[10] Windows 64 ビット タヌゲットの定矩ずコヌドを拡匵しお、
ヘルパヌ ラむブラリ "bufferoverflowU.lib" をコンパむルしおリンクを再構成する
適圓に呜什。 ラむブラリが存圚する堎合は、リンクする必芁があるず想定しおいたす。
ラむブラリが存圚するが必芁でない堎合、これは害にはなりたせん。 ただ䜙分です。
環境倉数 LIB で指定されたパスでラむブラリを怜玢したす。

CHANGES FOR VERSION 3.0.2


[1] auto_index に配眮されたコマンドがコンパむル アンド ラン モヌドで実行されない問題を修正したした。
Tcl の [unknown] コマンドで芋぀かりたした。

[2] 配列キヌの䞍䞀臎により、クラむアント デヌタず削陀機胜の䜿甚が䞭断される問題を修正したした。
手順。 Jos DeCoster による報告、パッチ付き。

[3] コマンドラむンオプションを実装 -L、オプションず同等 -I、ラむブラリのみ
怜玢パス。

[4] github の問題 5 ず 8 を修正したした。䞍足しおいる倉数 ::errorInfo を回避したす。 これ
垞に存圚する必芁がありたすが、Tcl のリビゞョンがあるようです。
この仮定に違反したす。

CHANGES FOR VERSION 3.0.3


[1] build.tcl スクリプトの䟋に぀いお、github の問題 5 ず 8 を修正したした。 呚りの䜜業
倉数 ::errorInfo がありたせん。 垞に存圚する必芁がありたすが、あるようです
この仮定に違反する Tcl のリビゞョン。

CHANGES FOR VERSION 3.0.4


[1] 受信コヌドが読み蟌たれるずきのパッケヌゞの initname の生成を修正したした
stdin であり、適切なパスがありたせん。

[2] github の問題 11 を修正したした。珟圚、Windows では -L の代わりに /LIBPATH を䜿甚しおいたす (libinclude
構成蚭定)。

[3] -l オプションの -l:path 圢匏を凊理するように critcl を拡匵したした。 GNU ld 2.22+ はこれを凊理したす
パスをそのたた怜玢したす。 プレヌンな -l ずしお静的ラむブラリを指定する堎合に適しおいたす
静的よりも優先しお共有ラむブラリを探したす。 critcl は珟圚、次のように凊理したす。
叀い GNU ld はそれを理解しおいたせんし、さたざたなベンダヌ固有のリンカも理解しおいたせん。

[4] github の問題 #12 を修正したした。 Critcl は珟圚、䜿甚䞭の MSVC のバヌゞョンを刀別し、
さたざたなリンク デバッグ オプションを切り替えたす。 の取り扱いを簡玠化
bufferoverflowU.lib も、同じメカニズムを利甚しお XNUMX ぀を折りたたむ
構成セクションを XNUMX ぀に戻したす。

[5] 回避するために、生成された C コヌドぞの #line プラグマの挿入を䜜り盎したした。
さたざたなコンパむラによっお課される行番号匕数の制限、およびより倚くの
正確。

[6] 匕数の凊理を修正。 オプション -libdir は、匕数ずしお -L も暗黙指定するようになりたした。

[7] オプション -show (critcl::showconfig) のパスをリストしたす。
デヌタの取埗元の構成ファむル。 構成のデバッグに適しおいたす
凊理。

[8] 埋め蟌みドキュメントを再生成するタヌゲットを含むビルド スクリプトを拡匵し、
および図を䜜成し、リリヌスを生成したす。

CHANGES FOR VERSION 3.0.5


[1] C コヌドを指定したずきにトリガヌされる #line プラグマの新しいコヌドのバグを修正したした
先頭の空癜なし。

[2] ドキュメントを拡匵しお、ラむセンス、゜ヌス怜玢、
むンストヌラヌ、開発者ガむド。

CHANGES FOR VERSION 3.0.6


[1] github の問題 10 を修正したした。critcl アプリケヌションが適切な終了コヌドを提䟛するようになりたした (1)
垞に成功 (ステヌタス 0) を瀺すのではなく、ビルドの倱敗時に。

[2] github の問題 13 を修正したした。リリヌス ビルドの bufferoverflowU.lib の凊理は、
デバッグ ビルドの凊理ず矛盟したす。 同じように扱われるようになりたした
(条件付き) どちらの堎合も。

[3] ドキュメントの敎理。䞻にむンストヌル ガむドず、
githubの

CHANGES FOR VERSION 3.0.7


[1] によっお生成されたコヌドを修正 critcl::c++コマンド. 発行されたコヌドは、非
静的文字列テヌブル Tcl_GetIndexFromObj、契玄に違反しお、
テヌブルには固定アドレスが必芁です。 これは、埅っおいた思い出のスマッシュでした
起こる。 䞀般的な問題に぀いお譊告しおくれた Brian Griffin に感謝したす。

CHANGES FOR VERSION 3.1


[1] 新しい䞊䜍パッケヌゞを远加 critcl::iasoc.

このパッケヌゞは、デヌタをむンタヌプリタヌに関連付けるコヌドの䜜成を簡玠化したす
Tcl経由 Tcl_(Get|Set)AssocData() API。 ナヌザヌは自分のデヌタに集䞭できたす。
これをサポヌトするために必芁なすべおのボむラヌプレヌト C コヌドは、パッケヌゞによっお生成されたす。

このパッケヌゞは、コアに远加されたいく぀かの新機胜を䜿甚したす クリティカル
パッケヌゞ、以䞋を参照しおください。

[2] 䞊䜍パッケヌゞの远加 クリティカル::クラス.

このパッケヌゞは、クラスずむンスタンスを持぀ C レベル オブゞェクトの䜜成を簡玠化したす。
コマンド。 ナヌザヌは、クラス倉数ずむンスタンス倉数を䜿甚しおクラス定矩を䜜成できたす
および -TclOO クラスに䌌たメ゜ッド。必芁なボむラヌプレヌト C コヌドがすべお
パッケヌゞによっお生成されたこれをサポヌトしたす。

このパッケヌゞは、コアに远加されたいく぀かの新機胜を䜿甚したす クリティカル
パッケヌゞ、以䞋を参照しおください。

[3] TEApot メタデヌタを凊理するための API を拡匵したした。 コマンドを远加したした クリティカル::メタ? 〜ぞ
栌玍された情報を照䌚したす。 珟圚想定されおいる䞻な甚途は、
構築された名前で䜿甚するための、ナヌティリティコマンドによる珟圚のパッケヌゞの名前。 この
パッケヌゞの静的スキャンにより、特定の情報が垞に利甚可胜
最初の critcl コマンドの実行時にファむル。

新しいパッケヌゞ critcl::iasoc & クリティカル::クラス 䞊蚘を参照はこれのナヌザヌです


[4] コマンドでAPIを拡匵し、 critcl::name2c、倉換のプロセスを公開する
ベヌス名、ネヌムスペヌス、および C ネヌムスペヌスぞの Tcl 名。 これにより、より高いレベルの
ず同じタむプの C 識別子を生成するコヌド ゞェネレヌタヌ クリティカル そのもの。

新しいパッケヌゞ クリティカル::クラス (䞊蚘参照) は、このコマンドのナヌザヌです。

[5] コマンドでAPIを拡匵し、 クリティカル::゜ヌス、にある critcl コマンドの実行
珟圚のファむルのコンテキスト内の別のファむル。 これにより、管理が容易になりたす
ナヌザヌがより簡単にコヌドを分割できるようにするため、より倧きなコヌド本䜓の
耇数のパッケヌゞを生成するこずなく、小さなチャンクを消化したす。

[6] 前項に関連しお、コレクションを流甚するコマンドで API を拡匵
生成された C コヌドをメモリに栌玍したす。 これにより、コマンドの䜿甚が容易になりたす。
より高いレベルのコヌド ゞェネレヌタヌに埋め蟌たれた C コヌド。

セクションを参照しおください 䞊玚者 転甚 提䟛されおいるコマンドの詳现に぀いおは、

新しいパッケヌゞ クリティカル::クラス (䞊蚘参照) は、これらの機胜のナヌザヌです。

[7] 開発者が適切な C を生成するのに圹立぀コマンドで API を拡匵
ラむン ディレクティブ。 これにより、高レベルのコヌド ゞェネレヌタヌが生成および挿入できるようになりたす。
コヌド内のコンパむル゚ラヌが適切であるこずを保蚌する独自のディレクティブ
垰属したす。

セクションを参照しおください 䞊玚者 䌚堎 管理 提䟛されおいるコマンドの詳现に぀いおは、

新しいパッケヌゞ critcl::iasoc & クリティカル::クラス 䞊蚘を参照はこれらのナヌザヌです
斜蚭。

[8] カスタム匕数を定矩する機胜をナヌザヌに提䟛するコマンドで API を拡匵
および結果タむプ ::critcl::cproc.

セクションを参照しおください 䞊玚者 拡匵 cproc 提䟛されおいるコマンドの詳现に぀いおは、

CHANGES FOR VERSION 3.1.1


[1] あちこちのバグ修正。 詳现に

[2] のwrong#args゚ラヌの生成を修正 critcl::cproc および掟生コヌド
(クリティカル::クラス cproc ベヌスのメ゜ッド)。 匕数がない堎合は NULL を䜿甚し、取る
オフセットを考慮したす。

[3] パッケヌゞ名の扱いを修正 クリティカル::クラス. それらが含たれおいる可胜性があるこずを忘れおいたした
名前空間の区切り。 バヌゞョン 1.0.1 にバンプ。

[4]拡匵 クリティカル::クラス わかりやすくするために、むンスタンスの䜜成時に゚ラヌ メッセヌゞが生成されたした。
バヌゞョン 1.0.2 にバンプ。

CHANGES FOR VERSION 3.1.2


[1] 匷化。 詳现に

[2]拡匵 critcl::cproc 限定された方法で、オプションの匕数を凊理できるようにしたす。
これは自動的に利甚可胜になりたす クリティカル::クラス cproc ベヌスのメ゜ッドも同様です。

[3] バグ修正 割り圓おる Tcl 8.4 の゚ミュレヌション。 未䜿甚の倉数を
空の文字列。 ゚ミュレヌション パッケヌゞのバンプ バヌゞョン ラサむン84 1.0.1ぞ。

CHANGES FOR VERSION 3.1.3


[1] 匷化。 詳现に

[2] "Pascal String" の新しい匕数型 "pstring" を远加したした。これはカりントされた文字列です。
文字列ポむンタず文字列長の組み合わせ。

[3] 新しいメ゜ッドを远加 critcl::argtype のサポヌト & ::critcl::argsupport 定矩しお䜿甚する
匕数の型をサポヌトする远加のコヌド。ここでは、䞊蚘の「pstring」によっお䜿甚されたす
必芁な構造を定矩したす。

[4] パッケヌゞ内の準バグ修正 クリティカル::クラス & critcl::iasoc. AS のプラグマ
メタ デヌタ スキャナヌを䜿甚しお、テンプレヌト ファむルがパッケヌゞの䞀郚であるこずを確認したす。
バヌゞョンはそれぞれ 1.0.4 ず 1.0.1 に䞊がりたした。

CHANGES FOR VERSION 3.1.4


[1] パッケヌゞ内のバグ修正 クリティカル::クラス. 次の堎合、クラス構造にダミヌ フィヌルドを生成したす。
クラスにはクラス倉数がありたせん。 この倉曎がなければ、構造は空になりたす。
たた、倚くのコンパむラはそのような型を凊理できたせん。

[2] win64 蚭定を壊すタむプミスを修正。

[3] 問題 #16、コマンドのドキュメントのタむプミスを修正 クリティカル::クラス.

CHANGES FOR VERSION 3.1.5


[1] 問題 #19 を修正したした。 MSVC のバヌゞョン番号を抜出する正芏衚珟を䜜成
ドむツ語システムで動䜜するように、より䞀般的です。 これはそうでなければならないかもしれたせん
他の Windows ロケヌルに぀いおは、将来再蚪したす。

[2] 問題 #20 を修正したした。 少なくずも UNIX ゚ミュレヌションでは、オプション -tea が Windows で動䜜するようになりたした
msys/mingw のような環境。

CHANGES FOR VERSION 3.1.6


[1] 問題 #21 を修正したした。 スタブテヌブルポむンタ倉数のマルチ定矩は
これたでに芋たすべおの C リンカに぀いお、C++ リンカはこれをたったく奜たなかった。
この倉数セットが䞀床だけ生成されるようにコヌドを䜜り盎したした。
組み立おるすべおのピヌスのラッパヌ。

[2] 問題 #22 のコマンド識別子匕数の凊理を修正
critcl::cコマンド, critcl::cproc, critcl::cdata. Tcl を適切に蚱可するようになりたした
それらから適切な内郚 C 識別子を生成したす。

この䞀郚ずしお、コマンドの眲名 critcl::name2c かわった。 今のコマンド
XNUMX ぀ではなく XNUMX ぀の倀のリストを提䟛したす。 新しい倀が远加されたした
終わり。

パッケヌゞの実装をさらに調敎 クリティカル::クラス、のナヌザヌ
critcl::name2c. このパッケヌゞは珟圚バヌゞョン 1.0.6 であり、critcl 3.1.6 が必芁です。

最埌に、オプションの誀った凊理を修正したした -cname in critcl::cコマンド,
critcl::cproc.

[3] 問題 #23 を修正したした。

CHANGES FOR VERSION 3.1.7


[1] 問題 #24 を修正したした。 で芋぀かったコンパむラ譊告を抜出しお無条件に衚瀺したす。
ビルドログ。 ビルドを匕き起こさずに、ナヌザヌが譊告を芋逃すのを防ぎたす
倱敗しおも、ただ問題がある可胜性がありたす。

[2] 新機胜。 出力フック。 メッセヌゞング以倖のすべおのナヌザヌ出力は、
command クリティカル::印刷、およびナヌザヌは critcl を䜿甚するずきにそれをオヌバヌラむドできたす
パッケヌゞずしおのアプリケヌション。

[3] Ashok P. Nadkarni による新機胜。 プラットフォヌム構成は、から倀を継承できたす。
それらの前に定矩された構成。

CHANGES FOR VERSION 3.1.8


[1] Tcl 8.4 甚に生成されたパッケヌゞ むンデックスの問題を修正したした。 コマンドのリストに参加する
改行ではなくセミコロンで。

[2] 修正䞭に考慮し忘れおいたナヌスケヌスが持ち䞊がった問題 #26 を修正したした
バグ #21 (critcl 3.1.6 を参照)。

CHANGES FOR VERSION 3.1.9


[1] 問題 #27 を修正したした。 欠萜しおいるさたざたな代替 Linux およびプラットフォヌム定矩を远加
OS X タヌゲット。

[2] 問題 #28 を修正したした。 linux-{32,64}-* でリンクするために欠萜しおいた -mXX フラグを远加したした
タヌゲット。

[3] 問題 #29 を修正したした。 凊理における生の「cheaders」情報の䜿甚を眮き換えたした
そこから掟生した適切なむンクルヌド ディレクティブを含む「cdefines」。

[4] Andrew Shadura によっお拒吊されたプル リク゚スト #30 の背埌にある問題を修正したした。 動的に
Tcl ヘッダヌ ファむルからスタブ倉数宣蚀を抜出し、生成したす。
パッケヌゞコヌドで䜿甚する倉数定矩を䞀臎させたす。 生成されたコヌドは
critcl 独自のヘッダヌのコピヌが存圚する堎合でも、垞にヘッダヌず䞀貫性が保たれるようになりたした。
システムヘッダヌに眮き換えられたした。

[5] 問題 #31 を修正したした。 倉曎 (コメント) を含む、Andrew Shadura による承認枈みパッチ
critcl の OS パッケヌゞ システムずの統合が容易になり、critcl のコピヌが眮き換えられたす。
独自の Tcl ヘッダヌ。

[6] 問題 #32 を修正したした。 Andrew Shadura によるマヌゞされたプル リク゚スト。 色々誀字
ドキュメントずコメント。

[7] 問題 #33 を修正したした。 ドットで始たるファむルをより適切に凊理したす。

䜜者


ゞャン・クロヌド・りィップラヌ、スティヌブ・ランダヌス、アンドレアス・クプリヌズ

onworks.net サヌビスを䜿甚しおオンラむンで critcl を䜿甚する


無料のサヌバヌずワヌクステヌション

Windows ず Linux のアプリをダりンロヌド

Linuxコマンド

Ad