EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

critcl – Online in der Cloud

Führen Sie critcl im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl critcl, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


critcl – CriTcl-Anwendung

ZUSAMMENFASSUNG


kritisch ?zu erhalten...? ?Datei...?

_________________________________________________________________

BESCHREIBUNG


Willkommen auf der C Laufzeit In Tcl, CriTcl kurz gesagt, ein System zum Erstellen von C-Erweiterungspaketen
für Tcl im Handumdrehen, aus C-Code, eingebettet in Tcl-Skripte, für alle, die etwas erstellen möchten
Ihr Code geht schneller.

Dieses Dokument ist die Referenz-Manpage für kritisch Befehl. Seine Zielgruppe sind
Leute, die Pakete erstellen müssen kritisch für den Einsatz. Autoren von Paketen mit
Eingebetteter C-Code kann dieses Dokument ignorieren. Wenn Sie einen Überblick über das Ganze benötigen
System stattdessen, gehen Sie bitte und lesen Sie die Einleitung Zu CriTcl.

Diese Anwendung befindet sich in der Anwendungsschicht von CriTcl.

*================*
|Anwendungen |
| Kritik |
| critcl::app |
*================*

+ ---------------- +
|Kernpakete |
| Kritik |
| critcl::util |
+ ---------------- +

+ ---------------- +
|Supportpakete|
| Stubs::* |
| MD5, Plattform |
| ... |
+ ---------------- +

Die Anwendung unterstützt die folgende allgemeine Befehlszeile:

kritisch ?zu erhalten...? ?Datei...?
Der genaue Satz der unterstützten Optionen, ihre Bedeutung und Interaktion wird im Detail beschrieben
Abschnitt Anwendung Optionen unter. Eine größere Auswahl an Beispielen finden Sie im Abschnitt
„Critcl-Pakete erstellen“ im Dokument über Die richtigen CriTcl.

Anmeldeformular OPTIONAL


Die folgenden Optionen sind selbstverständlich

-v

--Version
Diese Optionen veranlassen critcl, seine Version zu drucken stdout und dann aussteigen.

-I Weg
Diese Option gibt einen zusätzlichen globalen Include-Pfad an, der während der Kompilierung verwendet werden soll
von ".kritcl" Dateien. Bei mehrfacher Angabe werden alle Werte verwendet.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-L Weg
Diese Option gibt einen zusätzlichen globalen Bibliothekssuchpfad an, der beim Verknüpfen verwendet werden soll
von ".kritcl" Dateien. Bei mehrfacher Angabe werden alle Werte verwendet.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-Zwischenspeicher Weg
Diese Option gibt den Pfad zu dem Verzeichnis an, das als Ergebniscache verwendet werden soll. Wenn nicht
angegeben, der Standardwert ist „~/.critcl/", oder beim Generieren eines Pakets (siehe
zu erhalten -pkg unten), bis „~/.critcl/.", Bei mehrfacher Angabe der
Der letzte Wert wird verwendet.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-reinigen Bei Angabe wird der Ergebniscache geleert, also alle gefundenen Dateien und Verzeichnisse
werden gelöscht), bevor die Kompilierung beginnt.

Diese Option ist beim Generieren eines Pakets irrelevant (siehe Option -pkg unten), weil
Dieser Modus beginnt mit einem eindeutigen und leeren Ergebniscache.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-config Weg
Diese Option gibt den Pfad zu einer benutzerdefinierten Konfigurationsdatei an, sodass der Benutzer dies tun kann
nutzen eigene Zielvorgaben. Wenn nicht angegeben, handelt es sich um einen fest verdrahteten Standardwert
Stattdessen wird eine im Systemkern eingebettete Konfiguration verwendet. Bei Angabe mehrerer
Mal wird der letzte Wert verwendet.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-debuggen Modus
Diese Option aktiviert die Kompilierung mit Debugging. Es akzeptiert die folgenden Modi. Wenn
Bei mehrfacher Angabe wird die Kombination aller Modi verwendet.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

Erinnerung Dieser Modus aktiviert das Speicher-Debugging von Zuweisungen, die über Tcl vorgenommen werden
Ader.

Symbole
Dieser Modus aktiviert den Bau aller „.c" Dateien mit Debugging-Symbolen.

alle Dieser Modus aktiviert beides Erinnerung und Symbole.

-deaktivieren Name
Diese Option legt den Wert der benutzerdefinierten Build-Konfigurationsoption fest Name zu falsch.
Es ist äquivalent zu „-mit-Name 0. "

Die Informationen werden nur validiert, wenn einer der „.kritcl"Eingabedateien eigentlich
definiert und verwendet damit eine benutzerdefinierte Build-Konfigurationsoption Name.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-aktivieren Name
Diese Option legt den Wert der benutzerdefinierten Build-Konfigurationsoption fest Name zu was immer dies auch sein sollte..
Es ist äquivalent zu „-mit-Name 1. "

Die Informationen werden nur validiert, wenn einer der „.kritcl"Eingabedateien eigentlich
definiert und verwendet damit eine benutzerdefinierte Build-Konfigurationsoption Name.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-Macht Wenn angegeben, wird die Kompilierung immer durchgeführt, auch wenn eine gemeinsam genutzte Bibliothek für die Datei vorhanden ist
existiert bereits. Dieser Effekt kann durch Bereinigen des Caches (siehe oben) erzielt werden
Nun, außer dass es bei der Zerstörung von Dateien faul ist und keine Dateien zerstört
haben nichts mit denen zu tun, die wir bauen.

Diese Option ist beim Generieren eines Pakets irrelevant (siehe Option -pkg unten), weil
Dieser Modus beginnt mit einem eindeutigen und leeren Ergebniscache.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-Hilfe Diese Option veranlasst das System, eine kurze Hilfe zur Befehlszeilensyntax auszudrucken
und Optionen und beenden Sie dann die Anwendung.

