EngelsFransSpaans

Ad


OnWorks-favicon

critcl - Online in de cloud

Voer critcl uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdrachtcritcl die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


critcl - CriTcl-toepassing

KORTE INHOUD


kritiek ?optie...? ?filet...?

_________________________________________________________________

PRODUCTBESCHRIJVING


Welkom de C Runtime In Tcl, CriTcl kortom, een systeem om C-uitbreidingspakketten te bouwen
voor Tcl on the fly, vanuit C-code ingebed in Tcl-scripts, voor iedereen die dat wil maken
hun code gaat sneller.

Dit document is de referentiemanpagina voor de kritiek commando. Het beoogde publiek is
mensen die pakketten moeten bouwen met behulp van kritiek voor inzet. Schrijvers van pakketten met
ingebedde C-code kan dit document negeren. Als u behoefte heeft aan overzicht van het geheel
systeem, lees dan alstublieft de Introductie Naar CriTcl.

Deze applicatie bevindt zich in de applicatielaag van CriTcl.

*================*
|Toepassingen |
| kritiek |
| critcl::app |
*================*

+----------------+
|Kernpakketten |
| kritiek |
| critcl::gebruik |
+----------------+

+----------------+
|Ondersteuningspakketten|
| stompjes::* |
| md5, platform |
| ... |
+----------------+

De applicatie ondersteunt de volgende algemene opdrachtregel:

kritiek ?optie...? ?filet...?
De exacte reeks ondersteunde opties, hun betekenis en interactie worden gedetailleerd beschreven in
sectie Aanvraag Opties onderstaand. Zie sectie voor een grotere reeks voorbeelden
"Critcl-pakketten bouwen" in het document over gebruik CriTcl.

TOEPASSING OPTIES


De volgende opties worden begrepen

-v

--versie
Deze opties zorgen ervoor dat critcl zijn versie afdrukt stdout en dan uitstappen.

-I pad
Deze optie specificeert een extra globaal include-pad dat moet worden gebruikt tijdens het compileren
van ".critcl" bestanden. Alle waarden worden gebruikt als dit meerdere keren wordt opgegeven.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-L pad
Deze optie specificeert een extra globaal zoekpad voor de bibliotheek dat moet worden gebruikt tijdens het koppelen
van ".critcl" bestanden. Alle waarden worden gebruikt als dit meerdere keren wordt opgegeven.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-cache pad
Deze optie specificeert het pad naar de map die als resultaatcache moet worden gebruikt. Als niet
gespecificeerd dat het standaard "~/.critcl/", of, bij het genereren van een pakket (zie
optie -pk hieronder), naar "~/.critcl/.", Wanneer meerdere keren opgegeven de
laatste waarde wordt gebruikt.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-schoon Wanneer u dit specificeert, wordt de resultatencache geleegd, dat wil zeggen dat alle bestanden en mappen zijn gevonden
binnen worden verwijderd) voordat het compileren begint.

Deze optie is niet relevant bij het genereren van een pakket (zie optie -pk hieronder) omdat
deze modus begint met een unieke en lege resultatencache.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-config pad
Deze optie specificeert het pad naar een aangepast configuratiebestand, zodat de gebruiker dit kan doen
gebruiken hun eigen doelspecificaties. Indien niet gespecificeerd, is er een bedrade standaardwaarde
In plaats daarvan wordt een configuratie gebruikt die is ingebed in de systeemkern. Indien meerdere opgegeven
keer dat de laatste waarde wordt gebruikt.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-debuggen mode
Deze optie activeert compilatie met foutopsporing. Het accepteert de onderstaande modi. Wanneer
meerdere keren opgegeven, wordt de combinatie van alle modi gebruikt.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

geheugen Deze modus activeert geheugenfoutopsporing van toewijzingen die via de Tcl zijn gedaan
kern.

symbolen
Deze modus activeert het bouwen van alle ".c"-bestanden met foutopsporingssymbolen.

allen Deze modus activeert beide geheugen en symbolen.

-uitzetten naam
Met deze optie wordt de waarde van de aangepaste build-configuratieoptie ingesteld naam naar vals.
Het is gelijk aan "-met-naam 0".

De informatie wordt alleen gevalideerd als een van de ".critcl"invoerbestanden eigenlijk
definieert en gebruikt daarbij een op maat gemaakte configuratieoptie naam.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-inschakelen naam
Met deze optie wordt de waarde van de aangepaste build-configuratieoptie ingesteld naam naar waar.
Het is gelijk aan "-met-naam 1".

De informatie wordt alleen gevalideerd als een van de ".critcl"invoerbestanden eigenlijk
definieert en gebruikt daarbij een op maat gemaakte configuratieoptie naam.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-dwingen Wanneer opgegeven, wordt compilatie altijd uitgevoerd, zelfs als er een gedeelde bibliotheek voor het bestand is
bestaat al. Dit effect kan worden bereikt door de cache op te schonen (zie hierboven).
nou ja, behalve dat het lui is in het vernietigen van bestanden en geen bestanden zal vernietigen
die niets te maken hebben met de projecten die we aan het bouwen zijn.

Deze optie is niet relevant bij het genereren van een pakket (zie optie -pk hieronder) omdat
deze modus begint met een unieke en lege resultatencache.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-Help Deze optie zorgt ervoor dat het systeem een ​​korte hulp afdrukt over de syntaxis van de opdrachtregel
en opties en sluit vervolgens de toepassing af.

