EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

critcl - Online în cloud

Rulați critcl în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda critcl care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


critcl - Aplicație CriTcl

REZUMAT


critcl ?opțiune...? ?fişier...?

_________________________________________________________________

DESCRIERE


Bine aţi venit la C Runtime In TCL, CriTcl pe scurt, un sistem pentru a construi pachete de extensii C
pentru Tcl on the fly, din codul C încorporat în scripturile Tcl, pentru toți cei care doresc să facă
codul lor merge mai repede.

Acest document este pagina de manual de referință pentru critcl comanda. Publicul vizat este
oamenii care trebuie să construiască pachete folosind critcl pentru desfășurare. Scriitori de pachete cu
codul C încorporat poate ignora acest document. Dacă aveți nevoie de o privire de ansamblu asupra întregului
în schimb, mergeți și citiți Introducere La CriTcl.

Această aplicație se află în Stratul de aplicație al CriTcl.

*=================*
|Aplicații |
| critcl |
| critcl::app |
*=================*

+----------------+
|Pachete de bază |
| critcl |
| critcl::util |
+----------------+

+----------------+
|Pachete de asistență|
| cioturi::* |
| md5, platforma |
| ... |
+----------------+

Aplicația acceptă următoarea linie de comandă generală:

critcl ?opțiune...? ?fişier...?
Setul exact de opțiuni acceptate, semnificația lor și interacțiunea sunt detaliate în
secțiune aplicație Opţiuni de mai jos. Pentru un set mai mare de exemple, consultați secțiunea
„Construirea pachetelor Critcl” în documentul despre Utilizarea CriTcl.

APLICARE OPŢIUNI


Următoarele opțiuni sunt înțelese

-v

--versiune
Aceste opțiuni determină critcl să-și imprime versiunea către stdout și apoi ieși.

-I cale
Această opțiune specifică o cale de includere globală suplimentară de utilizat în timpul compilării
de ".critcl". Toate valorile sunt utilizate dacă acest lucru este specificat de mai multe ori.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-L cale
Această opțiune specifică o cale de căutare globală suplimentară a bibliotecii de utilizat în timpul conectării
de ".critcl". Toate valorile sunt utilizate dacă acest lucru este specificat de mai multe ori.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-cache cale
Această opțiune specifică calea către directorul de utilizat ca cache de rezultate. Dacă nu
specificat ca implicit este "~/.critcl/", sau, la generarea unui pachet (vezi
opțiune -pachet mai jos), la "~/.critcl/.", Când este specificat de mai multe ori
se folosește ultima valoare.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-curat Când este specificat, cache-ul rezultat este golit, adică toate fișierele și directoarele găsite
din interior sunt șterse) înainte de a începe compilarea.

Această opțiune este irelevantă atunci când se generează un pachet (vezi opțiunea -pachet mai jos) deoarece
acest mod începe cu un cache de rezultate unic și gol.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-config cale
Această opțiune specifică calea către un fișier de configurare personalizat, permițând utilizatorului
folosesc propriile specificații țintă. Dacă nu este specificată o implicită cablată
În schimb, este utilizată configurația încorporată în nucleul sistemului. Când este specificat multiplu
ori se utilizează ultima valoare.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

- depanare mod
Această opțiune activează compilarea cu depanare. Acceptă modurile de mai jos. Cand
specificat de mai multe ori se utilizează combinația tuturor modurilor.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

memorie Acest mod activează depanarea memoriei alocărilor făcute prin Tcl
nucleu.

simboluri
Acest mod activează construirea tuturor ".c" fișiere cu simboluri de depanare.

toate Acest mod le activează pe ambele memorie și simboluri.

-dezactivare nume
Această opțiune setează valoarea opțiunii de configurare a construirii personalizate nume la fals.
Este echivalent cu „-cu-nume 0“.

Informația este validată numai dacă unul dintre „.critcl" fișiere de intrare de fapt
definește și folosește o opțiune de configurare personalizată cu aceasta nume.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-permite nume
Această opțiune setează valoarea opțiunii de configurare a construirii personalizate nume la adevărat.
Este echivalent cu „-cu-nume 1“.

Informația este validată numai dacă unul dintre „.critcl" fișiere de intrare de fapt
definește și folosește o opțiune de configurare personalizată cu aceasta nume.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-forta Când se specifică compilarea se face întotdeauna, chiar dacă o bibliotecă partajată pentru fișier
există deja. Acest efect poate fi avut prin curățarea cache-ului (vezi mai sus) ca
bine, cu excepția faptului că este leneș în distrugerea fișierelor și nu va distruge fișierele
fără legătură cu cele pe care le construim.

Această opțiune este irelevantă atunci când se generează un pachet (vezi opțiunea -pachet mai jos) deoarece
acest mod începe cu un cache de rezultate unic și gol.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-Ajutor Această opțiune va determina sistemul să imprime un scurt ajutor despre sintaxa liniei de comandă
și opțiuni și apoi părăsiți aplicația.