-halten Diese Option bewirkt, dass das System das „.c" Dateien, die durch einen Lauf im generiert wurden
Ergebniscache. Beim Generieren eines Pakets (siehe Option -pkg unten) verhindert dies ebenfalls
das Löschen des vom Lauf verwendeten eindeutigen Ergebniscaches. Diese Option ist vorgesehen
für das Debuggen von kritisch selbst, wo eine Inspektion erforderlich sein kann
generierten C-Code.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-libdir Weg
Diese Option gibt den Pfad an, unter dem die über die Option generierten Pakete liegen -pkg
werden gespeichert. Es gibt auch einen Pfad zum Durchsuchen von Bibliotheken an, z. B. für -L. Wenn
Wird mehrfach angegeben, wird der letzte Wert verwendet. Wenn überhaupt nichts angegeben ist
Standard, "lib", wird verwendet. Beachten Sie, dass dies ein relativer Pfad ist, in dem das Ergebnis platziert wird
das aktuelle Arbeitsverzeichnis.

-inklusiveDir Weg
Diese Option gibt den Pfad an, unter dem alle generierten Paketheader gespeichert werden.
Es gibt auch einen Pfad an, in dem nach Include-Dateien gesucht werden soll, z. B. nach -I. Wenn angegeben
Mehrfach wird der letzte Wert als Ziel verwendet, jedoch alle vorherigen Werte
werden im Include-Suchpfad gespeichert. Wenn überhaupt keine Angabe erfolgt, ist die Standardeinstellung
"das", wird verwendet. Beachten Sie, dass es sich hierbei um einen relativen Pfad handelt, und platzieren Sie das Ergebnis im
aktuelles Arbeitsverzeichnis.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-pkg Der Standardmodus der Anwendung besteht darin, „.kritcl" Dateien, die auf der aufgeführt sind
Befehlszeile und speichern Sie die Ergebnisse im Ergebniscache. Im Wesentlichen das Vorfüllen der
Speichern Sie den Cache mit wichtigen Paketen und verkürzen Sie so die Zeit, die für deren Verwendung benötigt wird
Pakete.

Diese Option aktiviert einen der anderen Modi, die Paketgenerierung. In diesem Modus ist die
Eingabedateien werden zunächst wie gewohnt verarbeitet, danach jedoch gebündelt
Es werden eine einzelne Bibliothek und zusätzliche Dateien generiert, um diese Bibliothek nutzbar zu machen
ein reguläres Tcl-Paket.

Die Option -Tee, siehe unten, ruft den letzten Modus auf, die TEA-Generierung. Wenn beide Optionen,
dh -pkg und -Tee angegeben werden, gewinnt der zuletzt angegebene.

In diesem Modus sind die Optionen -reinigen und -Macht sind irrelevant und werden ignoriert. Im Gegensatz,
die Option -libdir ist sowohl in diesem als auch in diesem Fall relevant -Tee Modus arbeiten können.

Wenn diese Option angegeben ist, wird der Basisname des ersten Dateiarguments nach dem angegeben
Optionen wird als Name des zu generierenden Pakets verwendet. Wenn die Erweiterung davon
Datei gibt eine gemeinsam genutzte Bibliothek an (".so"".sl"".dylib", Und". Dll") es ist auch
aus dem Satz der Eingabedateien entfernt. A ".tcl" Datei wird als Teil der Eingabe beibehalten. A
Es wird davon ausgegangen, dass eine einzelne Datei ohne Erweiterung tatsächlich ein „.tcl" Erweiterung. A
Datei ohne Erweiterung, aber andere folgende Eingabedateien werden wie der Name von behandelt
eine eigentliche gemeinsam genutzte Bibliothek und aus dem Satz der Eingabedateien entfernt.

Beispiele:
=> Paketname ist: foo
=> Eingabedatei ist: foo.tcl
=> Paketname ist: foo
=> Eingabedatei ist: bar.tcl
=> Paketname ist: foo
=> Eingabedatei ist: foo.tcl
=> Paketname ist: foo
=> Eingabedatei ist: bar.tcl

-Show Wenn diese Option angegeben wird, druckt das System die Konfiguration von
das gewählte Ziel stdout und dann beenden. Die Wahl des Ziels kann beeinflusst werden
durch die Option -Ziel (siehe unten).

-zeige alles
Wenn diese Option angegeben wird, druckt das System die gesamte ausgewählte Option aus
Konfigurationsdatei zu stdout und dann beenden. Die Wahl der Konfigurationsdatei kann
durch die Option beeinflusst werden -config (siehe oben).

-Ziel Name
Diese Option überschreibt die Standardauswahl des Build-Ziels durch die Auswahl des Benutzers.
Bei mehrfacher Angabe wird der letzte Wert verwendet. Das benannte Ziel muss vorhanden sein
in der gewählten Konfigurationsdatei. Option nutzen -Ziele (siehe unten), um eine Liste zu erhalten
die akzeptablen Ziele. Die Wahl der Konfigurationsdatei kann durch beeinflusst werden
die Option -config (siehe oben).

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee unten).

-Ziele
Wenn diese Option angegeben wird, druckt das System die Liste aller bekannten
Ziele aus der gewählten Konfigurationsdatei zu stdout und dann beenden. Die Wahl der
Die Konfigurationsdatei kann über die Option beeinflusst werden -config (siehe oben).

-Tee Ähnlich wie Option -pkg, außer dass der aufgerufene Modus keine Binärdateien generiert,
sondern eine Verzeichnishierarchie, die das „.kritcl"-Datei, ihre Begleitdateien und a
TEA-ähnliches Build-System mit dem größten Teil des benötigten Support-Codes (einschließlich Kopien).
der critcl-Pakete).

Wenn beide Optionen, d.h -pkg und -Tee angegeben werden, gewinnt der zuletzt angegebene.