-houden Deze optie zorgt ervoor dat het systeem de ".c"-bestanden gegenereerd door een run in de
resultaatcache. Bij het genereren van een pakket (zie optie -pk hieronder) voorkomt dit ook
het verwijderen van de unieke resultaatcache die door de run wordt gebruikt. Deze optie is bedoeld
voor het debuggen van kritiek zelf, waar het nodig kan zijn om de installatie te inspecteren
gegenereerde C-code.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-libdir pad
Deze optie specificeert het pad waaronder de pakketten worden gegenereerd via optie -pk
zijn gered. Het specificeert ook een pad waarin bibliotheken kunnen worden doorzocht, zoals for -L. Wanneer
meerdere keren opgegeven, wordt de laatste waarde gebruikt. Wanneer dit helemaal niet is gespecificeerd, wordt de
standaard, "lib", wordt gebruikt. Merk op dat dit een relatief pad is, waarin het resultaat wordt geplaatst
de huidige werkmap.

-inbegrependir pad
Deze optie specificeert het pad waaronder eventuele gegenereerde pakketkoppen worden opgeslagen.
Het specificeert ook een pad waarnaar moet worden gezocht, inclusief bestanden, zoals voor -I. Wanneer gespecificeerd
meerdere keren wordt de laatste waarde als bestemming gebruikt, maar alle voorgaande waarden
worden op het include-zoekpad gehouden. Als de standaardwaarde helemaal niet is opgegeven,
"omvatten", wordt gebruikt. Merk op dat dit een relatief pad is, waarbij het resultaat in de
huidige werkmap.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-pk De standaardmodus van de applicatie is het bouwen van de ".critcl"-bestanden vermeld op de
opdrachtregel en sla de resultaten op in de resultatencache. In wezen vooraf invullen van de
cache met belangrijke pakketten, waardoor er minder tijd nodig is om deze te gebruiken
pakketjes.

Deze optie activeert een van de andere modi, pakketgeneratie. In deze modus wordt de
invoerbestanden worden zoals gewoonlijk eerst verwerkt, maar daarna gebundeld
één enkele bibliotheek en er worden extra bestanden gegenereerd om deze bibliotheek bruikbaar te maken als
een regulier Tcl-pakket.

De optie -thee, zie hieronder, roept de laatste modus op, TEA-generatie. Als beide opties
dat wil zeggen -pk en -thee zijn opgegeven, wint de laatst opgegeven winst.

In deze modus zijn de opties -schoon en -dwingen zijn niet relevant en worden genegeerd. In tegenstelling tot,
de optie -libdir is relevant in zowel dit als -thee modus.

Wanneer deze optie is opgegeven, wordt de basisnaam van het eerste bestandsargument na de
opties wordt gebruikt als de naam van het te genereren pakket. Als de verlenging daarvan
bestand geeft een gedeelde bibliotheek aan (".zo''.sl''.dylib"En". Dll") het is ook
verwijderd uit de set invoerbestanden. A ".tcl"-bestand wordt bewaard als onderdeel van de invoer. A
Er wordt aangenomen dat één bestand zonder extensie daadwerkelijk een ".tcl" extensie. A
bestand zonder extensie, maar andere invoerbestanden die volgen, worden behandeld als de naam van
een eigenlijke gedeelde bibliotheek, en verwijderd uit de set invoerbestanden.

Voorbeelden:
=> Pakketnaam is: foo
=> Invoerbestand is: foo.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: bar.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: foo.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: bar.tcl

-laten zien Als deze optie is opgegeven, zorgt het systeem ervoor dat de configuratie wordt afgedrukt
het gekozen doel stdout en dan uitgaan. De keuze van het doel kan worden beïnvloed
via de optie -doelwit (zie hieronder).

-toon alles
Wanneer deze optie is opgegeven, zorgt het systeem ervoor dat het gehele gekozen document wordt afgedrukt
configuratiebestand naar stdout en dan uitgaan. De keuze van het configuratiebestand kan
via de optie beïnvloed worden -config (zie hierboven).

-doelwit naam
Deze optie overschrijft de standaardkeuze van het bouwdoel met de keuze van de gebruiker.
Als u meerdere keren opgeeft, wordt de laatste waarde gebruikt. Het genoemde doel moet bestaan
in het gekozen configuratiebestand. Gebruik optie -doelen (zie hieronder) voor een lijst met
de aanvaardbare doelstellingen. De keuze van het configuratiebestand kan worden beïnvloed via
de optie -config (zie hierboven).

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee hieronder).

-doelen
Als deze optie wordt opgegeven, zorgt het systeem ervoor dat de lijst met alle bekende gegevens wordt afgedrukt
targets uit het gekozen configuratiebestand naar stdout en dan uitgaan. De keuze van
configuratiebestand kan via de optie worden beïnvloed -config (zie hierboven).

-thee Vergelijkbaar met optie -pk, behalve dat de aangeroepen modus geen binaire bestanden genereert,
maar een directoryhiërarchie met daarin de ".critcl"-bestand, de begeleidende bestanden en a
TEA-achtig bouwsysteem met de meeste benodigde ondersteuningscode (inclusief kopieën
van de critcl-pakketten).

Als beide opties, bijv -pk en -thee zijn opgegeven, wint de laatst opgegeven winst.

In deze modus zijn de opties -I, -L, -schoon, -dwingen, -cache, -inbegrependir, -inschakelen,
-uitzetten en -met-FOO zijn niet relevant en worden genegeerd. De optie daarentegen -libdir
is relevant in zowel dit als -pk modus.

Wanneer deze optie is opgegeven, wordt de basisnaam van het eerste bestandsargument na de
opties wordt gebruikt als de naam van het te genereren pakket. Als de verlenging daarvan
bestand geeft een gedeelde bibliotheek aan (".zo''.sl''.dylib"En". Dll") het is ook
verwijderd uit de set invoerbestanden. A ".tcl"-bestand wordt bewaard als onderdeel van de invoer. A
Er wordt aangenomen dat één bestand zonder extensie daadwerkelijk een ".tcl" extensie. A
bestand zonder extensie, maar andere invoerbestanden die volgen, worden behandeld als de naam van
een eigenlijke gedeelde bibliotheek, en verwijderd uit de set invoerbestanden.