-a pastra Această opțiune va face ca sistemul să păstreze „.c" fișiere generate de o rulare în fișierul
cache de rezultate. Când se generează un pachet (vezi opțiunea -pachet mai jos) acest lucru previne
ștergerea cache-ului unic de rezultate utilizat de rulare. Această opțiune este destinată
pentru depanarea critcl în sine, acolo unde poate fi necesar să se inspecteze
codul C generat.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-libdir cale
Această opțiune specifică calea sub care sunt generate pachetele prin opțiune -pachet
sunt salvati. De asemenea, specifică o cale de căutare în biblioteci, cum ar fi pentru -L. Când
specificat de mai multe ori se utilizează ultima valoare. Când nu este specificat deloc
Mod implicit, "lib", este folosit. Rețineți că aceasta este o cale relativă, plasând rezultatul în
directorul de lucru curent.

-includedir cale
Această opțiune specifică calea sub care sunt salvate anteturile de pachete generate.
De asemenea, specifică o cale de căutare în fișierele includ, cum ar fi pentru -I. Când este specificat
de mai multe ori ultima valoare este folosită ca destinație, totuși toate valorile anterioare
sunt păstrate pe calea de căutare include. Când nu este specificat deloc implicit,
"include", este folosit. Rețineți că aceasta este o cale relativă, plasând rezultatul în
directorul de lucru curent.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-pachet Modul implicit al aplicației este de a construi ".critcl" fișierele listate pe
linia de comandă și salvați rezultatele în memoria cache a rezultatelor. În esență, pre-umplerea
cache cu pachete importante, reducând timpul necesar utilizării acestora
pachete.

Această opțiune activează unul dintre celelalte moduri, generarea pachetului. În acest mod,
fișierele de intrare sunt procesate mai întâi ca de obicei, dar după aceea sunt incluse în pachet
o singură bibliotecă și fișiere suplimentare sunt generate pentru a face această bibliotecă utilizabilă ca
un pachet Tcl obișnuit.

Optiunea -ceai, vezi mai jos, invocă ultimul mod, generația TEA. Dacă ambele opțiuni,
de exemplu -pachet și -ceai sunt specificate ultimul specificat câștigă.

În acest mod opțiunile -curat și -forta sunt irelevante și ignorate. În contrast,
optiunea -libdir este relevant atât în ​​aceasta cât și -ceai Mod.

Când această opțiune este specificată, numele de bază al primului argument de fișier după
opțiuni este folosit ca nume al pachetului de generat. Dacă prelungirea acesteia
fișierul indică o bibliotecă partajată (".asa de"".sl"".dylib", și ". Dll") este, de asemenea
eliminat din setul de fișiere de intrare. A ".tcl" fișierul este păstrat ca parte a intrării. A
Se presupune că un singur fișier fără extensie are de fapt un „.tcl" extensie. A
fișier fără extensie, dar celelalte fișiere de intrare care urmează sunt tratate ca numele lui
o bibliotecă partajată propriu-zisă și eliminată din setul de fișiere de intrare.

Exemple:
=> Numele pachetului este: foo
=> Fișierul de intrare este: foo.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: bar.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: foo.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: bar.tcl

-spectacol Această opțiune, atunci când este specificată, va determina sistemul să imprime configurația
ținta aleasă să stdout și apoi ieși. Alegerea țintei poate fi influențată
prin optiune -ţintă (Vezi mai jos).

-arata tot
Această opțiune, atunci când este specificată, va determina sistemul să imprime întregul ales
fişier de configurare la stdout și apoi ieși. Alegerea fișierului de configurare poate
fi influențat prin opțiune -config (Vezi deasupra).

-ţintă nume
Această opțiune înlocuiește alegerea implicită a țintei de construcție cu alegerea utilizatorului.
Când este specificată de mai multe ori, se utilizează ultima valoare. Ținta numită trebuie să existe
în fișierul de configurare ales. Utilizați opțiunea -tinte (vezi mai jos) pentru a obține o listă cu
țintele acceptabile. Alegerea fișierului de configurare poate fi influențată prin
optiunea -config (Vezi deasupra).

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai jos).

-tinte
Această opțiune, atunci când este specificată, va determina sistemul să imprime lista tuturor celor cunoscute
ținte din fișierul de configurare ales la stdout și apoi ieși. Alegerea de
fișierul de configurare poate fi influențat prin opțiune -config (Vezi deasupra).

-ceai Similar cu opțiunea -pachet, cu excepția faptului că modul invocat nu generează binare,
ci o ierarhie de directoare care conține „.critcl", fișierele sale însoțitoare și a
Sistem de construcție asemănător TEA cu majoritatea codului de suport necesar (inclusiv copii
a pachetelor critcl).

Dacă ambele opțiuni, de exemplu -pachet și -ceai sunt specificate ultimul specificat câștigă.

În acest mod opțiunile -I, -L, -curat, -forta, -cache, -includedir, -permite,
-dezactivare, și -cu-FOO sunt irelevante și ignorate. În schimb, opțiunea -libdir
este relevant atât în ​​aceasta cât și -pachet Mod.

Când această opțiune este specificată, numele de bază al primului argument de fișier după
opțiuni este folosit ca nume al pachetului de generat. Dacă prelungirea acesteia
fișierul indică o bibliotecă partajată (".asa de"".sl"".dylib", și ". Dll") este, de asemenea
eliminat din setul de fișiere de intrare. A ".tcl" fișierul este păstrat ca parte a intrării. A
Se presupune că un singur fișier fără extensie are de fapt un „.tcl" extensie. A
fișier fără extensie, dar celelalte fișiere de intrare care urmează sunt tratate ca numele lui
o bibliotecă partajată propriu-zisă și eliminată din setul de fișiere de intrare.