In diesem Modus sind die Optionen -I, -L, -reinigen, -Macht, -Zwischenspeicher, -inklusiveDir, -aktivieren,
-deaktivieren und -mit-FOO sind irrelevant und werden ignoriert. Im Gegensatz dazu die Option -libdir
ist sowohl in diesem als auch in diesem Fall relevant -pkg Modus arbeiten können.

Wenn diese Option angegeben ist, wird der Basisname des ersten Dateiarguments nach dem angegeben
Optionen wird als Name des zu generierenden Pakets verwendet. Wenn die Erweiterung davon
Datei gibt eine gemeinsam genutzte Bibliothek an (".so"".sl"".dylib", Und". Dll") es ist auch
aus dem Satz der Eingabedateien entfernt. A ".tcl" Datei wird als Teil der Eingabe beibehalten. A
Es wird davon ausgegangen, dass eine einzelne Datei ohne Erweiterung tatsächlich ein „.tcl" Erweiterung. A
Datei ohne Erweiterung, aber andere folgende Eingabedateien werden wie der Name von behandelt
eine eigentliche gemeinsam genutzte Bibliothek und aus dem Satz der Eingabedateien entfernt.

Beispiele:
=> Paketname ist: foo
=> Eingabedatei ist: foo.tcl
=> Paketname ist: foo
=> Eingabedatei ist: bar.tcl
=> Paketname ist: foo
=> Eingabedatei ist: foo.tcl
=> Paketname ist: foo
=> Eingabedatei ist: bar.tcl

-mit-Namen Wert
Diese Option legt den Wert der benutzerdefinierten Build-Konfigurationsoption fest Name zu Wert.

Die Informationen werden nur validiert, wenn einer der „.kritcl"Eingabedateien eigentlich
definiert und verwendet damit eine benutzerdefinierte Build-Konfigurationsoption Name.

Bei der Generierung eines TEA-Pakets ist diese Option irrelevant (siehe Option -Tee über).

PAKET STRUKTUR


Von critcl generierte Pakete haben die folgende Grundstruktur:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- Lizenzbedingungen (optional)
|
+- tcl (optional)
| +-
|
+-
+-

Notizen

[1] Die Datei „pkgIndex.tcl" ist die von Tcl erwartete Standard-Paketindexdatei
Paketverwaltung. Es wird während einer Suche nach Paketen ermittelt und deklariert
Paket zu Tcl mit seinen Dateien und wie man damit umgeht.

[2] Die Datei „critcl-rt.tcl" ist eine Hilfsdatei, die den allgemeinen Code enthält, der von verwendet wird
"pkgIndex.tcl„um seine Aufgaben zu erfüllen.

[3] Die Datei „Lizenzbestimmungen„ ist optional und erscheint nur, wenn „.kritcl" Datei die
Das Paket wird aus der Verwendung des Befehls generiert critcl::license Paket deklarieren
Autor und Lizenz.

[4] Alle mit dem Befehl deklarierten Dateien critcl::tsources werden im Unterverzeichnis abgelegt
"tcl".

[5] Die von critcl generierte gemeinsam genutzte Bibliothek wird in ein plattformspezifisches Unterverzeichnis gestellt.
Verzeichnis.

Die gesamte Struktur und insbesondere der letzte Punkt ermöglichen es uns, die Ergebnisse später zusammenzuführen
(für dasselbe Paket und dieselbe Version) für mehrere Zielplattformen in einem einzigen Verzeichnis
Struktur ohne Konflikte, indem einfach die obersten Verzeichnisse übereinander kopiert werden. Der
Nur Dateien, die Konflikte verursachen können, befinden sich im Und "tcl" Verzeichnisse, und für diese wir
wissen, dass sie bei allen Zielen identisch sind. Das Ergebnis einer solchen Zusammenführung würde wie folgt aussehen:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- Lizenzbedingungen (optional)
|
+- tcl (optional)
| +-
|
+-
| +-
+-
| +-
+-
+-

ÄNDERUNGEN FÜR VERSION 2.1


[1] Fehler behoben, wo critcl::tsources interpretierte relative Pfade als relativ zum
aktuelles Arbeitsverzeichnis statt relativ zum „.kritcl" Datei mit der
Befehl, wie alle anderen Befehle dieses Typs auch.

[2] Interne Fehler behoben, die das Sammeln von Informationen für mehrere ".kritcl" Dateien an
Leck zwischen ihnen. Vor allem, critcl::tk ist keine globale Konfigurationsoption
mehr.

[3] Der Befehl wurde korrigiert critcl::license eine Null-Operation im Modus „compile & run“ sein,
anstatt einen Fehler auszulösen.

[4] Die Störung der Critcl-Anwendung mit dem Ergebniscache „Kompilieren und Ausführen“ wurde behoben
in -pkg Modus, indem es einen völlig separaten (und standardmäßig vorübergehenden) verwendet
Verzeichnis für diesen Modus.

[5] Fehler behoben, bei dem Änderungen zu einem „.kritcl" Datei führte nicht zu einer Neuerstellung für den Modus
„Kompilieren und ausführen“. Alle relevanten API-Befehle sorgen nun für UUID-Änderungen.

[6] Fehler im Backend-Handling von behoben critcl::debug wo die begleitenden C-Quellen von
ein ".kritcl" Datei wurde nicht mit Debug-Optionen kompiliert, obwohl die ".kritcl" Datei
war.

[7] Fehler behoben critcl::debug was die Erkennung des Modus „Alle“ verhinderte, wenn dies der Fall war
nicht das erste Argument des Befehls.

[8] Fehler in „Vorspannung.c" Verhindert die Kompilierung auf Nicht-Windows-Plattformen.