Voorbeelden:
=> Pakketnaam is: foo
=> Invoerbestand is: foo.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: bar.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: foo.tcl
=> Pakketnaam is: foo
=> Invoerbestand is: bar.tcl

-met-naam waarde
Met deze optie wordt de waarde van de aangepaste build-configuratieoptie ingesteld naam naar waarde.

De informatie wordt alleen gevalideerd als een van de ".critcl"invoerbestanden eigenlijk
definieert en gebruikt daarbij een op maat gemaakte configuratieoptie naam.

Deze optie is niet relevant bij het genereren van een TEA-pakket (zie optie -thee bovenstaande).

PAKKET STRUCTUUR


Door critcl gegenereerde pakketten hebben de volgende basisstructuur:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- licentievoorwaarden (optioneel)
|
+- tcl (optioneel)
| +-
|
+-
+-

Opmerkingen

[1] Het bestand "pkgIndex.tcl" is het standaardpakketindexbestand dat door Tcl's wordt verwacht
pakketbeheer. Het wordt verkregen tijdens een zoektocht naar pakketten en verklaart de
package naar Tcl met zijn bestanden, en hoe je ermee om moet gaan.

[2] Het bestand "critcl-rt.tcl" is een helperbestand dat de algemene code bevat die wordt gebruikt door
"pkgIndex.tcl"om zijn taken uit te voeren.

[3] Het bestand "Licentievoorwaarden" is optioneel en verschijnt alleen als de ".critcl" bestand de
pakket is gegenereerd op basis van de opdracht critcl::licentie pakket aan te geven
auteur en licentie.

[4] Alle bestanden die met het commando zijn gedeclareerd critcl::tbronnen worden in de submap geplaatst
"tcl".

[5] De door critcl gegenereerde gedeelde bibliotheek wordt in een platformspecifieke submap geplaatst
directory.

De hele structuur, en vooral het laatste punt, stelt ons in staat de resultaten later samen te voegen
(voor hetzelfde pakket en dezelfde versie) voor meerdere doelplatforms in één map
structuur zonder conflicten, door simpelweg de bovenste mappen over elkaar heen te kopiëren. De
alleen bestanden die conflicten kunnen opleveren, bevinden zich in de En "tcl" directory's, en hiervoor wij
weet dat ze identiek zijn voor alle doelen. Het resultaat van een dergelijke fusie zou er als volgt uitzien:

+- pkgIndex.tcl
+- critcl-rt.tcl
+- licentievoorwaarden (optioneel)
|
+- tcl (optioneel)
| +-
|
+-
| +-
+-
| +-
+-
+-

WIJZIGINGEN VOOR VERSIE 2.1


[1] Bug opgelost waar critcl::tbronnen interpreteerde relatieve paden als relatief ten opzichte van de
huidige werkmap in plaats van relatief ten opzichte van de ".critcl"-bestand met behulp van de
commando, zoals alle andere commando's van dit type dat doen.

[2] Vaste internals, waardoor informatie wordt verzameld voor meerdere ".critcl" bestanden naar
lekt ertussen. Opmerkelijk, kritiekcl::tk is geen globale configuratieoptie
meer.

[3] De opdracht is opgelost critcl::licentie een nulbewerking zijn in de modus "compileren en uitvoeren",
in plaats van een fout te genereren.

[4] De interferentie van de critcl-applicatie met de "compile & run"-resultaatcache is opgelost
in -pk modus door een geheel afzonderlijke (en standaard tijdelijke)
map voor die modus.

[5] Bug opgelost waarbij wijzigingen in een ".critcl"-bestand heeft niet geresulteerd in een herbouw voor de modus
"compileren en uitvoeren". Alle relevante API-opdrachten zorgen nu voor UUID-wijzigingen.

[6] Bug opgelost in de backend-afhandeling van critcl::debuggen waar de begeleidende c-bronnen van
een ".critcl" bestand is niet gecompileerd met foutopsporingsopties, hoewel de ".critcl" het dossier
was.

[7] Bug opgelost critcl::debuggen wat de herkenning van de modus "alles" verhinderde toen dat het geval was
niet het eerste argument voor de opdracht.

[8] Bug opgelost in "voorladen.c" waardoor de compilatie ervan op niet-Windows-platforms wordt voorkomen.

[9] Een al lang bestaande bug opgelost bij de verwerking van naamruimtekwalificaties in de opdrachtnaam
argument van critcl::cproc en critcl::commando. Het is nu mogelijk om een
volledig gekwalificeerde opdrachtnaam zonder problemen.

[10] Uitgebreid/herwerkt critcl::tbronnen om de canonieke manier te zijn om te verklaren ".tcl"
begeleidende bestanden, zelfs voor de modus "compileren en uitvoeren".

[11] Uitgebreid/herwerkt critcl::tbronnen om het gebruik van een ".critcl"bestand als zijn eigen bestand
Tcl begeleidend bestand.

[12] Uitgebreid critcl::raamwerk om intern te controleren op het OS X-builddoel, en om te negeren
de verklaring als dit niet het geval is.

[13] Uitgebreid critcl::mislukt meer dan eens per keer opvraagbaar zijn ".critcl" bestand. De
De eerste oproep dwingt de build, als deze nog niet is voltooid, om het resultaat te krijgen. Verder
oproepen retourneren het in de cache opgeslagen resultaat van de eerste oproep.

[14] De verwerking van omgevingsvariabele CC uitgebreid in de code die de
compiler om te gebruiken voor het omgaan met (dwz verwijderen) paden naar de compiler, compilerbestand
extensies en compileropties die na de compiler zelf zijn gespecificeerd en alleen overblijven
de kale naam van de compiler.