Exemple:
=> Numele pachetului este: foo
=> Fișierul de intrare este: foo.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: bar.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: foo.tcl
=> Numele pachetului este: foo
=> Fișierul de intrare este: bar.tcl

-cu-nume valoare
Această opțiune setează valoarea opțiunii de configurare a construirii personalizate nume la valoare.

Informația este validată numai dacă unul dintre „.critcl" fișiere de intrare de fapt
definește și folosește o opțiune de configurare personalizată cu aceasta nume.

Această opțiune este irelevantă atunci când se generează un pachet TEA (vezi opțiunea -ceai de mai sus).

PACHET STRUCTURA


Pachetele generate de critcl au următoarea structură de bază:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- license.terms (opțional)
|
+- tcl (opțional)
| +-
|
+-
+-

notițe

[1] Fișierul „pkgIndex.tcl" este fișierul index al pachetului standard așteptat de Tcl
managementul pachetelor. Este obținut în timpul căutării pachetelor și declară
pachet la Tcl cu fișierele sale și cum să le gestionați.

[2] Fișierul „critcl-rt.tcl" este un fișier de ajutor care conține codul comun folosit de
"pkgIndex.tcl" pentru a-și îndeplini sarcinile.

[3] Fișierul „licență.termeni„ este opțional și apare numai dacă „.critcl" dosarul
pachetul este generat din comanda utilizată critcl::licenţă a declara pachetul
autor și licență.

[4] Toate fișierele declarate cu comanda critcl::tsources sunt introduse în subdirector
"TCL".

[5] Biblioteca partajată generată de critcl este introdusă într-un sub-platform specific
director.

Întreaga structură, și mai ales ultimul punct, ne permit să unim ulterior rezultatele
(pentru același pachet și versiune) pentru mai multe platforme țintă într-un singur director
structura fără conflict, prin simpla copiere a directoarelor de top una peste alta. The
numai fișierele care pot intra în conflict sunt în și "TCL" directoare, iar pentru acestea noi
știți că sunt identice între ținte. Rezultatul unei astfel de îmbinări ar arăta astfel:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- license.terms (opțional)
|
+- tcl (opțional)
| +-
|
+-
| +-
+-
| +-
+-
+-

CHANGES PENTRU VERSIUNE 2.1


[1] S-a rezolvat o eroare unde critcl::tsources a interpretat căile relative ca fiind relative la
directorul de lucru curent în loc de relativ la „.critcl" fișier folosind fișierul
comandă, așa cum fac toate celelalte comenzi de acest tip.

[2] S-au remediat elementele interne, împiedicând informațiile colectate pentru mai multe ".critcl" fișiere către
scurgere între ele. În special, critcl::tk nu este o opțiune de configurare globală
mai.

[3] S-a remediat comanda critcl::licenţă să fie o operație nulă în modul „compilare și rulare”,
în loc să arunce o eroare.

[4] S-a remediat interferența aplicației critcl cu memoria cache a rezultatelor „compilați și rulați”.
in -pachet mod prin utilizarea unui mod complet separat (și implicit tranzitoriu)
directorul pentru acel mod.

[5] S-a remediat o eroare în cazul în care modificările la un „.critcl" fișierul nu a dus la o reconstrucție pentru modul
"compilați și rulați". Toate comenzile API relevante asigură acum modificările UUID.

[6] S-a remediat o eroare în gestionarea backend-ului critcl::debug unde însoțitorul c-surselor de
la ".critcl" nu au fost compilate cu opțiuni de depanare, deși ".critcl" dosar
a fost.

[7] S-a remediat o eroare critcl::debug care a împiedicat recunoașterea modului „toate” atunci când era
nu primul argument al comenzii.

[8] S-a remediat o eroare în „preîncărcare.c" împiedicând compilarea acestuia pe platforme non-windows.

[9] S-a remediat o eroare de lungă durată în gestionarea calificatorilor spațiilor de nume din numele comenzii
argument de critcl::cproc și critcl::ccommand. Acum este posibil să specificați a
nume de comandă complet calificat, fără probleme.

[10] Extins/reprelucrat critcl::tsources a fi modul canonic de a declara ".tcl"
fișiere însoțitoare chiar și pentru modul „compilare și rulare”.

[11] Extins/reprelucrat critcl::tsources pentru a permite utilizarea unui „.critcl" fișier ca al său
Fișierul însoțitor Tcl.

[12] Extins critcl::cadru pentru a verifica intern pentru ținta de compilare OS X și pentru a ignora
declarația dacă nu este.

[13] Extins critcl::failed a fi apelabil de mai multe ori într-un ".critcl" dosarul
primul apel forțează construirea, dacă nu a fost deja făcută, pentru a obține rezultatul. Mai departe
apelurile returnează rezultatul memorat în cache al primului apel.

[14] S-a extins gestionarea variabilei de mediu CC în codul care determină
compilator de utilizat pentru a trata (adică elimina) căile către compilator, fișierul compilator
extensii și opțiuni ale compilatorului specificate după compilatorul însuși, lăsând doar
numele simplu al compilatorului.

[15] A extins codul care gestionează căutarea bibliotecilor preîncărcate pentru a imprima căile acestuia
căutat, facilitând depanarea unui eșec de căutare.