[9] Langjähriger Fehler bei der Behandlung von Namespace-Qualifizierern im Befehlsnamen behoben
Argument oder critcl::cproc und critcl::ccommand. Es ist nun möglich, a anzugeben
vollständig qualifizierter Befehlsname ohne Probleme.

[10] Erweitert/überarbeitet critcl::tsources die kanonische Art zu sein, zu erklären „.tcl"
Begleitdateien auch für den Modus „Kompilieren und Ausführen“.

[11] Erweitert/überarbeitet critcl::tsources um die Verwendung eines „zu ermöglichen“.kritcl"Datei als eigene Datei
Tcl-Begleitdatei.

[12] Erweitert critcl::framework um intern nach dem OS X-Build-Ziel zu suchen und es zu ignorieren
die Erklärung, wenn nicht.

[13] Erweitert critcl::failed mehr als einmal im Jahr aufrufbar sein.kritcl" Datei. Die
Der erste Aufruf zwingt den Build, das Ergebnis abzurufen, sofern dies noch nicht geschehen ist. Weiter
Aufrufe geben das zwischengespeicherte Ergebnis des ersten Aufrufs zurück.

[14] Die Behandlung der Umgebungsvariablen CC im Code zur Bestimmung wurde erweitert
Compiler, der verwendet werden soll, um Pfade zum Compiler oder zur Compilerdatei zu verarbeiten (d. h. zu entfernen).
Erweiterungen und Compiler-Optionen, die nach dem Compiler selbst angegeben werden, verlassen nur
der bloße Name des Compilers.

[15] Der Code für die Suche nach vorinstallierten Bibliotheken wurde erweitert, um die Pfade auszugeben
durchsucht, was das Debuggen eines Suchfehlers erleichtert.

[16] Ein neuer Befehl critcl::tcl kann verwendet werden, um die Version von Tcl minimal zu deklarieren
erforderlich, um das zu erstellen und auszuführen..kritcl" Datei und Paket. Standardmäßig 8.4, falls nicht
erklärt. Critcl erweitert, um die Stubs und Header für alle Tcl 8.4, 8.5, zu haben.
und 8.6.

[17] Ein neuer Befehl critcl::load erzwingt den Aufbau und die Belastung eines „.kritcl" Datei. Das ist
die offizielle Möglichkeit, das standardmäßige Lazy-Build-&-Load-on-Demand-Schema von Critcl zu überschreiben
für den Modus „Kompilieren & Ausführen“.

Note das nach der Verwendung critcl::load / critcl::failed in einem ".kritcl" Datei ist es nicht
Es ist nicht mehr möglich, critcl-Befehle in dieser Datei zu verwenden. Andernfalls wird ein Fehler ausgegeben.

[18] Die Generierung der zu verwendenden „#line“-Pragmas wurde erweitert Info Rahmen (falls verfügbar) an
Versorgen Sie den C-Compiler mit genauen Zeilennummern im „.kritcl" Datei für die
Meldung von Warnungen und Fehlern.

[19] Erweitert critcl::check mit Protokollierung, um beim Debuggen von Build-Time-Checks des zu helfen
Umgebung sowie ein zusätzliches optionales Argument zur Bereitstellung einer Beschriftung.

[20] Neuer Befehl hinzugefügt critcl::checklink die nicht nur versucht, die Umwelt zu überprüfen
über die Kompilierung des Codes, aber auch seine Verknüpfbarkeit.

[21] Neuer Befehl hinzugefügt critcl::msg für Nachrichten, wie Befehl critcl::error ist für
Fehler melden. Ebenso ist dies ein Hook, den ein Benutzer des Pakets verwenden darf
überschreiben. Die Standardimplementierung, die vom Modus verwendet wird kompilieren & Lauf tut nichts. Der
Implementierung für Modus erzeugen Paket Gibt die Nachricht auf stdout aus.

Die vorgesehene Verwendung ist für die Berichterstattung über die von ermittelten Ergebnisse critcl::check und
critcl::checklink während des Erstellens, um beim Debuggen zu helfen, wenn etwas schief geht
mit einem Scheck.

[22] Offenlegung der Argumentverarbeitungsinterna von critcl::proc für Fortgeschrittene
Benutzer. Die neuen Befehle sind

[1] critcl::argnames

[2] critcl::argcnames

[3] critcl::argcsignature

[4] critcl::argvardecls

[5] critcl::argconversion

Siehe Abschnitt Fortgeschrittener Embedded C Code dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. kritisch Paketdokumentation für
Details.

[23] Das Critcl-Paket wurde auf Intercept erweitert Paket die und die Datei aufzeichnen ->
Paketnamenzuordnung. Darüber hinaus ermöglichen weitere interne Änderungen jetzt die Verwendung von Namespaces
Paketnamen, während weiterhin die richtigen Pfadnamen und die Init-Funktion verwendet werden.

[24] Die nicht verwendeten Befehle wurden gelöscht critcl::optimize und critcl::include.

[25] Gefallen -lib Modus aus der Critcl-Anwendung.

[26] Überreste der Unterstützung für Tcl 8.3 und früher wurden eingestellt.

ÄNDERUNGEN FÜR VERSION 3


[1] Der Befehl critcl::platform war in Version 2.1 veraltet und wurde durch ersetzt
critcl::targetplatform, jedoch aus Kompatibilitätsgründen beibehalten. Jetzt wurde es entfernt.

[2] Der Befehl critcl::compiled wurde in Version 2.1 mit Semantik beibehalten
Widerspruch dazu, für Kompatibilität. Dieser Widerspruch wurde beseitigt,
Ändern der sichtbaren Semantik des Befehls, um sie an seinen Namen anzupassen.

[3] Der Wechsel auf Version 3 wurde aufgrund der beiden inkompatiblen Sichtbarmachungen notwendig
Änderungen oben.

