InglêsFrancêsEspanhol

Ad


favicon do OnWorks

critcl - Online na nuvem

Execute critcl no provedor de hospedagem gratuita OnWorks no Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

Este é o comando critcl que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS

PROGRAMA:

NOME


critcl - Aplicativo CriTcl

SINOPSE


crítico ?opção...? ?lima? ...

_________________________________________________________________

DESCRIÇÃO


Bem vindo à C Runtime In Tcl, CriTcl para resumir, um sistema para construir pacotes de extensão C
para Tcl em tempo real, a partir de código C embutido em scripts Tcl, para todos que desejam fazer
o código deles fica mais rápido.

Este documento é a página de manual de referência para o crítico comando. Seu público-alvo é
pessoas tendo que construir pacotes usando crítico para implantação. Escritores de pacotes com
o código C incorporado pode ignorar este documento. Se você precisa de uma visão geral de todo
sistema em vez disso, vá e leia o Introdução Para CriTcl.

Este aplicativo reside na Camada de Aplicativo do CriTcl.

* ================ *
| Aplicativos |
| crítico |
| critcl :: app |
* ================ *

+ ---------------- +
| Pacotes principais |
| crítico |
| critcl :: util |
+ ---------------- +

+ ---------------- +
| Pacotes de suporte |
| stubs :: * |
| md5, plataforma |
| ... |
+ ---------------- +

O aplicativo oferece suporte à seguinte linha de comando geral:

crítico ?opção...? ?lima? ...
O conjunto exato de opções suportadas, seu significado e interação são detalhados em
seção Aplicação Opções abaixo. Para um conjunto maior de exemplos, consulte a seção
"Construindo Pacotes Critcl" no documento sobre utilização CriTcl.

APLICAÇÃO OPÇÕES


As seguintes opções são compreendidas

-v

--versão
Essas opções fazem com que critcl imprima sua versão para stdout e então saia.

-I caminho
Esta opção especifica um caminho de inclusão global adicional para usar durante a compilação
do ".critcl"arquivos. Todos os valores são usados ​​se isso for especificado várias vezes.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-L caminho
Esta opção especifica um caminho de pesquisa de biblioteca global adicional para usar durante a vinculação
do ".critcl"arquivos. Todos os valores são usados ​​se isso for especificado várias vezes.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-cache caminho
Esta opção especifica o caminho para o diretório a ser usado como cache de resultados. Se não
especificado, o padrão é "~ / .critcl /", ou, ao gerar um pacote (ver
opção -pacote abaixo de "~ / .critcl /.", Quando especificado várias vezes o
o último valor é usado.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-limpar \ limpo Quando especificado, o cache de resultados é esvaziado, ou seja, todos os arquivos e diretórios encontrados
dentro são excluídos) antes do início da compilação.

Esta opção é irrelevante ao gerar um pacote (veja a opção -pacote abaixo) porque
este modo começa com um cache de resultados único e vazio.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-config caminho
Esta opção especifica o caminho para um arquivo de configuração personalizado, permitindo ao usuário
usar suas próprias especificações de destino. Se não for especificado, um padrão com fio
a configuração embutida no núcleo do sistema é usada em seu lugar. Quando especificado múltiplo
vezes o último valor é usado.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-depurar modo
Esta opção ativa a compilação com depuração. Ele aceita os modos abaixo. Quando
especificado várias vezes, a combinação de todos os modos é usada.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

memória Este modo ativa a depuração de memória de alocações feitas através do Tcl
núcleo.

símbolos
Este modo ativa a construção de todos ".c"arquivos com símbolos de depuração.

todos os Este modo ativa ambos memória e símbolos.

-desativar nome
Esta opção define o valor da opção de configuração de construção personalizada nome para falso.
É equivalente a "-with-nome 0 ".

A informação é validada apenas se um dos ".critcl"arquivos de entrada na verdade
define e usa uma opção de configuração de construção personalizada com aquele nome.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-habilitar nome
Esta opção define o valor da opção de configuração de construção personalizada nome para verdadeiro.
É equivalente a "-with-nome 1 ".

A informação é validada apenas se um dos ".critcl"arquivos de entrada na verdade
define e usa uma opção de configuração de construção personalizada com aquele nome.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-força Quando a compilação especificada é sempre feita, mesmo se uma biblioteca compartilhada para o arquivo
já existe. Este efeito pode ser obtido através da limpeza do cache (veja acima) como
bem, exceto que é preguiçoso na destruição de arquivos e não irá destruir arquivos
não relacionados com os que estamos construindo.

Esta opção é irrelevante ao gerar um pacote (veja a opção -pacote abaixo) porque
este modo começa com um cache de resultados único e vazio.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-Socorro Esta opção fará com que o sistema imprima uma breve ajuda sobre a sintaxe da linha de comando
e opções e saia do aplicativo.