[15] De code voor het zoeken naar vooraf geladen bibliotheken is uitgebreid om de paden ernaar af te drukken
gezocht, waardoor het opsporen van fouten bij een mislukte zoekactie eenvoudiger wordt.

[16] Een nieuw commando kritiekcl::tcl kan worden gebruikt om de versie van Tcl minimaal te declareren
nodig om de ".critcl" bestand en pakket. Standaard ingesteld op 8.4, zo niet
verklaard. Uitgebreide kritiek om de stubs en headers te hebben voor alle Tcl 8.4, 8.5,
en 8.6.

[17] Een nieuw commando critcl::laden dwingt de opbouw en belasting van een ".critcl" bestand. Dit is
de officiële manier om het standaard lazy-build-&-load-on-demand-schema van critcl te omzeilen
voor modus "compileren en uitvoeren".

Note dat na gebruik critcl::laden / critcl::mislukt in een ".critcl"bestand is dat niet het geval
mogelijk om critcl-opdrachten meer in dat bestand te gebruiken. Als u dit wel doet, wordt er een fout gegenereerd.

[18] De generatie van '#line'-pragma's die kunnen worden gebruikt, is uitgebreid info omlijsting (indien beschikbaar) naar
voorzie de C-compiler van exacte regelnummers in de ".critcl"-bestand voor de
rapportage van waarschuwingen en fouten.

[19] Uitgebreid critcl::controleer met logboekregistratie om te helpen bij het debuggen van build-time-controles van de
omgeving, plus een extra optioneel argument om labels te bieden.

[20] Een nieuwe opdracht toegevoegd critcl::checklink die niet alleen de omgeving probeert te controleren
via het compileren van de code, maar ook de koppelbaarheid ervan.

[21] Een nieuwe opdracht toegevoegd critcl::msg voor berichten, zoals commando's critcl::fout is
foutmelding. Op dezelfde manier is dit een hook die een gebruiker van het pakket mag gebruiken
overschrijven. De standaardimplementatie, gebruikt door mode compileren & lopen doet niets. De
implementatie voor modus voortbrengen pakket drukt het bericht af naar stdout.

Het beoogde gebruik is voor de rapportage van resultaten bepaald door critcl::controleer en
critcl::checklink tijdens het bouwen, om te helpen bij het opsporen van fouten als er iets misgaat
met een cheque.

[22] De interne verwerking van argumenten blootgelegd kritiekcl::proc voor gebruik door gevorderden
gebruikers. De nieuwe commando's zijn

[1] critcl::argnames

[2] critcl::argcnames

[3] critcl::argchandtekening

[4] critcl::argvardecls

[5] critcl::argconversie

Zie sectie: Geavanceerd Embedded C Code van de kritiek pakketdocumentatie voor
details.

[23] Het critcl-pakket uitgebreid om te onderscheppen pakket zorgen voor en neem het bestand op ->
pakketnaamtoewijzing. Bovendien maken andere interne wijzigingen nu het gebruik van namespaced mogelijk
pakketnamen terwijl u nog steeds de juiste padnamen en init-functie gebruikt.

[24] De ongebruikte commando's zijn verwijderd critcl::optimaliseren en critcl::inclusief.

[25] Gevallen -lib modus vanuit de critcl-toepassing.

[26] Restanten van ondersteuning voor Tcl 8.3 en eerder zijn verwijderd.

WIJZIGINGEN VOOR VERSIE 3


[1] Het commando critcl::platform is verouderd in versie 2.1 en vervangen door
critcl::targetplatform, maar toch bewaard voor compatibiliteit. Nu is het verwijderd.

[2] Het commando critcl::gecompileerd werd behouden in versie 2.1 met semantiek erin
in tegenspraak met zijn, voor compatibiliteit. Deze tegenstrijdigheid is verwijderd,
het veranderen van de zichtbare semantiek van de opdracht zodat deze in overeenstemming is met de naam.

[3] De wijziging naar versie 3 werd noodzakelijk vanwege de twee incompatibele zichtbare versies
wijzigingen hierboven.

[4] Het applicatiepakket uitgebreid met een nieuwe optie voor het verwerken van code -thee. Specificeren
deze optie roept een speciale modus aan waarin critcl een TEA-pakket genereert, dat wil zeggen wraps
de invoer in een directoryhiërarchie en ondersteunende bestanden die deze leveren TEA-
lookalike bouwsysteem.

Deze nieuwe optie, en -pk, sluiten elkaar uit. Als beide zijn opgegeven, wordt het laatst gebruikt
optie heeft voorrang.

De gegenereerde pakketmaphiërarchie is grotendeels op zichzelf staand, maar niet volledig.
Het vereist niet alleen een werkende installatie van Tcl, maar ook werkende installaties
van de pakketten md5 en cmdlijn. Deze worden beide verzorgd door de Tclilib bundel.
Niet vereist, maar aanbevolen om te installeren zijn alle pakketten die dat wel kunnen
de werking van MD5 versnellen, dwz cryptkit, tclibcof Trf.

[5] Het critcl-pakket uitgebreid met een nieuw commando critcl::scannen de weg bewandelen naar a
".critcl" bestand, het statisch scannen en de licentie, versie en een lijst met
de begeleidende bestanden, een lijst met geïmporteerde API's en een lijst met door de ontwikkelaar gespecificeerde aangepaste bestanden
configuratie-opties. Deze gegevens vormen de basis voor de beschreven TEA-verpakking
bovenstaand.