[4] Das Anwendungspaket wurde um eine neue Option zur Codeverarbeitung erweitert -Tee. Angabe
Diese Option ruft einen speziellen Modus auf, in dem critcl ein TEA-Paket generiert, also umschließt
die Eingabe in eine Verzeichnishierarchie und unterstützende Dateien, die sie bereitstellen.
ähnliches Buildsystem.

Diese neue Option und -pkg, schließen sich gegenseitig aus. Wenn beide angegeben sind, wird das zuletzt verwendete verwendet
Option hat Vorrang.

Die generierte Paketverzeichnishierarchie ist größtenteils in sich geschlossen, jedoch nicht vollständig.
Es erfordert nicht nur eine funktionierende Installation von Tcl, sondern auch funktionierende Installationen
der Pakete md5 und Befehlszeile. Beides wird von der bereitgestellt Tcllib bündeln.
Nicht erforderlich, aber die Installation aller Pakete, die dies können, wird empfohlen
Beschleunigen Sie den Betrieb von MD5, d. h Kryptokit, tcllibc, oder Trf.

[5] Das Paket critcl um einen neuen Befehl erweitert critcl::scan den Weg zu einem nehmen
".kritcl"-Datei, scannt sie statisch und gibt Lizenz, Version und eine Liste zurück
seine Begleitdateien, Liste der importierten APIs und Liste der vom Entwickler angegebenen benutzerdefinierten
Einstellmöglichkeiten. Diese Daten sind die Grundlage für die beschriebene TEA-Verpackung
zu teilen.

Beachten Sie, dass dies eine statisch Scan. Während die anderen Build-Modi das ausführen können (müssen).
".kritcl„ Den zusammengestellten C-Code ablegen und plattformspezifische Entscheidungen treffen,
Begleitdateien usw. Der TEA-Wrap-Modus ist nicht in der Lage, plattform-
konkrete Entscheidungen. Es muss alles umfassen, was möglicherweise benötigt wird
beim eigentlichen Bauen. Daher der statische Scan. Dies hat jedoch seinen eigenen Satz
Probleme, nämlich die Unfähigkeit, irgendeine dynamische Konstruktion des Begleiters herauszufinden
Dateipfade, zumindest für sich allein. Daher:

[6] Erweitert die API, die von Critcl-basierten Paketen verwendet wird, mit dem Befehl critcl::ows. Während
Dieser Befehl wird von den regulären Build-Modi, die der statische Scanner beschrieben hat, ignoriert
oben verwendet seine Argumente als Namen der Begleitdateien, die umschlossen werden müssen
in das TEA-Paket eingefügt und konnte vom Scanner sonst nicht erkannt werden
wegen dynamischer Pfade zu critcl::tsources, critcl::csources, bezogen werden
direkt oder einfach als zusätzliche Datendateien.

[7] Erweitert die API, die von Critcl-basierten Paketen verwendet wird, mit dem Befehl critcl::api für die
Verwaltung von Stub-Tabellen, sei es deren Verwendung und/oder Deklaration und Export.

Siehe Abschnitt Stummel Tisch Management dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. kritisch Paketdokumentation für
Details.

[8] Erweitert die API, die von Critcl-basierten Paketen verwendet wird, mit dem Befehl critcl::userconfig
für die Verwaltung entwicklerspezifizierter benutzerdefinierter Konfigurationsoptionen, sei es deren
Verwendung und/oder Deklaration.

Siehe Abschnitt Maßgeschneidert Bauen Konfiguration dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. kritisch Paketdokumentation
für weitere Einzelheiten.

[9] Die von critcl-basierten Paketen verwendete API wurde um die Befehle erweitert
critcl::beschreibung, critcl::summary, critcl::subject, critcl::meta und
critcl::buildrequirement für die Deklaration von TEApot-Metadaten für/über die
Paket.

Siehe Abschnitt Paket Meta Datum dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog. kritisch Paketdokumentation für
Details.

ÄNDERUNGEN FÜR VERSION 3.0.1


[1] Rundum Bugfixes. Im Detail:

[2] Die Aufzeichnung der Tcl-Versionsanforderungen wurde korrigiert. Behalten Sie den Paketnamen und die Version bei
zusammen, um die generierten Metadaten und den generierten Paketladebefehl zu entschlüsseln.

[3] Die Build-Skripte wurden korrigiert: Beim Installieren oder Umschließen von TEA werden fehlende Fehler generiert
Verzeichnisse

[4] Die Build-Skripte wurden geändert, um die Anwendung ordnungsgemäß zu beenden, wenn das Fenster geöffnet wird
Ihre GUI wird über die Schaltfläche (X) geschlossen.

[5] Ein 8.5-ism (offenes WB) entfernt, das in das Haupt-Build-Skript eingeschlichen war.

[6] Die Beispiel-Build-Skripte wurden geändert, um die Ausgabe für die verschiedenen zu trennen
Beispiele (und Pakete) durch Hinzufügen von Leerzeilen.

[7] stack::c-Beispiel-Bugfix: API-Deklarationen zur Verwendung in den Begleitdateien einschließen.

[8] Die Dokumentation wurde erweitert: Es wurde darauf hingewiesen, dass eine funktionierende Installation von C erforderlich ist
Compiler.

[9] Die Windows-Zieldefinitionen und der Code wurden erweitert, um die verwendeten Manifestdateien zu verarbeiten
durch moderne MS-Entwicklungsumgebungen. Beachten Sie, dass dieser Code beides behandelt
Möglichkeiten, Umgebung mit Manifesten und (alte(r)) Umgebungen ohne.

[10] Die Windows 64-Bit-Zieldefinitionen und der Code wurden erweitert, um die Notwendigkeit automatisch zu erkennen
die Hilfsbibliothek „bufferoverflowU.lib“ und konfigurieren Sie die Kompilierung und Verknüpfung neu
Befehle entsprechend ausführen. Wir gehen davon aus, dass die Bibliothek verknüpft sein muss, wenn sie vorhanden ist.
Dies sollte kein Schaden sein, wenn die Bibliothek vorhanden, aber nicht benötigt wird. Einfach überflüssig.
Wir suchen nach der Bibliothek in den durch die Umgebungsvariable LIB angegebenen Pfaden.