[16] O nouă comandă critcl::tcl poate fi folosit pentru a declara versiunea Tcl minim
necesare pentru a construi și a rula ".critcl" fișier și pachet. Implicit la 8.4 dacă nu
declarat. Critic extins pentru a avea stub-urile și antetele pentru toate Tcl 8.4, 8.5,
și 8.6.

[17] O nouă comandă critcl::load forțează construirea și încărcarea unui ".critcl" fișier. Acesta este
modalitatea oficială de a suprascrie schema implicită lazy-build-&-load-on-demand a critcl
pentru modul „compilare și rulare”.

notițe că după folosire critcl::load / critcl::failed într-un ".critcl„Fișierul nu este
este posibil să mai folosiți comenzile critcl în acel fișier. Procedând astfel, se va produce o eroare.

[18] A extins generația de pragma „#line” de utilizat info cadru (dacă este disponibil) la
furnizați compilatorului C numere exacte de linie în „.critcl" fișier pentru
raportarea avertismentelor și erorilor.

[19] Extins critcl::check cu logare pentru a ajuta la depanarea verificărilor în timpul construirii
mediu, plus un argument suplimentar opțional pentru a oferi etichetare.

[20] S-a adăugat o nouă comandă critcl::checklink care nu încearcă doar să verifice mediul înconjurător
prin compilarea codului, dar și posibilitatea de conectare a acestuia.

[21] S-a adăugat o nouă comandă critcl::msg pentru mesagerie, cum ar fi comanda critcl::error este pentru
raportarea erorii. De asemenea, acesta este un cârlig pe care utilizatorul pachetului îi este permis
trece peste. Implementarea implicită, utilizată de mod compila & alerga nu face nimic. The
implementare pentru modul genera pachet imprimă mesajul către stdout.

Utilizarea preconizată este pentru raportarea rezultatelor determinate de critcl::check și
critcl::checklink în timpul construcției, pentru a ajuta la depanare atunci când ceva nu merge bine
cu un cec.

[22] A expus procesarea argumentelor interne ale critcl::proc pentru utilizare de către avansat
utilizatorii. Noile comenzi sunt

[1] critcl::argnames

[2] critcl::argcnames

[3] critcl::argcsignature

[4] critcl::argvardecls

[5] critcl::argconversion

Vă rugăm să consultați secțiunea Avansat Embedded C Cod a critcl documentația pachetului pentru
Detalii.

[23] A extins pachetul critcl pentru a intercepta pachet furniza și înregistrați fișierul ->
maparea numelui pachetului. Plus alte modificări interne permit acum utilizarea numelui spațial
nume de pachete în timp ce încă folosiți numele de căi adecvate și funcția init.

[24] S-au eliminat comenzile neutilizate critcl::optimize și critcl::include.

[25] Scăpat -lib modul din aplicația critcl.

[26] S-au eliminat rămășițele de suport pentru Tcl 8.3 și anterioare.

CHANGES PENTRU VERSIUNE 3


[1] Comanda critcl::platformă a fost depreciat în versiunea 2.1, înlocuit de
critcl::targetplatform, dar păstrat pentru compatibilitate. Acum a fost eliminat.

[2] Comanda critcl::compilat a fost păstrat în versiunea 2.1 cu semantică în
contradicție cu el, pentru compatibilitate. Această contradicție a fost înlăturată,
modificarea semanticii vizibile a comenzii pentru a fi conformă cu numele acesteia.

[3] Modificarea la versiunea 3 a devenit necesară din cauza celor două vizibile incompatibile
modificările de mai sus.

[4] Am extins pachetul de aplicații cu o nouă opțiune care gestionează codul -ceai. Precizând
această opțiune invocă un mod special în care critcl generează un pachet TEA, adică wraps
intrarea într-o ierarhie de directoare și fișiere de suport care îi oferă TEA-
sistem de construcție asemănător.

Această nouă opțiune și -pachet, exclude-te reciproc. Dacă ambele sunt specificate, ultimul utilizat
opțiunea are prioritate.

Ierarhia directoarelor de pachete generate este în mare parte autonomă, dar nu complet.
Necesită nu numai o instalare funcțională a Tcl, ci și instalații funcționale
a pachetelor md5 și cmdline. Ambele sunt furnizate de Tclilib pachet.
Nu este necesar, dar se recomandă să fie instalat oricare dintre pachetele care pot
accelerați funcționarea lui md5, de exemplu cryptkit, tcllibc, Sau Trf.

[5] Am extins pachetul critcl cu o nouă comandă critcl::scan luând calea către a
".critcl", scanându-l static și returnând licența, versiunea, o listă de
fișierele sale însoțitoare, lista de API-uri importate și lista de personalizări specificate de dezvoltator
opțiuni de configurare. Aceste date sunt baza pentru ambalajul TEA descris
de mai sus.

Rețineți că acesta este un static scanează. În timp ce celelalte moduri de construire pot (trebuie) să execute
".critcl" să depună și să ia decizii specifice platformei cu privire la codul C asamblat,
fișiere însoțitoare, etc. modul TEA wrap nu este în măsură să creeze platforma-
decizii specifice. Trebuie să învelească tot ceea ce ar putea fi necesar
când construiesc efectiv. De aici scanarea statică. Aceasta are însă propriul set de
probleme, și anume incapacitatea de a înțelege orice construcție dinamică a însoțitorului
căile fișierelor, cel puțin pe cont propriu. Prin urmare:

[6] Am extins API-ul folosit de pachetele bazate pe critcl cu comanda critcl::detine. În timp ce
această comandă este ignorată de modurile obișnuite de construire descrise de scanerul static
de mai sus își ia argumentele ca numele fișierelor însoțitoare care trebuie împachetate
în pachetul TEA și nu ar putea fi calculat de scaner altfel, cum ar fi
din cauza căilor dinamice către critcl::tsources, critcl::csources, obținerea surselor
direct sau pur și simplu fiind fișiere de date adjuvante.

[7] Am extins API-ul folosit de pachetele bazate pe critcl cu comanda critcl::api pentru
gestionarea tabelelor stubs, fie că este vorba despre utilizarea lor, și/sau declararea și exportul.

Vă rugăm să consultați secțiunea Ciorne Tabel Management a critcl documentația pachetului pentru
Detalii.

[8] Am extins API-ul folosit de pachetele bazate pe critcl cu comanda critcl::userconfig
pentru gestionarea opțiunilor de configurare personalizată specificate de dezvoltator, fie ele
utilizare și/sau declarație.

Vă rugăm să consultați secțiunea pachet personalizat Construi Configuraţie a critcl documentația pachetului
pentru detalii.

[9] Am extins API-ul folosit de pachetele bazate pe critcl cu comenzile
critcl::descriere, critcl::rezumat, critcl::subiect, critcl::meta, și
critcl::buildrequirement pentru declararea metadatelor TEApot pentru/despre
pachet.

Vă rugăm să consultați secțiunea Pachet meta Date a critcl documentația pachetului pentru
Detalii.

CHANGES PENTRU VERSIUNE 3.0.1


[1] Remedieri de erori peste tot. Detaliat:

[2] S-a rezolvat înregistrarea cerințelor versiunii Tcl. Păstrați numele și versiunea pachetului
împreună, dezactivarea metadatelor generate și comanda de încărcare a pachetului generată.

[3] S-au remediat scripturile de compilare: când instalați sau împachetați pentru TEA, generați orice lipsă
directoare

[4] S-au modificat scripturile de compilare pentru a ieși corect din aplicație atunci când fereastra de
GUI-ul lor este închis prin butonul (X).

[5] S-a eliminat un 8.5-ism (wb deschis) care a intrat în scriptul principal de construcție.

[6] S-au modificat exemplele de scripturi de compilare pentru a separa rezultatul pentru diferite
exemple (și pachete) prin adăugarea de linii goale.

[7] exemplu de remediere a erorilor stack::c: Includeți declarații API pentru utilizare în fișierele însoțitoare.

[8] A extins documentația: a remarcat necesitatea unei instalări funcționale a unui C
compilator.

[9] Am extins definițiile și codul țintei Windows pentru a gestiona fișierele manifest utilizate
de mediile moderne de dezvoltare MS. Rețineți că acest cod se ocupă de ambele
posibilități, medii care utilizează manifeste și (vechi(er)) medii fără.

[10] Am extins definițiile și codul țintei Windows pe 64 de biți pentru a detecta automat necesitatea
biblioteca de ajutor „bufferoverflowU.lib” și reconfigurează compilarea și linkul
comandă în mod corespunzător. Presupunem că biblioteca trebuie să fie conectată atunci când este prezentă.
Acest lucru nu ar trebui să fie rău dacă biblioteca este prezentă, dar nu este necesară. Doar de prisos.
Căutăm biblioteca în căile specificate de variabila de mediu LIB.

CHANGES PENTRU VERSIUNE 3.0.2


[1] S-a rezolvat problema în modul de compilare și rulare în care comenzile introduse în auto_index nu sunt
găsit de comanda [necunoscută] a lui Tcl.

[2] S-a remediat o nepotrivire a cheilor de matrice care întrerupe utilizarea datelor clientului și a funcției de ștergere pentru
procedură. Raportat de Jos DeCoster, cu patch.

[3] Am implementat o opțiune de linie de comandă -L, un echivalent al opțiunii -I, doar pentru bibliotecă
căi de căutare.

[4] S-au rezolvat problemele 5 și 8 din github. Lucrul în jurul unei variabile lipsă ::errorInfo. Aceasta
ar trebui să fie întotdeauna prezent, totuși par să existe revizuiri ale Tcl în jurul cărora
încălca această presupunere.

CHANGES PENTRU VERSIUNE 3.0.3


[1] S-au rezolvat problemele 5 și 8 din github, pentru exemplul de scripturi build.tcl. Lucrul în jurul unui
variabila lipsă ::errorInfo. Ar trebui să fie întotdeauna prezent, oricum pare să existe
revizuiri ale Tcl în jurul cărora încalcă această presupunere.

CHANGES PENTRU VERSIUNE 3.0.4


[1] S-a rezolvat generarea numelui init al pachetului atunci când se citește codul primit
stdin și nu are o cale adecvată.

[2] S-a rezolvat problema github 11. Acum se utilizează /LIBPATH în loc de -L pe Windows (libinclude
setare de configurare).

[3] Critcl extins pentru a gestiona formatul -l:path al opțiunilor -l. GNU ld 2.22+ se ocupă de asta
căutând calea așa cum este. Bine când se specifică biblioteci statice, ca simplu -l
caută biblioteci partajate de preferință față de cele statice. critcl se ocupă acum, ca
GNU ld-urile mai vechi nu o înțeleg, nici diferiții linkeri specifici furnizorului.