-guarda Esta opção fará com que o sistema mantenha o ".c"arquivos gerados por uma execução no
cache de resultados. Ao gerar um pacote (ver opção -pacote abaixo) isso também evita
a exclusão do cache de resultado exclusivo usado pela execução. Esta opção é pretendida
para a depuração de crítico em si, onde pode ser necessário inspecionar o
código C gerado.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-libdir caminho
Esta opção especifica o caminho sob o qual os pacotes são gerados através da opção -pacote
são salvos. Ele também especifica um caminho para pesquisar bibliotecas, como por -L. Quando
especificado várias vezes o último valor é usado. Quando não é especificado em todos os
padrão, "lib", é usado. Observe como este é um caminho relativo, colocando o resultado em
o diretório de trabalho atual.

-incluído dir caminho
Esta opção especifica o caminho sob o qual quaisquer cabeçalhos de pacote gerados são salvos.
Ele também especifica um caminho para pesquisar arquivos de inclusão, como por -I. Quando especificado
várias vezes o último valor é usado como destino, no entanto, todos os valores anteriores
são mantidos no caminho de pesquisa de inclusão. Quando não é especificado como padrão,
"incluir", é usado. Observe como este é um caminho relativo, colocando o resultado no
diretório de trabalho atual.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-pacote O modo padrão do aplicativo é construir o ".critcl"arquivos listados no
linha de comando e salve os resultados no cache de resultados. Essencialmente, pré-preenchendo o
cache com pacotes importantes, reduzindo o tempo necessário para usá-los
pacotes.

Esta opção ativa um dos outros modos, geração de pacote. Neste modo, o
os arquivos de entrada são processados ​​primeiro como de costume, no entanto, depois disso, são agrupados em
uma única biblioteca e arquivos adicionais são gerados para tornar esta biblioteca utilizável como
um pacote Tcl normal.

A opção -chá, veja abaixo, invoca o último modo, geração TEA. Se ambas as opções,
ou seja -pacote e -chá são especificadas as últimas vitórias especificadas.

Neste modo as opções -limpar \ limpo e -força são irrelevantes e ignorados. Em contraste,
a opção -libdir é relevante tanto neste como -chá modo.

Quando esta opção é especificada, o nome de base do primeiro argumento do arquivo após o
options é usado como o nome do pacote a ser gerado. Se a extensão disso
arquivo indica uma biblioteca compartilhada (".assim"".sl"".dylib", E".dll") Isso é também
removido do conjunto de arquivos de entrada. UMA ".tcl"arquivo é mantido como parte da entrada. A
único arquivo sem extensão é considerado como tendo realmente um ".tcl"extensão. A
arquivo sem extensão, mas outros arquivos de entrada seguintes são tratados como o nome de
uma biblioteca compartilhada adequada e removida do conjunto de arquivos de entrada.

Exemplos:
=> O nome do pacote é: foo
=> O arquivo de entrada é: foo.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: bar.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: foo.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: bar.tcl

-mostrar Esta opção, quando especificada, fará com que o sistema imprima a configuração de
o alvo escolhido para stdout e então saia. A escolha do alvo pode ser influenciada
através da opção -alvo (ver abaixo).

-mostre tudo
Esta opção, quando especificada, fará com que o sistema imprima o todo escolhido
arquivo de configuração para stdout e então saia. A escolha do arquivo de configuração pode
ser influenciado pela opção -config (Veja acima).

-alvo nome
Esta opção substitui a escolha padrão do destino de construção com a escolha do usuário.
Quando especificado várias vezes, o último valor é usado. O destino nomeado deve existir
no arquivo de configuração escolhido. Opção de uso -alvos (veja abaixo) para obter uma lista de
os alvos aceitáveis. A escolha do arquivo de configuração pode ser influenciada por
a opção -config (Veja acima).

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá abaixo).

-alvos
Esta opção, quando especificada, fará com que o sistema imprima a lista de todas as
alvos do arquivo de configuração escolhido para stdout e então saia. A escolha de
arquivo de configuração pode ser influenciado pela opção -config (Veja acima).

-chá Semelhante à opção -pacote, exceto que o modo invocado não gera binários,
mas uma hierarquia de diretório contendo o ".critcl", seus arquivos complementares e um
Sistema de compilação semelhante ao TEA com a maior parte do código de suporte necessário (incluindo cópias
dos pacotes critcl).

Se ambas as opções, ou seja, -pacote e -chá são especificadas as últimas vitórias especificadas.

Neste modo as opções -I, -L, -limpar \ limpo, -força, -cache, -incluído dir, -habilitar,
-desativar e -com-FOO são irrelevantes e ignorados. Em contraste, a opção -libdir
é relevante tanto neste como -pacote modo.

Quando esta opção é especificada, o nome de base do primeiro argumento do arquivo após o
options é usado como o nome do pacote a ser gerado. Se a extensão disso
arquivo indica uma biblioteca compartilhada (".assim"".sl"".dylib", E".dll") Isso é também
removido do conjunto de arquivos de entrada. UMA ".tcl"arquivo é mantido como parte da entrada. A
único arquivo sem extensão é considerado como tendo realmente um ".tcl"extensão. A
arquivo sem extensão, mas outros arquivos de entrada seguintes são tratados como o nome de
uma biblioteca compartilhada adequada e removida do conjunto de arquivos de entrada.