ÄNDERUNGEN FÜR VERSION 3.0.2


[1] Problem im Compile-and-Run-Modus behoben, bei dem Befehle, die in den auto_index eingefügt wurden, nicht ausgeführt wurden
Gefunden durch den Befehl [unbekannt] von Tcl.

[2] Es wurde eine Nichtübereinstimmung von Array-Schlüsseln behoben, die die Nutzung von Client-Daten und die Löschfunktion für beeinträchtigte
Verfahren. Berichtet von Jos DeCoster, mit Patch.

[3] Eine Befehlszeilenoption wurde implementiert -L, ein Äquivalent von Option -I, nur für die Bibliothek
Suchpfade.

[4] Github-Probleme 5 und 8 behoben. Umgehung einer fehlenden Variablen ::errorInfo. Es
sollte immer vorhanden sein, es scheint jedoch Revisionen von Tcl zu geben
verstoßen gegen diese Annahme.

ÄNDERUNGEN FÜR VERSION 3.0.3


[1] Github-Probleme 5 und 8 für die Beispielskripte build.tcl behoben. Arbeiten um a
Fehlende Variable ::errorInfo. Es sollte immer vorhanden sein, egal wie es zu sein scheint
Revisionen von Tcl, die diese Annahme verletzen.

ÄNDERUNGEN FÜR VERSION 3.0.4


[1] Die Generierung des Init-Namens des Pakets beim Lesen des eingehenden Codes wurde korrigiert
stdin und hat keinen richtigen Pfad.

[2] Github-Problem 11 behoben. Jetzt wird /LIBPATH anstelle von -L unter Windows verwendet (libinclude
Konfigurationseinstellung).

[3] Critcl wurde erweitert, um das -l:path-Format von -l-Optionen zu verarbeiten. GNU ld 2.22+ übernimmt dies
indem man nach dem Weg sucht, wie er ist. Gut, wenn statische Bibliotheken angegeben werden, z. B. einfach -l
Sucht bevorzugt nach gemeinsam genutzten Bibliotheken gegenüber statischen. critcl behandelt es jetzt als
Ältere GNU-LDs verstehen es nicht, ebenso wenig die verschiedenen herstellerspezifischen Linker.

[4] Github-Problem Nr. 12 behoben. Critcl ermittelt nun die verwendete Version von MSVC und verwendet diese
Damit können Sie zwischen verschiedenen Link-Debug-Optionen wechseln. Vereinfachte die Handhabung von
bufferoverflowU.lib auch, wobei derselbe Mechanismus verwendet wird und die beiden reduziert werden
Konfigurationsabschnitte, die wir hatten, wieder in einem zusammengefasst.

[5] Das Einfügen von #line-Pragmas in den generierten C-Code wurde überarbeitet, um dies zu vermeiden
Einschränkungen für das Zeilennummernargument, die von verschiedenen Compilern auferlegt werden, und mehr sein
genau.

[6] Modifizierte Argumentverarbeitung. Die Option -libdir impliziert jetzt auch -L für ihr Argument.

[7] Erweiterte Behandlung der Option -show (critcl::showconfig), um den Pfad des aufzulisten
Konfigurationsdatei, aus der die Daten stammen. Gut zum Debuggen der Konfiguration
Verarbeitung.

[8] Das Build-Skript wurde um Ziele erweitert, um die eingebettete Dokumentation neu zu generieren.
und Diagramme zu erstellen und eine Freigabe zu generieren.

ÄNDERUNGEN FÜR VERSION 3.0.5


[1] Fehler im neuen Code für #line-Pragmas behoben, der bei der Angabe von C-Code ausgelöst wurde
ohne führendes Leerzeichen.

[2] Die Dokumentation wurde um Manpages für die Lizenz, den Quellcodeabruf usw. erweitert.
Installationsprogramm und Entwicklerhandbücher.

ÄNDERUNGEN FÜR VERSION 3.0.6


[1] Github-Problem 10 behoben. Die Critcl-Anwendung liefert jetzt einen korrekten Exit-Code (1)
bei Build-Fehler, anstatt immer Erfolg anzuzeigen (Status 0).

[2] Github-Problem 13 behoben. Die Handhabung von bufferoverflowU.lib für Release-Builds war
Inkonsistent mit der Handhabung für Debug-Builds. Es wird jetzt identisch gehandhabt
(bedingt) in beiden Fällen.

[3] Dokumentationsbereinigung, hauptsächlich im Installationshandbuch und in der README.md angezeigt
github

ÄNDERUNGEN FÜR VERSION 3.0.7


[1] Der von generierte Code wurde korrigiert critcl::c++Befehl. Der ausgegebene Code übergab ein Nicht-
statische String-Tabelle zu Tcl_GetIndexFromObj, vertragswidrig, was
erfordert, dass die Tabelle eine feste Adresse hat. Das war ein unvergesslicher Erinnerungsschub
passieren. Vielen Dank an Brian Griffin, der uns auf das allgemeine Problem aufmerksam gemacht hat.

ÄNDERUNGEN FÜR VERSION 3.1


[1] Ein neues übergeordnetes Paket hinzugefügt critcl::iassoc.

Dieses Paket vereinfacht die Erstellung von Code, der Daten einem Interpreter zuordnet
über Tcl's Tcl_(Get|Set)AssocData() APIs. Der Benutzer kann sich dabei auf seine Daten konzentrieren
Der gesamte erforderliche Standard-C-Code zur Unterstützung wird vom Paket generiert.

Dieses Paket nutzt mehrere der neuen Funktionen, die dem Kern hinzugefügt wurden kritisch
Paket, siehe unten.