[4] S-a rezolvat problema github #12. Critcl determină acum versiunea MSVC în uz și utilizări
aceasta pentru a comuta între diferitele opțiuni de depanare a legăturii. Manipularea simplificată a
bufferoverflowU.lib, de asemenea, folosind același mecanism și prăbușindu-le pe cele două
secțiunile de configurații pe care le-am avut înapoi într-una singură.

[5] A reelaborat inserarea de pragma #line în codul C generat pentru a evita
limitări ale argumentului numărului de linie impuse de diferiți compilatori și să fie mai mult
exacte.

[6] Procesarea argumentelor modificată. Opțiunea -libdir implică acum și -L pentru argumentul său.

[7] Gestionarea extinsă a opțiunii -show (critcl::showconfig) pentru a enumera calea
fișierul de configurare din care provin datele. Bun pentru configurația de depanare
prelucrare.

[8] Am extins scriptul de compilare cu ținte pentru a regenera documentația încorporată,
și diagrame și pentru a genera o versiune.

CHANGES PENTRU VERSIUNE 3.0.5


[1] S-a remediat o eroare în noul cod pentru pragma #line declanșată la specificarea codului C
fără spații albe îndreptate.

[2] S-a extins documentația pentru a avea pagini de manual pentru licență, regăsire sursă,
ghiduri de instalare și pentru dezvoltatori.

CHANGES PENTRU VERSIUNE 3.0.6


[1] S-a rezolvat problema github 10. Aplicația critcl oferă acum un cod de ieșire adecvat (1)
în cazul eșecului de construcție, în loc să indice întotdeauna succesul (starea 0).

[2] S-a rezolvat problema github 13. Gestionarea bufferoverflowU.lib pentru versiunile de versiuni a fost
incompatibil cu gestionarea versiunilor de depanare. Acum este tratat identic
(condițional) în ambele cazuri.

[3] Curățarea documentației, în principal în ghidul de instalare, și în README.md prezentat de
github

CHANGES PENTRU VERSIUNE 3.0.7


[1] S-a remediat codul generat de comandă critcl::c++. Codul emis a înmânat un non-
tabel de șiruri static la Tcl_GetIndexFromObj, cu încălcarea contractului, care
necesită ca tabelul să aibă o adresă fixă. Aceasta a fost o zdrobire de memorie care aștept
întâmpla. Mulțumim lui Brian Griffin pentru că ne-a semnalat problema generală.

CHANGES PENTRU VERSIUNE 3.1


[1] S-a adăugat un nou pachet de nivel superior critcl::iassoc.

Acest pachet simplifică crearea de cod care asociază datele cu un interpret
prin Tcl's Tcl_(Get|Set)AssocData() API-uri. Utilizatorul se poate concentra asupra datelor sale în timp ce
tot codul C standard necesar pentru a sprijini acest lucru este generat de pachet.

Acest pachet folosește câteva dintre noile caracteristici care au fost adăugate la bază critcl
pachet, vezi mai jos.

[2] S-a adăugat pachetul de nivel superior critcl::class.

Acest pachet simplifică crearea de obiecte de nivel C cu clasă și instanță
comenzi. Utilizatorul poate scrie o definiție de clasă cu variabile de clasă și de instanță
și -metode similare cu o clasă TclOO, cu tot codul C boilerplate necesar pentru
susține acest lucru generat de pachet.

Acest pachet folosește câteva dintre noile caracteristici care au fost adăugate la bază critcl
pachet, vezi mai jos.

[3] S-a extins API-ul pentru gestionarea metadatelor TEApot. S-a adăugat comanda critcl::meta? la
interogați informațiile stocate. Utilizarea principală prevăzută în prezent este recuperarea
numele pachetului curent prin comenzi de utilitate, pentru utilizare în numele construite. Acest
anumite informații sunt întotdeauna disponibile datorită scanării statice a pachetului
fișier la executarea primei comenzi critcl.

Noile pachete critcl::iassoc și critcl::class (vezi mai sus) sunt utilizatori ai acestuia
comanda.

[4] Am extins API-ul cu o comandă, critcl::name2c, expunând procesul de conversie
un nume Tcl în numele de bază, spațiu de nume și spațiu de nume C. Acest lucru permite un nivel superior
generatoare de cod pentru a genera același tip de identificatori C ca critcl însăși.

Noul pachet critcl::class (vezi mai sus) este un utilizator al acestei comenzi.

[5] Am extins API-ul cu o comandă, critcl::sursa, executând comenzile critcl găsite în
un fișier separat în contextul fișierului curent. Acest lucru permite o gestionare mai ușoară
de corpuri mai mari de cod, deoarece permite utilizatorului să împartă astfel de coduri în mai ușor
digerați bucăți mai mici fără a provoca generarea de pachete multiple.

[6] Legat de articolul anterior, API-ul a fost extins cu comenzi pentru a devia colecția
a codului C generat în memorie. Acest lucru facilitează utilizarea comenzilor pentru
cod C încorporat în generatoarele de cod de nivel superior.

Vezi secțiunea Avansat: diversiuni pentru detalii despre comenzile furnizate.

Noul pachet critcl::class (vezi mai sus) este un utilizator al acestor facilități.