Exemplos:
=> O nome do pacote é: foo
=> O arquivo de entrada é: foo.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: bar.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: foo.tcl
=> O nome do pacote é: foo
=> O arquivo de entrada é: bar.tcl

-com-nome valor
Esta opção define o valor da opção de configuração de construção personalizada nome para valor.

A informação é validada apenas se um dos ".critcl"arquivos de entrada na verdade
define e usa uma opção de configuração de construção personalizada com aquele nome.

Esta opção é irrelevante ao gerar um pacote TEA (ver opção -chá acima).

PACKAGE ESTRUTURA


Os pacotes gerados por critcl têm a seguinte estrutura básica:

+ - pkgIndex.tcl
+ - critcl-rt.tcl
+ - license.terms (opcional)
|
+ - tcl (opcional)
| + -
|
+ -
+ -

Notas

[1] O arquivo "pkgIndex.tcl"é o arquivo de índice de pacote padrão esperado pelo Tcl's
gerenciamento de pacotes. Ele é obtido durante uma busca por pacotes e declara o
pacote para Tcl com seus arquivos e como tratá-los.

[2] O arquivo "critcl-rt.tcl"é um arquivo auxiliar que contém o código comum usado por
"pkgIndex.tcl"para realizar suas tarefas.

[3] O arquivo "termos de licença"é opcional e aparece apenas se o".critcl"arquivar o
o pacote é gerado a partir do comando usado critcl :: licença declarar o pacote
autor e licença.

[4] Todos os arquivos declarados com o comando critcl :: tsources são colocados no subdiretório
"tcl".

[5] A biblioteca compartilhada gerada por critcl é colocada em uma sub-plataforma específica
diretório.

Toda a estrutura, e principalmente o último ponto, nos permitem posteriormente mesclar os resultados
(para o mesmo pacote e versão) para várias plataformas de destino em um único diretório
estrutura sem conflito, simplesmente copiando os diretórios principais uns sobre os outros. O
apenas os arquivos que podem entrar em conflito estão no e "tcl"diretórios, e para estes nós
saiba que eles são idênticos em todos os alvos. O resultado dessa fusão seria:

+ - pkgIndex.tcl
+ - critcl-rt.tcl
+ - license.terms (opcional)
|
+ - tcl (opcional)
| + -
|
+ -
| + -
+ -
| + -
+ -
+ -

MUDANÇAS PARA VERSÃO 2.1


[1] Bug corrigido onde critcl :: tsources caminhos relativos interpretados como relativos ao
diretório de trabalho atual em vez de relativo ao ".critcl"arquivo usando o
comando, como todos os outros comandos desse tipo fazem.

[2] Internals fixos, evitando a coleta de informações por múltiplos ".critcl"arquivos para
vazar entre eles. Notavelmente, critcl :: tk não é uma opção de configuração global
anymore.

[3] Corrigido o comando critcl :: licença para ser uma operação nula no modo "compilar e executar",
em vez de lançar um erro.

[4] Corrigida a interferência do aplicativo critcl com o cache de resultados "compilar e executar"
in -pacote modo fazendo com que ele use um totalmente separado (e por padrão transiente)
diretório para esse modo.

[5] Corrigido bug onde muda para um ".critcl"arquivo não resultou em uma reconstrução para o modo
"compilar e executar". Todos os comandos API relevantes agora garantem mudanças de UUID.

[6] Corrigido bug no tratamento de back-end de critcl :: debug onde o companheiro c-sources de
uma ".critcl"arquivo não foi compilado com opções de depuração, embora o".critcl" Arquivo
estava.

[7] Bug corrigido em critcl :: debug que impediu o reconhecimento do modo "todos" quando era
não o primeiro argumento para o comando.

[8] Bug corrigido em "pré-carregamento.c"impedindo sua compilação em plataformas não Windows.

[9] Corrigido bug de longa data no tratamento de qualificadores de namespace no nome do comando
argumento de critcl :: cproc e critcl :: ccommand. Agora é possível especificar um
nome de comando totalmente qualificado sem problemas.

[10] Prolongado / retrabalhado critcl :: tsources ser a forma canônica de declarar ".tcl"
arquivos complementares, mesmo para o modo "compilar e executar".

[11] Prolongado / retrabalhado critcl :: tsources para permitir o uso de um ".critcl"arquivo como seu próprio
Arquivo complementar Tcl.

[12] Estendido critcl :: framework para verificar internamente o destino de compilação do OS X e ignorar
a declaração se não for.

[13] Estendido critcl :: falhou ser chamável mais de uma vez em um ".critcl"arquivo. O
a primeira chamada força a construção, se ainda não foi feita, a obter o resultado. Avançar
as chamadas retornam o resultado armazenado em cache da primeira chamada.

[14] Estendeu o tratamento da variável de ambiente CC no código que determina o
compilador para usar para lidar com (ou seja, remover) caminhos para o compilador, arquivo do compilador
extensões e opções do compilador especificadas após o próprio compilador, deixando apenas
o nome simples do compilador.