[2] Das übergeordnete Paket wurde hinzugefügt critcl::class.

Dieses Paket vereinfacht die Erstellung von C-Level-Objekten mit Klasse und Instanz
Befehle. Der Benutzer kann eine Klassendefinition mit Klassen- und Instanzvariablen schreiben
und -Methoden ähnlich einer TclOO-Klasse, mit dem gesamten notwendigen Standard-C-Code dazu
Unterstützen Sie dies, das vom Paket generiert wird.

Dieses Paket nutzt mehrere der neuen Funktionen, die dem Kern hinzugefügt wurden kritisch
Paket, siehe unten.

[3] Die API für die Verarbeitung von TEApot-Metadaten wurde erweitert. Der Befehl wurde hinzugefügt critcl::meta? zu
die gespeicherten Informationen abfragen. Als Hauptverwendungszweck wird derzeit die Rückgewinnung des ins Auge gefasst
Name des aktuellen Pakets durch Dienstprogrammbefehle zur Verwendung in konstruierten Namen. Das
Durch den statischen Scan des Pakets sind bestimmte Informationen immer verfügbar
Datei bei Ausführung des ersten critcl-Befehls.

Die neuen Pakete critcl::iassoc und critcl::class (siehe oben) sind Nutzer davon
Befehl.

[4] Erweitert die API um einen Befehl, critcl::name2c, den Prozess der Konvertierung offenlegen
einen Tcl-Namen in Basisnamen, Namespace und C-Namespace. Dies ermöglicht eine höhere Ebene
Codegeneratoren zum Generieren derselben Art von C-Bezeichnern wie kritisch sich.

Das neue Paket critcl::class (siehe oben) ist ein Benutzer dieses Befehls.

[5] Erweitert die API um einen Befehl, critcl::source, Ausführen der in gefundenen critcl-Befehle
eine separate Datei im Kontext der aktuellen Datei. Dies ermöglicht eine einfachere Verwaltung
von größeren Codekörpern, da der Benutzer diese in einfachere Teile aufteilen kann
Verdauen Sie kleinere Teile, ohne dass mehrere Pakete generiert werden.

[6] Im Zusammenhang mit dem vorherigen Punkt wurde die API um Befehle zum Umleiten der Sammlung erweitert
des generierten C-Codes in den Speicher. Dies erleichtert die Verwendung der Befehle für
eingebetteter C-Code in übergeordnete Codegeneratoren.

Siehe den Abschnitt Advanced: Ablenkungen Einzelheiten zu den bereitgestellten Befehlen finden Sie hier.

Das neue Paket critcl::class (siehe oben) ist Nutzer dieser Einrichtungen.

[7] Die API wurde um Befehle erweitert, die Entwicklern bei der Generierung von korrektem C helfen
#Leitung Richtlinien. Dadurch können übergeordnete Codegeneratoren generiert und eingefügt werden
ihre eigenen Direktiven, um sicherzustellen, dass Kompilierungsfehler in ihrem Code ordnungsgemäß behoben werden
zugeschrieben.

Siehe den Abschnitt Advanced: Ort Management Einzelheiten zu den bereitgestellten Befehlen finden Sie hier.

Die neuen Pakete critcl::iassoc und critcl::class (siehe oben) sind Nutzer dieser
Anlagen.

[8] Die API wurde um Befehle erweitert, die Benutzern die Möglichkeit geben, benutzerdefinierte Argumente zu definieren
und Ergebnistypen für ::critcl::cproc.

Siehe den Abschnitt Advanced: Erweitern cproc Einzelheiten zu den bereitgestellten Befehlen finden Sie hier.

ÄNDERUNGEN FÜR VERSION 3.1.1


[1] Rundum Bugfixes. Im Detail:

[2] Die Generierung falscher #args-Fehler für wurde behoben critcl::cproc und abgeleiteter Code
(critcl::class cproc-basierte Methoden). Verwenden Sie NULL, wenn keine Argumente vorhanden sind, und übernehmen Sie
den Offset berücksichtigen.

[3] Die Behandlung von Paketnamen wurde korrigiert critcl::class. Ich habe vergessen, dass sie enthalten können
Namespace-Trennzeichen. Auf Version 1.0.1 gestoßen.

[4] Erweiterte a critcl::class Aus Gründen der Klarheit wurde bei der Instanzerstellung eine Fehlermeldung generiert.
Auf Version 1.0.2 aktualisiert.

ÄNDERUNGEN FÜR VERSION 3.1.2


[1] Verbesserung. Im Detail:

[2] Erweitert critcl::cproc um optionale Argumente in begrenztem Umfang verarbeiten zu können.
Dies steht Ihnen automatisch zur Verfügung critcl::class auch cproc-basierte Methoden.

[3] Bugfix in lassig Emulation für Tcl 8.4. Setzen Sie nicht verwendete Variablen ordnungsgemäß auf die
leerer String. Fehlerhafte Version des Emulationspakets lassign84 um 1.0.1.

ÄNDERUNGEN FÜR VERSION 3.1.3


[1] Verbesserung. Im Detail:

[2] Neuer Argumenttyp „pstring“ für „Pascal String“ hinzugefügt, ein gezählter String, also a
Kombination aus String-Zeiger und String-Länge.

[3] Neue Methoden hinzugefügt critcl::argtypesupport und ::critcl::argsupport zu definieren und zu verwenden
zusätzlicher unterstützender Code für einen Argumenttyp, der hier von „pstring“ oben verwendet wird
Definieren Sie die notwendige Struktur.

[4] Semi-Bugfixes in den Paketen critcl::class und critcl::iassoc. Pragmas für die AS
Metadatenscanner, um sicherzustellen, dass die Vorlagendateien Teil des Pakets sind.
Die Versionen wurden auf 1.0.4 bzw. 1.0.1 erhöht.