Merk op dat dit een is statisch scannen. Terwijl de andere bouwmodi de
".critcl" archiveren en platformspecifieke beslissingen nemen met betrekking tot de samengestelde C-code,
begeleidende bestanden, enz. De TEA-wrapmodus is niet in staat om platform-
specifieke beslissingen. Het moet alles omwikkelen wat mogelijk nodig zou kunnen zijn
als er daadwerkelijk gebouwd wordt. Vandaar de statische scan. Dit heeft echter zijn eigen reeks
problemen, namelijk het onvermogen om een ​​dynamische constructie van metgezel te achterhalen
bestandspaden, althans op zichzelf. Dus:

[6] De API die wordt gebruikt door op critcl gebaseerde pakketten is uitgebreid met de opdracht critcl::eigenaar. Terwijl
deze opdracht wordt genegeerd door de reguliere bouwmodi die de statische scanner beschrijft
hierboven neemt zijn argumenten als de namen van begeleidende bestanden die moeten worden ingepakt
in het TEA-pakket en kon op geen enkele andere manier door de scanner worden berekend
vanwege dynamische paden naar critcl::tbronnen, critcl::cbronnen, afkomstig worden
direct, of eenvoudigweg als aanvullende gegevensbestanden.

[7] De API die wordt gebruikt door op critcl gebaseerde pakketten is uitgebreid met de opdracht critcl::api voor de
beheer van stubs-tabellen, of het nu gaat om het gebruik ervan en/of de aangifte en export.

Zie sectie: stubs tafel Management van de kritiek pakketdocumentatie voor
details.

[8] De API die wordt gebruikt door op critcl gebaseerde pakketten is uitgebreid met de opdracht critcl::userconfig
voor het beheer van door de ontwikkelaar gespecificeerde aangepaste configuratieopties, of dit nu hun eigen configuratieopties zijn
gebruik en/of aangifte.

Zie sectie: Eigen Bouw Configuratie van de kritiek pakket documentatie
voor meer info.

[9] De API die wordt gebruikt door op critcl gebaseerde pakketten is uitgebreid met de opdrachten
critcl::beschrijving, critcl::samenvatting, critcl::onderwerp, critcl::meta en
critcl::buildvereiste voor het declareren van TEApot-metagegevens voor/over de
pakket.

Zie sectie: Pakket meta Data van de kritiek pakketdocumentatie voor
details.

WIJZIGINGEN VOOR VERSIE 3.0.1


[1] Bugfixes overal. In detail:

[2] Vaste registratie van Tcl-versievereisten. Bewaar de pakketnaam en -versie
samen, het ongedaan maken van gegenereerde metagegevens en het gegenereerde pakketlaadcommando.

[3] De build-scripts zijn opgelost: genereer eventuele ontbrekende scripts tijdens het installeren of inpakken voor TEA
directories

[4] De build-scripts zijn aangepast om de applicatie correct af te sluiten wanneer het venster wordt geopend
hun GUI wordt gesloten via de knop (X).

[5] Een 8.5-ism (open wb) verwijderd die in het hoofdbuildscript was terechtgekomen.

[6] De voorbeeldbuildscripts zijn aangepast om de uitvoer voor de verschillende te scheiden
voorbeelden (en pakketten) door lege regels toe te voegen.

[7] stack::c voorbeeld bugfix: API-declaraties opnemen voor gebruik in de begeleidende bestanden.

[8] De documentatie uitgebreid: Merkte de noodzaak op van een werkende installatie van een C
compiler.

[9] De Windows-doeldefinities en -code zijn uitgebreid om de gebruikte manifestbestanden te verwerken
door moderne MS-ontwikkelomgevingen. Merk op dat deze code beide verwerkt
mogelijkheden, omgevingen die manifesten gebruiken, en (oude(re)) omgevingen zonder.

[10] De Windows 64-bit doeldefinities en code zijn uitgebreid om de behoefte automatisch te detecteren
de helperbibliotheek "bufferoverflowU.lib" en configureer het compileren en linken opnieuw
commando's op de juiste manier. Wij gaan ervan uit dat de bibliotheek bij aanwezigheid gekoppeld moet zijn.
Dit zou geen kwaad kunnen als de bibliotheek aanwezig is, maar toch niet nodig is. Gewoon overbodig.
We zoeken naar de bibliotheek in de paden die zijn opgegeven door de omgevingsvariabele LIB.

WIJZIGINGEN VOOR VERSIE 3.0.2


[1] Er is een probleem opgelost in de compileer-en-run-modus waarbij opdrachten in de auto_index dat niet doen
gevonden door het [onbekende] commando van Tcl.

[2] Probleem opgelost waarbij de arraysleutels niet overeenkomen, waardoor het gebruik van clientgegevens en de verwijderfunctie voor
procedure. Gerapporteerd door Jos DeCoster, met patch.

[3] Een opdrachtregeloptie geïmplementeerd -L, een equivalent van optie -I, alleen voor bibliotheek
zoek paden.

[4] Github-problemen 5 en 8 opgelost. Een ontbrekende variabele ::errorInfo omzeilen. Het
zou altijd aanwezig moeten zijn, maar er lijken herzieningen van Tcl te zijn waarrond
schenden deze veronderstelling.

WIJZIGINGEN VOOR VERSIE 3.0.3


[1] Github-problemen 5 en 8 opgelost, voor de voorbeeldbuild.tcl-scripts. Werken rond een
ontbrekende variabele ::errorInfo. Het moet altijd aanwezig zijn, hoe het ook lijkt
herzieningen van Tcl die deze veronderstelling schenden.

WIJZIGINGEN VOOR VERSIE 3.0.4


[1] Probleem opgelost waarbij de initnaam van het pakket werd gegenereerd wanneer de binnenkomende code werd gelezen
stdin en heeft geen juist pad.

[2] Github-probleem 11 opgelost. Gebruik nu /LIBPATH in plaats van -L op Windows (libinclude
configuratie-instelling).