[15] Estendeu o código que trata da busca por bibliotecas pré-carregadas para imprimir os caminhos que
pesquisado, facilitando a depuração de uma falha de pesquisa.

[16] Um novo comando critcl :: tcl pode ser usado para declarar a versão do Tcl minimamente
necessário para construir e executar o ".critcl"arquivo e pacote. O padrão é 8.4, caso não seja
declarado. Critcl estendido para ter os stubs e cabeçalhos para todos os Tcl 8.4, 8.5,
e 8.6.

[17] Um novo comando critcl :: load força a construção e o carregamento de um ".critcl"arquivo. Este é
a maneira oficial de sobrescrever o esquema padrão de compilação lenta e carregamento sob demanda do critcl
para o modo "compilar e executar".

Note que depois de usar critcl :: load / critcl :: falhou em um ".critcl"arquivo não é
possível usar comandos critcl naquele arquivo. Isso gerará um erro.

[18] Estendeu a geração de pragmas '#line' para usar info quadro (se disponível) para
fornecer ao compilador C números de linha exatos no ".critcl"arquivo para o
relatórios de avisos e erros.

[19] Estendido critcl :: check com registro para ajudar na depuração de verificações de tempo de construção do
ambiente, além de um argumento opcional adicional para fornecer rotulagem.

[20] Adicionado um novo comando critcl :: checklink que não apenas tenta verificar o ambiente
através da compilação do código, mas também de sua capacidade de link.

[21] Adicionado um novo comando critcl :: msg para mensagens, como comando critcl :: error é para
relatório de erros. Da mesma forma, este é um gancho que um usuário do pacote tem permissão para
sobrepor. A implementação padrão, usada pelo modo compilar & corrida faz nada. O
implementação para modo gerar pacote imprime a mensagem para stdout.

O uso previsto é para o relato de resultados determinados por critcl :: check e
critcl :: checklink durante a construção, para ajudar na depuração quando algo der errado
com um cheque.

[22] Expôs o argumento de processamento interno de critcl :: proc para uso por avançado
Comercial. Os novos comandos são

[1] critcl :: argnames

[2] critcl :: argcnames

[3] critcl :: argcsignature

[4] critcl :: argvardecls

[5] critcl :: argconversion

Por favor, veja a seção Avançado Incorporado C Code da crítico documentação do pacote para
Detalhes.

[23] Estendeu o pacote critcl para interceptar pacote fornecer e registre o arquivo ->
mapeamento do nome do pacote. Além disso, outras mudanças internas agora permitem o uso de namespaces
nomes de pacotes enquanto ainda usa nomes de caminho apropriados e função init.

[24] Eliminou os comandos não utilizados critcl :: otimizar e critcl :: incluir.

[25] Caiu -lib modo do aplicativo critcl.

[26] Restos de suporte caídos para Tcl 8.3 e anteriores.

MUDANÇAS PARA VERSÃO 3


[1] O comando critcl :: plataforma foi descontinuado na versão 2.1, substituído por
critcl :: targetplatform, ainda mantido para compatibilidade. Agora ele foi removido.

[2] O comando critcl :: compilado foi mantido na versão 2.1 com semântica em
contradição com a sua, para compatibilidade. Essa contradição foi removida,
alterando a semântica visível do comando para estar de acordo com seu nome.

[3] A mudança para a versão 3 tornou-se necessária devido aos dois incompatíveis visíveis
mudanças acima.

[4] Estendido o pacote de aplicativos com código de manipulação de uma nova opção -chá. Especificando
esta opção invoca um modo especial onde critcl gera um pacote TEA, ou seja, embrulha
a entrada em uma hierarquia de diretório e arquivos de suporte que o fornecem TEA-
sistema de construção semelhante.

Esta nova opção, e -pacote, excluem-se. Se ambos forem especificados, o último usado
opção tem precedência.

A hierarquia de diretórios de pacotes gerada é basicamente autocontida, mas não totalmente.
Requer não apenas uma instalação funcional do Tcl, mas também instalações funcionais
dos pacotes md5 e cmdline. Ambos são fornecidos pelo TcllibGenericName agrupar.
Não é necessário, mas recomendado para ter instalado qualquer um dos pacotes que podem
acelerar a operação do MD5, ou seja, kit de criptografia, tcllibcou Trf.

[5] Estendeu o pacote critcl com um novo comando critcl :: scan tomando o caminho para um
".critcl", escaneá-lo estaticamente e retornar a licença, versão, uma lista de
seus arquivos complementares, lista de APIs importadas e lista de produtos personalizados especificados pelo desenvolvedor
opções de configuração. Esses dados são a base para o empacotamento TEA descrito
acima.

Observe que este é um estático Varredura. Enquanto os outros modos de construção podem (devem) executar o
".critcl"arquivo e tomar decisões específicas da plataforma em relação ao código C montado,
arquivos complementares, etc. o modo de agrupamento TEA não está em uma posição para tornar a plataforma
decisões específicas. Tem que envolver tudo o que possa ser necessário
quando realmente está construindo. Daí a varredura estática. No entanto, isso tem seu próprio conjunto de
problemas, ou seja, a incapacidade de descobrir qualquer construção dinâmica de companheiro
caminhos de arquivo, pelo menos por conta própria. Por isso:

[6] Estendeu a API usada por pacotes baseados em critcl com o comando critcl :: possui. Enquanto
este comando é ignorado pelos modos de construção regulares que o scanner estático descreveu
acima leva seus argumentos como nomes de arquivos complementares que devem ser agrupados
no pacote TEA e não poderia ser percebido pelo scanner de outra forma, como
por causa de caminhos dinâmicos para critcl :: tsources, critcl :: csources, obtendo fonte
diretamente, ou simplesmente sendo arquivos de dados adjuntos.

[7] Estendeu a API usada por pacotes baseados em critcl com o comando critcl :: api para o
gestão das tabelas stubs, seja a sua utilização, e / ou declaração e exportação.

Por favor, veja a seção Stubs mesa Assistência Domiciliária da crítico documentação do pacote para
Detalhes.

[8] Estendeu a API usada por pacotes baseados em critcl com o comando critcl :: userconfig
para o gerenciamento de opções de configuração personalizadas especificadas pelo desenvolvedor, seja ele
uso e / ou declaração.

Por favor, veja a seção Personalizadas Construa Configuração da crítico documentação do pacote
para obter detalhes.

[9] Estendeu a API usada por pacotes baseados em critcl com os comandos
critcl :: descrição, critcl :: resumo, critcl :: subject, critcl :: meta e
critcl :: buildrequirement para a declaração de metadados TEApot para / sobre o
pacote.

Por favor, veja a seção Pacote Meta Data da crítico documentação do pacote para
Detalhes.

MUDANÇAS PARA VERSÃO 3.0.1


[1] Correções de bugs ao redor. Em detalhe:

[2] Gravação corrigida de requisitos de versão Tcl. Manter o nome e a versão do pacote
juntos, meta dados gerados inquebrantáveis ​​e comando de carregamento de pacote gerado.

[3] Corrigidos os scripts de compilação: Ao instalar ou agrupar para TEA, gerava qualquer
diretórios

[4] Modificados os scripts de construção para sair corretamente do aplicativo quando a janela de
sua GUI é fechada por meio do botão (X).

[5] Removido um 8.5-ism (wb aberto) que havia deslizado para o script de construção principal.

[6] Modificados os scripts de construção de exemplo para separar a saída para os diferentes
exemplos (e pacotes) adicionando linhas vazias.

[7] stack :: c example bugfix: Inclui declarações de API para uso nos arquivos complementares.

[8] Extensão da documentação: Observada a necessidade de uma instalação funcional de um C
compilador

[9] Estendeu as definições de destino do Windows e o código para lidar com os arquivos de manifesto usados
por modernos ambientes de desenvolvimento MS. Observe que este código lida com ambos
possibilidades, ambiente usando manifestos e (antigos (er)) ambientes sem.

[10] Estendeu as definições de destino do Windows de 64 bits e o código para detectar automaticamente a necessidade de
a biblioteca auxiliar "bufferoverflowU.lib" e reconfigurar a compilação e o link
comandos apropriadamente. Presumimos que a biblioteca deve estar vinculada quando presente.
Isso não deve ser prejudicial se a biblioteca estiver presente, embora não seja necessária. Simplesmente supérfluo.
Procuramos a biblioteca nos caminhos especificados pela variável de ambiente LIB.

MUDANÇAS PARA VERSÃO 3.0.2


[1] Corrigido o problema no modo de compilação e execução, em que os comandos colocados no auto_index não são
encontrado pelo comando [desconhecido] do Tcl.

[2] Corrigida uma incompatibilidade de chave de matriz, interrompendo o uso de dados do cliente e função de exclusão para
procedimento. Relatado por Jos DeCoster, com patch.

[3] Implementada uma opção de linha de comando -L, um equivalente de opção -I, apenas para a biblioteca
caminhos de pesquisa.

[4] Problemas 5 e 8 corrigidos do github. Trabalhando em torno de uma variável ausente :: errorInfo. Isto
deve estar sempre presente, no entanto, parece haver revisões do Tcl em torno do qual
violar essa suposição.

MUDANÇAS PARA VERSÃO 3.0.3


[1] Correção dos problemas 5 e 8 do github para os scripts build.tcl de exemplo. Trabalhando em torno de um
variável ausente :: errorInfo. Deve estar sempre presente, no entanto, parece haver
revisões do Tcl em torno das quais violam essa suposição.

MUDANÇAS PARA VERSÃO 3.0.4


[1] Corrigida geração do initname do pacote quando o código de entrada é lido
stdin e não tem um caminho adequado.

[2] Corrigido o problema 11 do github. Agora usando / LIBPATH em vez de -L no Windows (libinclude
definição de configuração).

[3] Critcl estendido para lidar com -l: formato do caminho das opções -l. GNU ld 2.22+ cuida disso
pesquisando o caminho como está. Bom ao especificar bibliotecas estáticas, como -l simples
procura bibliotecas compartilhadas em preferência às estáticas. critcl cuida disso agora, como
GNU lds mais antigos não entendem isso, nem os vários linkers específicos de fornecedores.