[7] Am extins API-ul cu comenzi care ajută dezvoltatorii să genereze C-ul adecvat
#linia directive. Acest lucru permite generatoarelor de cod de nivel superior să genereze și să insereze
propriile directive, asigurându-se că erorile de compilare din codul lor sunt corecte
atribuite.

Vezi secțiunea Avansat: Locație administrare pentru detalii despre comenzile furnizate.

Noile pachete critcl::iassoc și critcl::class (vezi mai sus) sunt utilizatori ai acestora
facilităţi.

[8] Am extins API-ul cu comenzi, oferind utilizatorilor posibilitatea de a defini argumente personalizate
și tipuri de rezultate pentru ::critcl::cproc.

Vezi secțiunea Avansat: Extinderea cproc pentru detalii despre comenzile furnizate.

CHANGES PENTRU VERSIUNE 3.1.1


[1] Remedieri de erori peste tot. Detaliat:

[2] S-a remediat generarea de erori #args greșite pentru critcl::cproc și cod derivat
(critcl::class metode bazate pe cproc). Folosiți NULL dacă nu există argumente și luați
se ține cont de compensare.

[3] S-a remediat gestionarea numelor pachetelor prin critcl::class. Am uitat că pot conține
separatori de spații de nume. A trecut la versiunea 1.0.1.

[4] Extins a critcl::class mesaj de eroare generat la crearea instanței pentru claritate.
A trecut la versiunea 1.0.2.

CHANGES PENTRU VERSIUNE 3.1.2


[1] Îmbunătățire. Detaliat:

[2] Extins critcl::cproc pentru a putea gestiona argumente opționale, într-un mod limitat.
Acesta este disponibil automat pentru critcl::class metode bazate pe cproc, de asemenea.

[3] Remediere erori în lassign emulare pentru Tcl 8.4. Setați corect variabilele neutilizate la
Șir gol. Versiune depășită a pachetului de emulare lassign84 la 1.0.1.

CHANGES PENTRU VERSIUNE 3.1.3


[1] Îmbunătățire. Detaliat:

[2] S-a adăugat un nou argument de tip „pstring”, pentru „Pascal String”, un șir numărat, adică un
combinație de indicator și lungime de șir.

[3] S-au adăugat noi metode critcl::argtypesupport și ::critcl::argsupport să definească și să utilizeze
cod suplimentar de suport pentru un tip de argument, folosit aici de „pstring” de mai sus pentru
definiți structura necesară.

[4] Semi-remedieri de erori în pachete critcl::class și critcl::iassoc. Pragmas pentru AS
scanner de metadate pentru a se asigura că fișierele șablon fac parte din pachet.
Versiunile au crescut la 1.0.4 și, respectiv, 1.0.1.

CHANGES PENTRU VERSIUNE 3.1.4


[1] Remediere erori în pachet critcl::class. Generați un câmp inactiv în structura clasei dacă
clasa nu are variabile de clasă. Fără această schimbare structura ar fi goală,
și un număr de compilatoare nu sunt capabili să gestioneze un astfel de tip.

[2] S-a remediat o greșeală de tipar care a rupt configurația win64.

[3] S-a rezolvat problema #16, o greșeală de tipar în documentația comenzii critcl::class.

CHANGES PENTRU VERSIUNE 3.1.5


[1] S-a rezolvat problema #19. A făcut expresia regulată extragând numărul versiunii MSVC
mai general pentru a-l face să funcționeze pe sistemele în limba germană. Poate că asta trebuie să fie
revizuit în viitor, pentru alte locații Windows.

[2] S-a rezolvat problema #20. A făcut ca opțiunea -tea să funcționeze pe Windows, cel puțin într-o emulație Unix
mediu precum msys/mingw.

CHANGES PENTRU VERSIUNE 3.1.6


[1] S-a rezolvat problema #21. În timp ce definiția multiplă a variabilelor pointerului tabelului stub a fost
ok cu toate linkurile C văzute până acum linkerii C++ nu le-a plăcut deloc.
Am reelaborat codul pentru a ne asigura că acest set de variabile este generat o singură dată, în
învelișul în jurul tuturor pieselor de asamblat.

[2] S-a rezolvat problema #22, gestionarea argumentelor identificatorului comenzii
critcl::ccommand, critcl::cproc, și critcl::cdata. Acum permitem în mod corespunzător orice Tcl
identificator și generați identificatori C interni corespunzători din acestea.

Ca parte a acesteia, semnătura de comandă critcl::name2c schimbat. Comanda acum
furnizează o listă de patru valori în loc de trei. Noua valoare a fost adăugată la
Sfârşit.

Adaptarea în continuare a implementării pachetului critcl::class, un utilizator al
critcl::name2c. Acest pachet este acum la versiunea 1.0.6 și necesită critcl 3.1.6

În cele din urmă, s-a remediat gestionarea greșită a opțiunii -cname in critcl::ccommand, și
critcl::cproc.

[3] S-a rezolvat problema #23.

CHANGES PENTRU VERSIUNE 3.1.7


[1] S-a rezolvat problema #24. Extrageți și afișați necondiționat avertismentele compilatorului găsite în fișierul
jurnal de construire. Împiedică utilizatorii să lipsească avertismente care, deși nu provoacă construirea
a eșua, poate indica încă probleme.