[3] Uitgebreide critcl om het -l:path-formaat van -l-opties te verwerken. GNU ld 2.22+ regelt dit
door het pad te zoeken zoals het is. Goed bij het specificeren van statische bibliotheken, zoals gewoon -l
zoekt liever naar gedeelde bibliotheken dan naar statische. critcl handelt het nu af, zoals
oudere GNU ld's begrijpen het niet, noch de verschillende leverancierspecifieke linkers.

[4] Github-probleem #12 opgelost. Critcl bepaalt nu de versie van MSVC die wordt gebruikt en gebruikt
om te schakelen tussen verschillende foutopsporingsopties voor koppelingen. Vereenvoudigde de afhandeling van
bufferoverflowU.lib ook, waarbij gebruik wordt gemaakt van hetzelfde mechanisme en de twee worden samengevouwen
configuratiesecties die we weer in één hadden.

[5] Herwerkt de invoeging van #line-pragma's in de gegenereerde C-code om dit te voorkomen
beperkingen op het regelnummerargument opgelegd door verschillende compilers, en meer
nauwkeurig.

[6] Gewijzigde argumentverwerking. Optie -libdir impliceert nu ook -L als argument.

[7] Uitgebreide afhandeling van optie -show (critcl::showconfig) om het pad van de weer te geven
configuratiebestand waar de gegevens vandaan komen. Goed voor het debuggen van de configuratie
processing.

[8] Het buildscript uitgebreid met doelen om de ingebedde documentatie opnieuw te genereren,
en diagrammen, en om een ​​release te genereren.

WIJZIGINGEN VOOR VERSIE 3.0.5


[1] Bug opgelost in de nieuwe code voor #line-pragma's die werden geactiveerd bij het opgeven van C-code
zonder voorafgaande witruimte.

[2] De documentatie uitgebreid met manpagina's voor de licentie, het ophalen van de broncode,
installatieprogramma en handleidingen voor ontwikkelaars.

WIJZIGINGEN VOOR VERSIE 3.0.6


[1] Github-probleem 10 opgelost. De critcl-applicatie levert nu een juiste afsluitcode (1)
bij het mislukken van de build, in plaats van altijd succes aan te geven (status 0).

[2] Github-probleem 13 opgelost. De afhandeling van bufferoverflowU.lib voor releasebuilds was
inconsistent met de afhandeling van debug-builds. Het wordt nu op dezelfde manier afgehandeld
(voorwaardelijk) in beide gevallen.

[3] Documentatie opruimen, voornamelijk in de installatiehandleiding, en de README.md getoond door
GitHub

WIJZIGINGEN VOOR VERSIE 3.0.7


[1] Probleem opgelost met de code gegenereerd door critcl::c++commando. De uitgezonden code gaf een niet-
statische tekenreekstabel naar Tcl_GetIndexFromObj, in strijd met het contract, dat
vereist dat de tafel een vast adres heeft. Dit was een geheugenbreker die op ons wachtte
gebeuren. Dank aan Brian Griffin voor het waarschuwen voor het algemene probleem.

WIJZIGINGEN VOOR VERSIE 3.1


[1] Een nieuw pakket op een hoger niveau toegevoegd critcl::iassoc.

Dit pakket vereenvoudigt het maken van code die gegevens koppelt aan een tolk
via Tcl's Tcl_(Get|Set)AssocData() API's. De gebruiker kan zich daarbij op zijn gegevens concentreren
alle benodigde boilerplate C-code om dit te ondersteunen wordt door het pakket gegenereerd.

Dit pakket maakt gebruik van verschillende nieuwe functies die aan de kern zijn toegevoegd kritiek
pakket, zie hieronder.

[2] Het pakket op een hoger niveau is toegevoegd critcl::klas.

Dit pakket vereenvoudigt het maken van objecten op C-niveau met klasse en instantie
opdrachten. De gebruiker kan een klassedefinitie schrijven met klasse- en instantievariabelen
en -methoden vergelijkbaar met een TclOO-klasse, met alle benodigde standaard C-code
ondersteunen dit gegenereerd door het pakket.

Dit pakket maakt gebruik van verschillende nieuwe functies die aan de kern zijn toegevoegd kritiek
pakket, zie hieronder.

[3] De API voor het verwerken van TEApot-metagegevens is uitgebreid. De opdracht toegevoegd critcl::meta? naar
de opgeslagen informatie opvragen. Het belangrijkste gebruik dat momenteel wordt overwogen, is het ophalen van de
naam van het huidige pakket door hulpprogramma-opdrachten, voor gebruik in geconstrueerde namen. Dit
bepaalde informatie is altijd beschikbaar dankzij de statische scan van het pakket
bestand bij uitvoering van het eerste critcl-commando.

De nieuwe pakketten critcl::iassoc en critcl::klas (zie hierboven) zijn hiervan gebruikers
opdracht.

[4] De API uitgebreid met een commando, critcl::naam2c, waarmee het conversieproces wordt blootgelegd
een Tcl-naam in basisnaam, naamruimte en C-naamruimte. Dit maakt een hoger niveau mogelijk
codegeneratoren om hetzelfde type C-identifiers te genereren als kritiek zelf.

Het nieuwe pakket critcl::klas (zie hierboven) is een gebruiker van dit commando.

[5] De API uitgebreid met een commando, critcl::bron, waarbij critcl-opdrachten worden uitgevoerd die zijn gevonden in
een apart bestand in de context van het huidige bestand. Dit maakt een eenvoudiger beheer mogelijk
van grotere hoeveelheden code, omdat de gebruiker deze in eenvoudiger stukken kan opsplitsen
kleinere stukken verwerken zonder dat er meerdere pakketten worden gegenereerd.

[6] Gerelateerd aan het vorige item is de API uitgebreid met opdrachten om de verzameling om te leiden
van gegenereerde C-code in het geheugen. Dit maakt het gemakkelijker om de commando's te gebruiken
ingebedde C-code in codegeneratoren op een hoger niveau.