[4] Corrigido o problema nº 12 do github. Critcl agora determina a versão do MSVC em uso e usa
para alternar entre várias opções de depuração de link. Simplificou o manuseio de
bufferoverflowU.lib também, fazendo uso do mesmo mecanismo e recolhendo os dois
seções de configurações que tínhamos de volta em uma.

[5] Reformulada a inserção de #line pragmas no código C gerado para evitar
limitações no argumento de número de linha imposto por vários compiladores, e ser mais
preciso.

[6] Processamento de argumento modificado. A opção -libdir agora também implica -L para seu argumento.

[7] Tratamento estendido da opção -show (critcl :: showconfig) para listar o caminho do
arquivo de configuração de onde os dados vêm. Bom para depurar configuração
processamento.

[8] Estendeu o script de construção com metas para regenerar a documentação incorporada,
e diagramas e para gerar uma versão.

MUDANÇAS PARA VERSÃO 3.0.5


[1] Correção do bug no novo código para #line pragmas acionados ao especificar o código C
sem espaço em branco à esquerda.

[2] Extensão da documentação para ter páginas de manual para a licença, recuperação de fonte,
instalador e guias do desenvolvedor.

MUDANÇAS PARA VERSÃO 3.0.6


[1] Corrigido o problema 10 do github. O aplicativo critcl agora fornece um código de saída adequado (1)
em caso de falha de construção, em vez de sempre indicar sucesso (status 0).

[2] Corrigido o problema 13 do github. O tratamento de bufferoverflowU.lib para versões de lançamento era
inconsistente com o manuseio de compilações de depuração. Agora é tratado de forma idêntica
(condicional) em ambos os casos.

[3] Limpeza da documentação, principalmente no guia de instalação, e o README.md mostrado por
github

MUDANÇAS PARA VERSÃO 3.0.7


[1] Corrigido o código gerado por comando critcl :: c ++. O código emitido entregou um não
tabela de string estática para Tcl_GetIndexFromObj, em violação do contrato, que
requer que a mesa tenha um endereço fixo. Esta foi uma quebra de memória esperando para
acontecer. Obrigado a Brian Griffin por nos alertar para o problema geral.

MUDANÇAS PARA VERSÃO 3.1


[1] Adicionado um novo pacote de nível superior critcl :: iassoc.

Este pacote simplifica a criação de código associando dados a um interpretador
via Tcl's Tcl_ (Get | Set) AssocData () APIs. O usuário pode se concentrar em seus dados enquanto
todo o código C clichê necessário para oferecer suporte a isso é gerado pelo pacote.

Este pacote usa vários dos novos recursos que foram adicionados ao núcleo crítico
pacote, veja abaixo.

[2] Adicionado o pacote de nível superior critcl :: class.

Este pacote simplifica a criação de objetos de nível C com classe e instância
comandos. O usuário pode escrever uma definição de classe com variáveis ​​de classe e instância
e métodos semelhantes a uma classe TclOO, com todo o código C clichê necessário para
apoiar isso gerado pelo pacote.

Este pacote usa vários dos novos recursos que foram adicionados ao núcleo crítico
pacote, veja abaixo.

[3] Estendeu a API para lidar com metadados TEApot. Adicionado o comando critcl :: meta? para
consultar as informações armazenadas. O principal uso atualmente previsto é a recuperação do
nome do pacote atual por comandos de utilitário, para uso em nomes construídos. Isto
informações particulares estão sempre disponíveis devido à varredura estática do pacote
arquivo na execução do primeiro comando critcl.

Os novos pacotes critcl :: iassoc e critcl :: class (veja acima) são usuários deste
comando.

[4] Estendeu a API com um comando, critcl :: name2c, expondo o processo de conversão
um nome Tcl em nome de base, espaço de nomes e espaço de nomes C. Isso permite um nível superior
geradores de código para gerar o mesmo tipo de identificadores C que crítico si.

O novo pacote critcl :: class (veja acima) é um usuário deste comando.

[5] Estendeu a API com um comando, critcl :: source, executando comandos critcl encontrados em
um arquivo separado no contexto do arquivo atual. Isso permite um gerenciamento mais fácil
de corpos maiores de código, pois permite ao usuário dividi-los em mais fáceis de
digerir pedaços menores sem causar a geração de vários pacotes.

[6] Em relação ao item anterior, ampliou a API com comandos para desviar a cobrança
de código C gerado na memória. Isso torna mais fácil usar os comandos para
código C incorporado em geradores de código de nível superior.

Veja a seção Avançado: Desvios para obter detalhes sobre os comandos fornecidos.

O novo pacote critcl :: class (veja acima) é um usuário dessas instalações.

[7] Estendeu a API com comandos ajudando os desenvolvedores com a geração de C adequada
#linha diretivas. Isso permite que geradores de código de nível superior gerem e inseram
suas próprias diretivas, garantindo que os erros de compilação em seu código sejam
atribuído.