[2] Funcție nouă. Cârlig de ieșire. Toate ieșirile utilizatorului care nu sunt legate de mesaje sunt acum direcționate prin
comandă critcl::print, iar utilizatorilor li se permite să îl înlocuiască atunci când folosesc critcl
aplicație-ca-pachet.

[3] Funcție nouă, de Ashok P. Nadkarni. Configurațiile platformei pot moșteni valori de la
configurații definite înaintea lor.

CHANGES PENTRU VERSIUNE 3.1.8


[1] S-a rezolvat o problemă cu indici de pachete generați pentru Tcl 8.4. Alăturați-vă listei de comenzi
cu punct și virgulă, nu nouă linie.

[2] S-a remediat problema #26 care a adus la iveală cazuri de utilizare pe care uitasem să le iau în considerare în timpul remedierii
bug #21 (vezi critcl 3.1.6).

CHANGES PENTRU VERSIUNE 3.1.9


[1] S-a rezolvat problema #27. S-au adăugat definiții lipsă ale platformei pentru diferite Linux alternative și
Țintele OS X.

[2] S-a rezolvat problema #28. S-au adăugat steaguri -mXX lipsă pentru conectarea la Linux-{32,64}-*
ținte.

[3] S-a rezolvat problema #29. A înlocuit utilizarea informațiilor brute „cheaders” în procesare
de „cdefines” cu propriul include directive derivate din acesta.

[4] S-a rezolvat problema din spatele cererii de extragere respinse #30 de către Andrew Shadura. Dinamic
extrageți declarațiile variabilelor stub din fișierele antet Tcl și generați
definiții de variabile potrivite pentru utilizarea în codul pachetului. Codul generat va
acum să fie întotdeauna în concordanță cu anteturile, chiar și atunci când propria copie a acestora este de către critcl
înlocuit cu antete de sistem.

[5] S-a rezolvat problema #31. Patch acceptat de Andrew Shadura, cu modificari (comentarii), pt
integrare mai ușoară a critcl cu sistemele de pachete de sistem de operare, înlocuind copiile lui critcl
Antete Tcl cu propriile lor.

[6] S-a rezolvat problema #32. Solicitare de extragere fuzionată de Andrew Shadura. Diverse greșeli de scriere
documentație și comentarii.

[7] S-a rezolvat problema #33. Gestionați mai bine fișierele care încep cu un punct.

AUTORI


Jean Claude Wippler, Steve Landers, Andreas Kupries

Utilizați critcl online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    Phaser
    Phaser
    Phaser este o deschidere rapidă, gratuită și distractivă
    cadru de joc HTML5 sursă care oferă
    Redare WebGL și Canvas
    browsere web desktop și mobile. Jocuri
    poate fi co...
    Descărcați Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL este un motor de joc pentru creare
    versiuni electronice ale plăcii tradiționale
    și jocuri de cărți. Oferă suport pentru
    redarea și interacțiunea pieselor de joc,
    și ...
    Descărcați VASSAL Engine
  • 3
    OpenPDF - Furk of iText
    OpenPDF - Furk of iText
    OpenPDF este o bibliotecă Java pentru creare
    și editarea fișierelor PDF cu un LGPL și
    Licență open source MPL. OpenPDF este
    Succesorul LGPL/MPL open source al iText,
    o ...
    Descărcați OpenPDF - Furk of iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistem pentru automatizare
    Analize Geoștiințifice - este un Geografic
    Sistemul informatic (GIS) software cu
    capacități imense pentru geodate
    procesare și ana...
    Descărcați SAGA GIS
  • 5
    Caseta de instrumente pentru Java/JTOpen
    Caseta de instrumente pentru Java/JTOpen
    IBM Toolbox for Java / JTOpen este un
    biblioteca de clase Java care acceptă
    programare client/server și internet
    modele către un sistem care rulează OS/400,
    i5/OS, o...
    Descărcați Toolbox pentru Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (sau D3 pentru documente bazate pe date)
    este o bibliotecă JavaScript care vă permite
    pentru a produce date dinamice, interactive
    vizualizări în browsere web. Cu D3
    tu...
    Descărcați D3.js
  • Mai mult »

Comenzi Linux

  • 1
    abidiff
    abidiff
    abidiff - comparați ABI-urile fișierelor ELF
    abidiff compară aplicația binară
    Interfețe (ABI) a două biblioteci partajate
    în format ELF. Emite un sens
    repor ...
    Fugi abidiff
  • 2
    abidw
    abidw
    abidw - serializați ABI-ul unui ELF
    fișierul abidw citește o bibliotecă partajată în ELF
    format și emite o reprezentare XML
    a ABI-ului său la ieșirea standard. The
    emis...
    Run abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversie bibliografie
    utilitati...
    Rulați copac2xml
  • 4
    Copt
    Copt
    copt - optimizator peephole SYSNOPIS:
    fișier copt.. DESCRIERE: copt este a
    optimizator de uz general pentru vizor. Aceasta
    citește codul din intrarea sa standard și
    scrie un...
    Fugi copt
  • 5
    gather_stx_titles
    gather_stx_titles
    gather_stx_titles - aduna titlul
    declarații din documentele Stx...
    Rulați gather_stx_titles
  • 6
    gatling-banc
    gatling-banc
    bench - http benchmark...
    Alerga gatling-bench
  • Mai mult »

Ad