Zie de paragraaf Geavanceerd: Omleidingen voor details over de geleverde opdrachten.

Het nieuwe pakket critcl::klas (zie hierboven) is gebruiker van deze faciliteiten.

[7] De API uitgebreid met opdrachten die ontwikkelaars helpen bij het genereren van de juiste C
#lijn richtlijnen. Hierdoor kunnen codegeneratoren op een hoger niveau worden gegenereerd en ingevoegd
hun eigen richtlijnen, om ervoor te zorgen dat compileerfouten in hun code correct zijn
toegeschreven.

Zie de paragraaf Geavanceerd: Locatie management voor details over de geleverde opdrachten.

De nieuwe pakketten critcl::iassoc en critcl::klas (zie hierboven) zijn hiervan gebruikers
faciliteiten.

[8] De API is uitgebreid met opdrachten waarmee gebruikers aangepaste argumenten kunnen definiëren
en resultaattypen voor ::critcl::cproc.

Zie de paragraaf Geavanceerd: Het uitbreiden cproc voor details over de geleverde opdrachten.

WIJZIGINGEN VOOR VERSIE 3.1.1


[1] Bugfixes overal. In detail:

[2] Het genereren van foute#args-fouten voor critcl::cproc en afgeleide code
(critcl::klas cproc-gebaseerde methoden). Gebruik NULL als er geen argumenten zijn, en neem
de compensatie in aanmerking.

[3] De verwerking van pakketnamen is opgelost door critcl::klas. Vergeten dat ze het kunnen bevatten
scheidingstekens voor naamruimten. Overgestapt naar versie 1.0.1.

[4] Uitgebreide a critcl::klas gegenereerde foutmelding bij het maken van exemplaren voor de duidelijkheid.
Overgestapt naar versie 1.0.2.

WIJZIGINGEN VOOR VERSIE 3.1.2


[1] Verbetering. In detail:

[2] Uitgebreid critcl::cproc in beperkte mate kunnen omgaan met optionele argumenten.
Dit is automatisch beschikbaar voor critcl::klas ook op cproc gebaseerde methoden.

[3] Bugfix binnen lassign emulatie voor Tcl 8.4. Stel ongebruikte variabelen correct in op de
lege tekenreeks. Gebumpte versie van emulatiepakket lassign84 om 1.0.1.

WIJZIGINGEN VOOR VERSIE 3.1.3


[1] Verbetering. In detail:

[2] Nieuw argumenttype "pstring" toegevoegd, voor "Pascal String", een getelde string, dwz a
combinatie van stringpointer en stringlengte.

[3] Nieuwe methoden toegevoegd critcl::argtypesupport en ::critcl::argsupport definiëren en gebruiken
aanvullende ondersteunende code voor een argumenttype, hier gebruikt door "pstring" hierboven
de noodzakelijke structuur bepalen.

[4] Semi-bugfixes in de pakketten critcl::klas en critcl::iassoc. Pragma's voor de AS
metagegevensscanner om ervoor te zorgen dat de sjabloonbestanden onderdeel worden van het pakket.
Versies zijn respectievelijk gestegen naar 1.0.4 en 1.0.1.

WIJZIGINGEN VOOR VERSIE 3.1.4


[1] Bugfix in pakket critcl::klas. Genereer een dummyveld in de klassenstructuur als
de klasse heeft geen klassevariabelen. Zonder deze verandering zou de structuur leeg zijn,
en een aantal compilers kunnen een dergelijk type niet aan.

[2] Een typefout gerepareerd die de win64-configuratie verbrak.

[3] Probleem #16 opgelost, een typefout in de documentatie van de opdracht critcl::klas.

WIJZIGINGEN VOOR VERSIE 3.1.5


[1] Probleem #19 opgelost. De reguliere expressie gemaakt die het MSVC-versienummer extraheert
meer algemeen om het te laten werken op Duitse taalsystemen. Dit moet misschien wel zo zijn
in de toekomst opnieuw bekeken voor andere Windows-landinstellingen.

[2] Probleem #20 opgelost. Gemaakte optie -theewerk op Windows, tenminste in een Unix-emulatie
omgeving zoals msys/mingw.

WIJZIGINGEN VOOR VERSIE 3.1.6


[1] Probleem #21 opgelost. Terwijl de multi-definitie van de pointervariabelen van de stubtabel dat wel was
Oké, voor alle C-linkers die tot nu toe zijn gezien, vonden C++-linkers dit helemaal niet leuk.
De code is herwerkt om ervoor te zorgen dat deze set variabelen slechts één keer wordt gegenereerd, in
de wikkel rond alle te monteren stukken.

[2] Probleem #22 opgelost, de verwerking van de commando-identificatieargumenten van
critcl::commando, critcl::cproc en critcl::cdata. We staan ​​nu elke Tcl toe
identifier en genereer hieruit de juiste interne C-identifiers.

Als onderdeel hiervan de ondertekening van het bevel critcl::naam2c veranderd. Het commando nu
levert een lijst met vier waarden op in plaats van drie. De nieuwe waarde werd toegevoegd aan de
end.

De implementatie van het pakket verder aangepast critcl::klas, een gebruiker van
critcl::naam2c. Dit pakket heeft nu versie 1.0.6 en vereist critcl 3.1.6

Eindelijk de verkeerde behandeling van de optie opgelost -naam in critcl::commando en
critcl::cproc.

[3] Probleem #23 opgelost.

WIJZIGINGEN VOOR VERSIE 3.1.7


[1] Probleem #24 opgelost. Compilerwaarschuwingen uit het bestand extraheren en onvoorwaardelijk weergeven
logboek bouwen. Voorkomt dat gebruikers waarschuwingen missen die, hoewel ze de build niet veroorzaken
mislukt, kan nog steeds op problemen duiden.

[2] Nieuwe functie. Uitgang haak. Alle niet-berichtengestuurde gebruikersuitvoer wordt nu via de
commando critcl::afdrukken, en gebruikers mogen dit overschrijven als ze de critcl
applicatie-als-pakket.

[3] Nieuwe functie, door Ashok P. Nadkarni. Platformconfiguraties kunnen waarden overnemen van
configuraties die ervoor zijn gedefinieerd.

WIJZIGINGEN VOOR VERSIE 3.1.8


[1] Probleem opgelost met pakketindices gegenereerd voor Tcl 8.4. Sluit je aan bij de lijst met opdrachten
met puntkomma, geen nieuwe regel.

[2] Probleem #26 opgelost waarbij gebruiksscenario's naar voren kwamen waar ik tijdens het repareren vergeten over na te denken
bug #21 (zie kritiek 3.1.6).

WIJZIGINGEN VOOR VERSIE 3.1.9


[1] Probleem #27 opgelost. Ontbrekende platformdefinities toegevoegd voor verschillende alternatieve Linux- en
OS X-doelen.

[2] Probleem #28 opgelost. Ontbrekende -mXX-vlaggen toegevoegd voor koppeling op linux-{32,64}-*
targets.

[3] Probleem #29 opgelost. Het gebruik van onbewerkte "cheaders"-informatie bij de verwerking vervangen
van "cdefines" met de juiste include-richtlijnen die daarvan zijn afgeleid.

[4] Het probleem achter afgewezen pull-verzoek nr. 30 van Andrew Shadura is opgelost. Dynamisch
extraheer de stubs-variabeledeclaraties uit de Tcl-headerbestanden en genereer
overeenkomende variabeledefinities voor gebruik in de pakketcode. De gegenereerde code zal dat doen
wees nu altijd consistent met de headers, zelfs als critcl's eigen kopie ervan is
vervangen door systeemheaders.

[5] Probleem #31 opgelost. Geaccepteerde patch door Andrew Shadura, met wijzigingen (opmerkingen), voor
eenvoudigere integratie van critcl met OS-pakketsystemen, ter vervanging van critcl's kopieën van
Tcl-headers met hun eigen.

[6] Probleem #32 opgelost. Samengevoegd pull-verzoek van Andrew Shadura. Diverse typefouten erin
documentatie en commentaar.

[7] Probleem #33 opgelost. Behandel bestanden die beginnen met een punt beter.

AUTEURS


Jean Claude Wippler, Steve Landers, Andreas Kupries

Gebruik critcl online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

  • 1
    Phaser
    Phaser
    Phaser is een snelle, gratis en leuke open
    source HTML5-gameframework dat biedt
    WebGL- en Canvas-weergave overdwars
    desktop- en mobiele webbrowsers. Spellen
    kan samen zijn...
    Phaser downloaden
  • 2
    VASSAL-motor
    VASSAL-motor
    VASSAL is een game-engine om te creëren
    elektronische versies van traditioneel bord
    en kaartspellen. Het biedt ondersteuning voor
    weergave en interactie van speelstukken,
    en...
    VASSAL-engine downloaden
  • 3
    OpenPDF - Vork van iText
    OpenPDF - Vork van iText
    OpenPDF is een Java-bibliotheek voor het maken van
    en het bewerken van PDF-bestanden met een LGPL en
    MPL open source-licentie. OpenPDF is de
    LGPL/MPL open source opvolger van iText,
    een...
    Download OpenPDF - Vork van iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Systeem voor geautomatiseerd
    Geowetenschappelijke analyses - is een geografische
    Informatie Systeem (GIS) software met
    enorme mogelijkheden voor geodata
    verwerking en analyse...
    SAGA GIS downloaden
  • 5
    Toolbox voor Java/JTOpen
    Toolbox voor Java/JTOpen
    De IBM Toolbox voor Java / JTOpen is een
    bibliotheek van Java-klassen die de
    client/server- en internetprogrammering
    modellen naar een systeem met OS/400,
    i5/OS, o...
    Toolbox voor Java/JTOpen downloaden
  • 6
    D3.js
    D3.js
    D3.js (of D3 voor gegevensgestuurde documenten)
    is een JavaScript-bibliotheek waarmee u
    om dynamische, interactieve gegevens te produceren
    visualisaties in webbrowsers. Met D3
    u...
    D3.js downloaden
  • Meer "

Linux-commando's

  • 1
    abidiff
    abidiff
    abidiff - vergelijk ABI's van ELF-bestanden
    abidiff vergelijkt de Application Binary
    Interfaces (ABI) van twee gedeelde bibliotheken
    in ELF-formaat. Het straalt een betekenis uit
    verslag...
    Voer abidiff uit
  • 2
    blijf
    blijf
    abidw - serialiseer de ABI van een ELF
    bestand abidw leest een gedeelde bibliotheek in ELF
    formaat en verzendt een XML-representatie
    van zijn ABI naar standaarduitvoer. De
    uitgestoten ...
    Voer abidw uit
  • 3
    copac2xml
    copac2xml
    bibutils - conversie van bibliografie
    nutsvoorzieningen ...
    Voer copac2xml uit
  • 4
    Copt
    Copt
    copt - kijkgaatje-optimizer SYSNOPIS:
    copt-bestand.. BESCHRIJVING: copt is een
    kijkgaatje-optimizer voor algemeen gebruik. Het
    leest code van zijn standaardinvoer en
    schrijft een...
    Kopt uitvoeren
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - titel verzamelen
    verklaringen van Stx-documenten ...
    Voer collect_stx_titles uit
  • 6
    gatling-bank
    gatling-bank
    bank - http-benchmark ...
    Run gatling-bank
  • Meer "

Ad