Veja a seção Avançado: Localização de grupos para obter detalhes sobre os comandos fornecidos.

Os novos pacotes critcl :: iassoc e critcl :: class (veja acima) são usuários destes
instalações.

[8] Estendeu a API com comandos, dando aos usuários a capacidade de definir argumentos personalizados
e tipos de resultado para :: critcl :: cproc.

Veja a seção Avançado: Estendendo cproc para obter detalhes sobre os comandos fornecidos.

MUDANÇAS PARA VERSÃO 3.1.1


[1] Correções de bugs ao redor. Em detalhe:

[2] Corrigida a geração de erros # args errados para critcl :: cproc e código derivado
(critcl :: class métodos baseados em cproc). Use NULL se não houver argumentos e pegue
a compensação em conta.

[3] Corrigido o tratamento de nomes de pacotes por critcl :: class. Esqueci que eles podem conter
separadores de namespace. Transferido para a versão 1.0.1.

[4] Estendeu a critcl :: class mensagem de erro gerada na criação da instância para maior clareza.
Transferido para a versão 1.0.2.

MUDANÇAS PARA VERSÃO 3.1.2


[1] Aprimoramento. Em detalhe:

[2] Estendido critcl :: cproc para ser capaz de lidar com argumentos opcionais, de forma limitada.
Isso está automaticamente disponível para critcl :: class métodos baseados em cproc também.

[3] Correção de bug em atribuir emulação para Tcl 8.4. Defina adequadamente as variáveis ​​não utilizadas para o
string vazia. Versão melhorada do pacote de emulação lasign84 para 1.0.1.

MUDANÇAS PARA VERSÃO 3.1.3


[1] Aprimoramento. Em detalhe:

[2] Adicionado novo tipo de argumento "pstring", para "Pascal String", uma string contada, ou seja, um
combinação de ponteiro de string e comprimento de string.

[3] Novos métodos adicionados critcl :: argtypesupport e :: critcl :: argsupport definir e usar
código de suporte adicional para um tipo de argumento, aqui usado por "pstring" acima para
definir a estrutura necessária.

[4] Semi-correções de bugs nos pacotes critcl :: class e critcl :: iassoc. Pragmas para o AS
scanner de metadados para garantir que os arquivos de modelo façam parte do pacote.
As versões aumentaram para 1.0.4 e 1.0.1, respectivamente.

MUDANÇAS PARA VERSÃO 3.1.4


[1] Correção de bug no pacote critcl :: class. Gere um campo fictício na estrutura da classe se
a classe não tem variáveis ​​de classe. Sem essa mudança, a estrutura ficaria vazia,
e vários compiladores não são capazes de lidar com esse tipo.

[2] Corrigido um erro de digitação que quebrou a configuração win64.

[3] Corrigido o problema nº 16, um erro de digitação na documentação do comando critcl :: class.

MUDANÇAS PARA VERSÃO 3.1.5


[1] Corrigido o problema nº 19. Fez a expressão regular extraindo o número da versão do MSVC
mais geral para fazê-lo funcionar em sistemas de língua alemã. Isso pode ter que ser
revisitado no futuro, para outras localidades do Windows.

[2] Corrigido o problema nº 20. Opção feita -tea funcionar no Windows, pelo menos em uma emulação Unix
ambiente como msys / mingw.

MUDANÇAS PARA VERSÃO 3.1.6


[1] Corrigido o problema nº 21. Enquanto a multi-definição das variáveis ​​de ponteiro da tabela stub era
ok com todos os vinculadores C vistos até agora, os vinculadores C ++ não gostaram nada disso.
Reformulado o código para garantir que este conjunto de variáveis ​​seja gerado apenas uma vez, em
o invólucro em torno de todas as peças a serem montadas.

[2] Corrigido o problema # 22, o tratamento dos argumentos do identificador de comando de
critcl :: ccommand, critcl :: cproc e critcl :: cdata. Agora permitimos adequadamente qualquer Tcl
identificador e gerar identificadores C internos adequados a partir deles.

Como parte disso, a assinatura do comando critcl :: name2c mudado. O comando agora
fornece uma lista de quatro valores em vez de três. O novo valor foi adicionado no
final.

Adaptou ainda mais a implementação do pacote critcl :: class, um usuário de
critcl :: name2c. Este pacote está agora na versão 1.0.6 e requer critcl 3.1.6

Por último, consertou o manuseio incorreto da opção -cnome in critcl :: ccommand e
critcl :: cproc.

[3] Corrigido o problema nº 23.

MUDANÇAS PARA VERSÃO 3.1.7


[1] Corrigido o problema nº 24. Extraia e mostre incondicionalmente avisos do compilador encontrados no
construir log. Evita que os usuários percam avisos que, embora não causem a compilação
falhar, ainda pode indicar problemas.

[2] Novo recurso. Gancho de saída. Todas as saídas do usuário que não são de mensagens agora são roteadas por meio do
comando critcl :: print, e os usuários têm permissão para substituí-lo ao usar o critcl
aplicativo como pacote.

[3] Novo recurso, de Ashok P. Nadkarni. As configurações da plataforma podem herdar valores de
configurações definidas antes deles.

MUDANÇAS PARA VERSÃO 3.1.8


[1] Corrigido problema com índices de pacote gerados para Tcl 8.4. Junte-se à lista de comandos
com ponto e vírgula, não nova linha.

[2] Corrigido o problema nº 26, que trazia casos de uso que esqueci de considerar ao consertar
bug # 21 (ver critcl 3.1.6).

MUDANÇAS PARA VERSÃO 3.1.9


[1] Corrigido o problema nº 27. Adicionadas definições de plataforma ausentes para vários linux alternativos e
Alvos do OS X.

[2] Corrigido o problema nº 28. Adicionadas sinalizações -mXX ausentes para vinculação no linux- {32,64} - *
alvos.

[3] Corrigido o problema nº 29. Substituído o uso de informações "cheaders" brutas no processamento
de "definir" com as diretivas de inclusão adequadas derivadas dele.

[4] Corrigido o problema por trás da rejeição da solicitação de pull # 30 por Andrew Shadura. Dinamicamente
extrair as declarações de variáveis ​​stubs dos arquivos de cabeçalho Tcl e gerar
definições de variáveis ​​correspondentes para uso no código do pacote. O código gerado irá
agora seja sempre consistente com os cabeçalhos, mesmo quando a própria cópia do critcl deles é
substituídos por cabeçalhos de sistema.

[5] Corrigido o problema nº 31. Patch aceito por Andrew Shadura, com alterações (comentários), para
integração mais fácil de critcl com sistemas de pacotes de SO, substituindo as cópias de critcl de
Cabeçalhos Tcl com seus próprios.

[6] Corrigido o problema nº 32. Solicitação de pull mesclada por Andrew Shadura. Vários erros de digitação em
documentação e comentários.

[7] Corrigido o problema nº 33. Trate melhor os arquivos que começam com um ponto.

AUTORES


Jean Claude Wippler, Steve Landers e Andreas Kupries

Use critcl online usando serviços onworks.net


Servidores e estações de trabalho gratuitos

Baixar aplicativos Windows e Linux

  • 1
    Phaser
    Phaser
    Phaser é um aplicativo rápido, gratuito e divertido
    framework de jogo HTML5 de origem que oferece
    Renderização WebGL e Canvas em
    navegadores da web para desktop e celular. Jogos
    pode ser co ...
    Baixar Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL é um motor de jogo para criar
    versões eletrônicas do tabuleiro tradicional
    e jogos de cartas. Ele fornece suporte para
    renderização e interação de peças do jogo,
    e ...
    Baixar VASSAL Engine
  • 3
    OpenPDF - Fork do iText
    OpenPDF - Fork do iText
    OpenPDF é uma biblioteca Java para criar
    e edição de arquivos PDF com LGPL e
    Licença de código aberto MPL. OpenPDF é o
    LGPL/MPL sucessor de código aberto do iText,
    um ...
    Baixar OpenPDF - Bifurcação do iText
  • 4
    SAGA GIS
    SAGA GIS
    SAGA - Sistema para Automatizado
    Análises geocientíficas - é um geográfico
    Software de Sistema de Informação (GIS) com
    imensas capacidades para geodados
    processando e ana ...
    Baixar SAGA GIS
  • 5
    Caixa de ferramentas para Java / JTOpen
    Caixa de ferramentas para Java / JTOpen
    O IBM Toolbox for Java / JTOpen é um
    biblioteca de classes Java suportando o
    programação cliente/servidor e internet
    modelos para um sistema rodando OS/400,
    i5/OS, ou...
    Baixar Toolbox para Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (ou D3 para documentos baseados em dados)
    é uma biblioteca JavaScript que permite
    para produzir dados dinâmicos e interativos
    visualizações em navegadores da web. Com D3
    você...
    Baixar D3.js
  • Mais "

Comandos Linux

  • 1
    Abidiff
    Abidiff
    abidiff - comparar ABIs de arquivos ELF
    abidiff compara o aplicativo binário
    Interfaces (ABI) de duas bibliotecas compartilhadas
    em formato ELF. Ele emite um significativo
    relatorio ...
    Executar abidiff
  • 2
    abidw
    abidw
    abidw - serializar o ABI de um ELF
    arquivo abidw lê uma biblioteca compartilhada em ELF
    formato e emite uma representação XML
    de seu ABI para a saída padrão. O
    emitido ...
    Execute abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversão de bibliografia
    Serviços de utilidade pública ...
    Execute copac2xml
  • 4
    copta
    copta
    copt - otimizador de olho mágico SYSNOPIS:
    copt.. DESCRIÇÃO: copt é um
    otimizador de olho mágico de uso geral. Isto
    lê o código de sua entrada padrão e
    escreve um...
    Executar copia
  • 5
    collect_stx_titles
    collect_stx_titles
    collect_stx_titles - reunir título
    declarações de documentos Stx ...
    Executar collect_stx_titles
  • 6
    banco giratório
    banco giratório
    bancada - benchmark http ...
    Executar gatling-bench
  • Mais "

Ad