ÄNDERUNGEN FÜR VERSION 3.1.4


[1] Bugfix im Paket critcl::class. Generieren Sie ein Dummy-Feld in der Klassenstruktur, wenn
Die Klasse hat keine Klassenvariablen. Ohne diese Änderung wäre die Struktur leer,
und eine Reihe von Compilern sind nicht in der Lage, einen solchen Typ zu verarbeiten.

[2] Ein Tippfehler wurde behoben, der die Win64-Konfiguration beschädigte.

[3] Problem Nr. 16 behoben, ein Tippfehler in der Dokumentation des Befehls critcl::class.

ÄNDERUNGEN FÜR VERSION 3.1.5


[1] Problem Nr. 19 behoben. Der reguläre Ausdruck wurde erstellt, um die MSVC-Versionsnummer zu extrahieren
allgemeiner, damit es auf deutschen Sprachsystemen funktioniert. Das muss vielleicht sein
Wird in Zukunft für andere Windows-Gebietsschemas erneut aufgegriffen.

[2] Problem Nr. 20 behoben. Option -tea funktioniert jetzt unter Windows, zumindest in einer Unix-Emulation
Umgebung wie msys/mingw.

ÄNDERUNGEN FÜR VERSION 3.1.6


[1] Problem Nr. 21 behoben. Während die Mehrfachdefinition der Stub-Tabellen-Zeigervariablen war
Okay, für alle bisher gesehenen C-Linker gefiel das den C++-Linkern überhaupt nicht.
Der Code wurde überarbeitet, um sicherzustellen, dass dieser Satz von Variablen nur einmal generiert wird
Die Hülle um alle Teile herum zusammenbauen.

[2] Problem Nr. 22, die Behandlung der Befehlsbezeichnerargumente von, wurde behoben
critcl::ccommand, critcl::cproc und critcl::cdata. Wir erlauben jetzt ordnungsgemäß jede Tcl
Bezeichner erstellen und daraus geeignete interne C-Bezeichner generieren.

Als Teil davon die Unterschrift des Befehlshabers critcl::name2c geändert. Der Befehl jetzt
liefert eine Liste mit vier statt drei Werten. Der neue Wert wurde am hinzugefügt
Ende.

Die Implementierung des Pakets wurde weiter angepasst critcl::class, ein Benutzer von
critcl::name2c. Dieses Paket liegt jetzt in der Version 1.0.6 vor und erfordert critcl 3.1.6

Zuletzt wurde die falsche Handhabung der Option behoben -cname in critcl::ccommand und
critcl::cproc.

[3] Problem Nr. 23 behoben.

ÄNDERUNGEN FÜR VERSION 3.1.7


[1] Problem Nr. 24 behoben. Extrahieren Sie Compiler-Warnungen, die im gefunden werden, und zeigen Sie sie bedingungslos an
Build-Protokoll. Verhindert, dass Benutzer Warnungen verpassen, die den Build jedoch nicht verursachen
Sollte ein Fehler auftreten, kann dies dennoch auf Probleme hinweisen.

[2] Neue Funktion. Ausgabe-Hook. Alle Benutzerausgaben, die keine Nachrichten senden, werden jetzt über das weitergeleitet
Befehl critcl::print, und Benutzer dürfen es überschreiben, wenn sie critcl verwenden
Anwendung als Paket.

[3] Neues Feature von Ashok P. Nadkarni. Plattformkonfigurationen können Werte von erben
Konfigurationen, die vor ihnen definiert wurden.

ÄNDERUNGEN FÜR VERSION 3.1.8


[1] Problem mit für Tcl 8.4 generierten Paketindizes behoben. Treten Sie der Befehlsliste bei
mit Semikolon, nicht mit Zeilenumbruch.

[2] Problem Nr. 26 behoben, das Anwendungsfälle zur Sprache brachte, die ich bei der Behebung vergessen hatte zu berücksichtigen
Fehler Nr. 21 (siehe Krit. 3.1.6).

ÄNDERUNGEN FÜR VERSION 3.1.9


[1] Problem Nr. 27 behoben. Fehlende Plattformdefinitionen für verschiedene alternative Linux- und Linux-Versionen hinzugefügt
OS X-Ziele.

[2] Problem Nr. 28 behoben. Fehlende -mXX-Flags für die Verknüpfung unter linux-{32,64}-* hinzugefügt
Ziele.

[3] Problem Nr. 29 behoben. Die Verwendung von rohen „Cheader“-Informationen bei der Verarbeitung wurde ersetzt
von „cdefines“ mit den entsprechenden davon abgeleiteten Include-Anweisungen.

[4] Das Problem hinter der abgelehnten Pull-Anfrage Nr. 30 von Andrew Shadura wurde behoben. Dynamisch
Extrahieren Sie die Stubs-Variablendeklarationen aus den Tcl-Header-Dateien und generieren Sie sie
passende Variablendefinitionen zur Verwendung im Paketcode. Der generierte Code wird
jetzt immer konsistent mit den Headern sein, auch wenn critcls eigene Kopie davon ist
durch Systemheader ersetzt.

[5] Problem Nr. 31 behoben. Akzeptierter Patch von Andrew Shadura, mit Änderungen (Kommentare), für
Einfachere Integration von Critcl in Betriebssystempaketsysteme, wodurch die Kopien von Critcl ersetzt werden
Tcl-Header mit ihren eigenen.

[6] Problem Nr. 32 behoben. Zusammengeführte Pull-Anfrage von Andrew Shadura. Verschiedene Tippfehler in
Dokumentation und Kommentare.

[7] Problem Nr. 33 behoben. Behandeln Sie Dateien, die mit einem Punkt beginnen, besser.

AUTOREN


Jean Claude Wippler, Steve Landers, Andreas Kupries

Verwenden Sie critcl online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad