InglésFrancésEspañol

Ad


icono de página de OnWorks

critcl - Online en la nube

Ejecute critcl en el proveedor de alojamiento gratuito de OnWorks a través de Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando critcl que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


critcl - Aplicación CriTcl

SINOPSIS


crítico ?opción...? ?presentar? ...

_________________________________________________________________

DESCRIPCIÓN


Bienvenido a C Runtime In TCL, Crítico para abreviar, un sistema para construir paquetes de extensión C
para Tcl sobre la marcha, desde el código C incrustado en los scripts de Tcl, para todos los que deseen hacer
su código va más rápido.

Este documento es la página de manual de referencia para crítico mando. Su público objetivo son
personas que tienen que construir paquetes usando crítico para el despliegue. Escritores de paquetes con
El código C incrustado puede ignorar este documento. Si necesita una descripción general del conjunto
en su lugar, vaya y lea el Introducción A Crítico.

Esta aplicación reside en la capa de aplicación de CriTcl.

* ================ *
| Aplicaciones |
| crítica |
| critcl :: aplicación |
* ================ *

+ ---------------- +
| Paquetes básicos |
| crítica |
| critcl :: util |
+ ---------------- +

+ ---------------- +
| Paquetes de soporte |
| stubs :: * |
| md5, plataforma |
| ... |
+ ---------------- +

La aplicación admite la siguiente línea de comando general:

crítico ?opción...? ?presentar? ...
El conjunto exacto de opciones admitidas, su significado e interacción se detalla en
. Aplicación Opciones debajo. Para obtener un conjunto más amplio de ejemplos, consulte la sección
"Creación de paquetes Critcl" en el documento sobre Usar Crítico.

SOLICITUD CAMPUS


Se entienden las siguientes opciones

-v

--versión
Estas opciones hacen que critcl imprima su versión en stdout y luego salir.

-I camino
Esta opción especifica una ruta de inclusión global adicional para usar durante la compilación
de.critcl"archivos. Todos los valores se utilizan si esto se especifica varias veces.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-L camino
Esta opción especifica una ruta de búsqueda de biblioteca global adicional para usar durante la vinculación
de.critcl"archivos. Todos los valores se utilizan si esto se especifica varias veces.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-cache camino
Esta opción especifica la ruta al directorio que se utilizará como caché de resultados. Que no
especificado, el valor predeterminado es "~ / .critcl /", o al generar un paquete (ver
opción -paquete a continuación), a "~ / .critcl /.", Cuando se especifica varias veces,
se utiliza el último valor.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-limpiar Cuando se especifica, la caché de resultados se vacía, es decir, todos los archivos y directorios encontrados
dentro se eliminan) antes de que comience la compilación.

Esta opción es irrelevante al generar un paquete (ver opción -paquete abajo) porque
este modo comienza con una caché de resultados única y vacía.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-config camino
Esta opción especifica la ruta a un archivo de configuración personalizado, lo que permite al usuario
utilizar sus propias especificaciones de destino. Si no se especifica un valor predeterminado cableado
En su lugar, se utiliza la configuración incrustada en el núcleo del sistema. Cuando se especifica múltiple
veces se utiliza el último valor.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-depurar modo
Esta opción activa la compilación con depuración. Acepta los modos siguientes. Cuándo
especificado varias veces, se utiliza la combinación de todos los modos.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

memoria Este modo activa la depuración de memoria de las asignaciones realizadas a través del Tcl
núcleo.

símbolos
Este modo activa la construcción de todos ".c"archivos con símbolos de depuración.

todos Este modo activa tanto memoria y símbolos.

-desactivar nombre
Esta opción establece el valor de la opción de configuración de compilación personalizada nombre a false.
Es equivalente a "-con-nombre 0 ".

La información se valida solo si uno de los ".critcl"archivos de entrada en realidad
define y usa una opción de configuración de compilación personalizada con eso nombre .

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-habilitar nombre
Esta opción establece el valor de la opción de configuración de compilación personalizada nombre a verdadero.
Es equivalente a "-con-nombre 1 ".

La información se valida solo si uno de los ".critcl"archivos de entrada en realidad
define y usa una opción de configuración de compilación personalizada con eso nombre .

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-fuerza Cuando la compilación especificada siempre se realiza, incluso si una biblioteca compartida para el archivo
ya existe. Este efecto se puede obtener limpiando la caché (ver arriba) como
bueno, excepto que es perezoso en la destrucción de archivos y no destruirá archivos
no relacionado con los que estamos construyendo.

Esta opción es irrelevante al generar un paquete (ver opción -paquete abajo) porque
este modo comienza con una caché de resultados única y vacía.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-ayuda Esta opción hará que el sistema imprima una breve ayuda sobre la sintaxis de la línea de comandos.
y opciones y luego salir de la aplicación.

-guardar Esta opción hará que el sistema mantenga el ".c"archivos generados por una ejecución en el
caché de resultados. Al generar un paquete (ver opción -paquete a continuación) esto también previene
la eliminación de la caché de resultados única utilizada por la ejecución. Esta opción está destinada
para la depuración de crítico sí mismo, donde puede ser necesario inspeccionar el
código C generado.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-libdir camino
Esta opción especifica la ruta bajo la cual los paquetes generados a través de la opción -paquete
se guardan. También especifica una ruta para buscar bibliotecas, como para -L. Cuando el
especificado varias veces se utiliza el último valor. Cuando no se especifica en absoluto
defecto, "lib", se utiliza. Tenga en cuenta que se trata de una ruta relativa, colocando el resultado en
el directorio de trabajo actual.

-incluido aire camino
Esta opción especifica la ruta en la que se guardan los encabezados de paquetes generados.
También especifica una ruta para buscar archivos de inclusión, como para -I. Cuando se especifica
varias veces el último valor se utiliza como destino, sin embargo, todos los valores anteriores
se mantienen en la ruta de búsqueda de inclusión. Cuando no se especifica en absoluto el valor predeterminado,
"incluir", se utiliza. Tenga en cuenta que se trata de una ruta relativa, colocando el resultado en el
directorio de trabajo actual.

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-paquete El modo predeterminado de la aplicación es construir el ".critcl"archivos enumerados en el
línea de comando y guarde los resultados en la caché de resultados. Esencialmente pre-llenando el
caché con paquetes importantes, lo que reduce el tiempo necesario para usar estos
paquetes

Esta opción activa uno de los otros modos, generación de paquetes. En este modo el
Los archivos de entrada se procesan primero como de costumbre, sin embargo, después de eso, se agrupan en
se generan una sola biblioteca y archivos adicionales para que esta biblioteca se pueda utilizar como
un paquete regular de Tcl.

La opción -té, ver más abajo, invoca el último modo, la generación TEA. Si ambas opciones,
es decir, -paquete y -té se especifican el último especificado gana.

En este modo las opciones -limpiar y -fuerza son irrelevantes e ignoradas. A diferencia de,
la opción -libdir es relevante tanto en esto como en -té modo.

Cuando se especifica esta opción, el nombre base del primer argumento de archivo después de la
options se usa como el nombre del paquete a generar. Si la extensión de eso
archivo indica una biblioteca compartida (".asi que"".sl"".dylib", Y". Dll") tambien es
eliminado del conjunto de archivos de entrada. A ".tcl"archivo se mantiene como parte de la entrada. Un
se asume que un solo archivo sin extensión tiene un ".tcl"extensión. A
archivo sin extensión, pero otros archivos de entrada siguientes se tratan como el nombre de
una biblioteca compartida propiamente dicha y eliminada del conjunto de archivos de entrada.

Ejemplos:
=> El nombre del paquete es: foo
=> El archivo de entrada es: foo.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: bar.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: foo.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: bar.tcl

-espectáculo Esta opción, cuando se especifica, hará que el sistema imprima la configuración de
el objetivo elegido para stdout y luego salir. La elección del objetivo puede verse influida
a través de la opción -objetivo (vea abajo).

-mostrar todo
Esta opción, cuando se especifica, hará que el sistema imprima la totalidad elegida
archivo de configuración a stdout y luego salir. La elección del archivo de configuración puede
ser influenciado a través de la opción -config (véase más arriba).

-objetivo nombre
Esta opción anula la elección predeterminada de destino de compilación con la elección del usuario.
Cuando se especifica varias veces, se utiliza el último valor. El objetivo nombrado debe existir
en el archivo de configuración elegido. Opción de uso -objetivos (ver a continuación) para obtener una lista de
los objetivos aceptables. La elección del archivo de configuración se puede influir a través de
la opción -config (véase más arriba).

Esta opción es irrelevante al generar un paquete TEA (ver opción -té abajo).

-objetivos
Esta opción, cuando se especifica, hará que el sistema imprima la lista de todos los
objetivos del archivo de configuración elegido para stdout y luego salir. La elección de
El archivo de configuración se puede influir a través de la opción -config (véase más arriba).

-té Similar a la opción -paquete, excepto que el modo invocado no genera binarios,
pero una jerarquía de directorios que contiene el ".critcl"archivo, sus archivos complementarios y un
Sistema de construcción similar a TEA con la mayor parte del código de soporte necesario (incluidas copias
de los paquetes critcl).

Si ambas opciones, es decir -paquete y -té se especifican el último especificado gana.

En este modo las opciones -I, -L, -limpiar, -fuerza, -cache, -incluido aire, -habilitar,
-desactivary -con-FOO son irrelevantes e ignoradas. Por el contrario, la opción -libdir
es relevante tanto en esto como en -paquete modo.

Cuando se especifica esta opción, el nombre base del primer argumento de archivo después de la
options se usa como el nombre del paquete a generar. Si la extensión de eso
archivo indica una biblioteca compartida (".asi que"".sl"".dylib", Y". Dll") tambien es
eliminado del conjunto de archivos de entrada. A ".tcl"archivo se mantiene como parte de la entrada. Un
se asume que un solo archivo sin extensión tiene un ".tcl"extensión. A
archivo sin extensión, pero otros archivos de entrada siguientes se tratan como el nombre de
una biblioteca compartida propiamente dicha y eliminada del conjunto de archivos de entrada.

Ejemplos:
=> El nombre del paquete es: foo
=> El archivo de entrada es: foo.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: bar.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: foo.tcl
=> El nombre del paquete es: foo
=> El archivo de entrada es: bar.tcl

-con-nombre propuesta de
Esta opción establece el valor de la opción de configuración de compilación personalizada nombre a propuesta de.

La información se valida solo si uno de los ".critcl"archivos de entrada en realidad
define y usa una opción de configuración de compilación personalizada con eso nombre .

Esta opción es irrelevante al generar un paquete TEA (ver opción -té encima).

PAQUETE ESTRUCTURA


Los paquetes generados por critcl tienen la siguiente estructura básica:

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

Notas

[1] El archivo "paqueteIndex.tcl"es el archivo de índice de paquete estándar esperado por Tcl
gestión de paquetes. Se obtiene durante una búsqueda de paquetes y declara el
package a Tcl con sus archivos y cómo manejarlos.

[2] El archivo "critcl-rt.tcl"es un archivo auxiliar que contiene el código común utilizado por
"paqueteIndex.tcl"para realizar sus tareas.

[3] El archivo "condiciones de la licencia"es opcional y aparece solo si el".critcl"presente el
El paquete se genera a partir del comando usado critcl :: licencia declarar paquete
autor y licencia.

[4] Todos los archivos declarados con el comando critcl :: tsources se colocan en el subdirectorio
"TCL".

[5] La biblioteca compartida generada por critcl se coloca en una sub-
directorio.

Toda la estructura, y especialmente el último punto, nos permite fusionar posteriormente los resultados
(para el mismo paquete y versión) para múltiples plataformas de destino en un solo directorio
estructura sin conflictos, simplemente copiando los directorios superiores entre sí. El
sólo los archivos que pueden entrar en conflicto están en el y "TCL"directorios, y para estos
sepa que son idénticos en todos los objetivos. El resultado de tal fusión se vería así:

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

CAMBIOS PARA VERSIÓN 2.1


[1] Se corrigió el error donde critcl :: tsources caminos relativos interpretados como relativos a la
directorio de trabajo actual en lugar de relativo al ".critcl"archivo usando el
comando, como lo hacen todos los demás comandos de este tipo.

[2] Internos fijos, evitando la recopilación de información para múltiples ".critcl"archivos a
fuga entre ellos. Notablemente, critcl :: tk no es una opción de configuración global
más.

[3] Se corrigió el comando. critcl :: licencia para ser una operación nula en el modo "compilar y ejecutar",
en lugar de lanzar un error.

[4] Se corrigió la interferencia de la aplicación critcl con la caché de resultados "compilar y ejecutar"
in -paquete modo al hacer que use un modo completamente separado (y por defecto transitorio)
directorio para ese modo.

[5] Se corrigió un error que cambiaba a ".critcl"el archivo no resultó en una reconstrucción para el modo
"compilar y ejecutar". Todos los comandos de API relevantes ahora garantizan cambios de UUID.

[6] Se corrigió un error en el manejo de backend de critcl :: debug donde el compañero c-fuentes de
una ".critcl"archivo no se compiló con opciones de depuración, aunque el".critcl" archivo
mi identidad.

[7] Error solucionado en critcl :: debug que impidió el reconocimiento del modo "todos" cuando estaba
no es el primer argumento del comando.

[8] Error corregido en "precarga.c"impidiendo su compilación en plataformas que no sean Windows.

[9] Se corrigió un error de larga data en el manejo de calificadores de espacio de nombres en el nombre del comando.
argumento de critcl :: cproc y critcl :: ccommand. Ahora es posible especificar un
nombre de comando completamente calificado sin problemas.

[10] Ampliado / reelaborado critcl :: tsources ser la forma canónica de declarar ".tcl"
archivos complementarios incluso para el modo "compilar y ejecutar".

[11] Ampliado / reelaborado critcl :: tsources para permitir el uso de un ".critcl"archivo como propio
Archivo complementario tcl.

[12] Extendido critcl :: marco para verificar internamente el objetivo de compilación de OS X e ignorar
la declaración si no lo es.

[13] Extendido critcl :: fallido ser invocable más de una vez en un ".critcl"archivo. El
la primera llamada obliga a la compilación, si aún no se hizo, a obtener el resultado. Más
las llamadas devuelven el resultado almacenado en caché de la primera llamada.

[14] Se amplió el manejo de la variable de entorno CC en el código que determina el
compilador para usar para tratar (es decir, eliminar) rutas al compilador, archivo del compilador
extensiones y opciones del compilador especificadas después del propio compilador, dejando solo
el nombre desnudo del compilador.

[15] Se extendió el código que maneja la búsqueda de bibliotecas precargadas para imprimir las rutas que
buscado, lo que facilita la depuración de un error de búsqueda.

[16] Un nuevo comando critcl :: tcl se puede utilizar para declarar la versión de Tcl mínimamente
necesario para construir y ejecutar el ".critcl"archivo y paquete. El valor predeterminado es 8.4 si no
declarado. Critcl extendido para tener los stubs y encabezados para todos los Tcl 8.4, 8.5,
y 8.6.

[17] Un nuevo comando critcl :: cargar fuerza la construcción y carga de un ".critcl"archivo. Esto es
la forma oficial de anular el esquema de carga a pedido y compilación diferida predeterminada de critcl
para el modo "compilar y ejecutar".

Note que despues de usar critcl :: cargar / critcl :: fallido en un ".critcl"archivo no es
Es posible usar comandos critcl en ese archivo. Hacerlo arrojará un error.

[18] Se amplió la generación de pragmas "#line" para usar info marco (si está disponible) para
proporcione al compilador de C números de línea exactos en el ".critcl"archivo para el
informes de advertencias y errores.

[19] Extendido critcl :: comprobar con el registro para ayudar con la depuración de las comprobaciones en tiempo de compilación del
entorno, más un argumento opcional adicional para proporcionar etiquetado.

[20] Se agregó un nuevo comando. critcl :: enlace de verificación que no solo intenta controlar el medio ambiente
mediante la compilación del código, sino también su capacidad de vinculación.

[21] Se agregó un nuevo comando. critcl :: msg para mensajería, como comando critcl :: error es para
error al reportar. Asimismo, este es un gancho que un usuario del paquete está autorizado a
anular. La implementación predeterminada, utilizada por el modo compilar & corrida no hace nada. El
implementación para el modo generar paquete imprime el mensaje en stdout.

El uso previsto es para la presentación de informes de resultados determinados por critcl :: comprobar y
critcl :: enlace de verificación durante la construcción, para ayudar con la depuración cuando algo sale mal
con un cheque.

[22] Expuso los aspectos internos del procesamiento de argumentos de critcl :: proc para uso avanzado
usuarios. Los nuevos comandos son

[ 1 ] critcl :: argnames

[ 2 ] critcl :: argcnames

[ 3 ] critcl :: argcsignature

[ 4 ] critcl :: argvardecls

[ 5 ] critcl :: argconversion

Por favor vea la sección Avanzado Embedded C Código de las crítico documentación del paquete para
Detalles.

[23] Se extendió el paquete critcl para interceptar paquete proporcionar y grabe el archivo ->
asignación de nombre de paquete. Además, otros cambios internos ahora permiten el uso de espacios de nombres
nombres de paquetes sin dejar de utilizar los nombres de ruta adecuados y la función init.

[24] Eliminó los comandos no utilizados. critcl :: optimizar y critcl :: incluir.

[25] Caído -lib modo desde la aplicación critcl.

[26] Eliminación de restos de soporte para Tcl 8.3 y anteriores.

CAMBIOS PARA VERSIÓN 3


[1] El comando critcl :: plataforma fue obsoleta en la versión 2.1, reemplazada por
critcl :: plataforma de destino, pero guardado por compatibilidad. Ahora se ha eliminado.

[2] El comando critcl :: compilado se mantuvo en la versión 2.1 con semántica en
contradicción a su, por compatibilidad. Esta contradicción ha sido eliminada,
cambiando la semántica visible del comando para que esté en línea con su nombre.

[3] El cambio a la versión 3 se hizo necesario debido a los dos visibles incompatibles
cambios anteriores.

[4] Se extendió el paquete de la aplicación con código que maneja una nueva opción. -té. Especificando
esta opción invoca un modo especial donde critcl genera un paquete TEA, es decir, envuelve
la entrada en una jerarquía de directorios y archivos de soporte que le proporcionan TEA-
sistema de compilación similar.

Esta nueva opción, y -paquete, se excluyen entre sí. Si se especifican ambos, el último utilizado
La opción tiene prioridad.

La jerarquía de directorios de paquetes generada es en su mayor parte autónoma, pero no completamente.
Requiere no solo una instalación funcional de Tcl, sino también instalaciones funcionales
de los paquetes md5 y cmdline. Ambos son proporcionados por el Tcllib haz.
No es necesario, pero se recomienda tener instalado cualquiera de los paquetes que pueden
acelerar el funcionamiento de md5, es decir kit de cifrado, tclibco trf.

[5] Se extendió el paquete critcl con un nuevo comando. critcl :: escanear tomando el camino a un
".critcl", escaneándolo estáticamente y devolviendo la licencia, la versión, una lista de
sus archivos complementarios, la lista de API importadas y la lista de aplicaciones personalizadas especificadas por el desarrollador
opciones de configuración. Estos datos son la base para la envoltura de TEA descrita.
anterior.

Tenga en cuenta que esto es un estático escanear. Mientras que los otros modos de construcción pueden (deben) ejecutar el
".critcl"archivar y tomar decisiones específicas de la plataforma con respecto al código C ensamblado,
archivos complementarios, etc., el modo de envoltura de TEA no está en condiciones de hacer que la plataforma
decisiones específicas. Tiene que envolver todo lo que posiblemente sea necesario
al construir realmente. De ahí el escaneo estático. Sin embargo, esto tiene su propio conjunto de
problemas, a saber, la incapacidad de descifrar cualquier construcción dinámica de compañero
rutas de archivo, al menos por sí solas. Por lo tanto:

[6] Se extendió la API utilizada por los paquetes basados ​​en critcl con el comando critcl :: posee. Mientras
este comando es ignorado por los modos de construcción regulares que describió el escáner estático
arriba toma sus argumentos como los nombres de los archivos complementarios que deben ajustarse
en el paquete de TEA y no podría ser calculado por el escáner de otra manera, como
debido a las rutas dinámicas a critcl :: tsources, critcl :: csources, obteniendo de origen
directamente, o simplemente como archivos de datos adjuntos.

[7] Se extendió la API utilizada por los paquetes basados ​​en critcl con el comando critcl :: api para
gestión de tablas de stubs, ya sea su uso, y / o declaración y exportación.

Por favor vea la sección Trozos Mesa Administración de las crítico documentación del paquete para
Detalles.

[8] Se extendió la API utilizada por los paquetes basados ​​en critcl con el comando critcl :: userconfig
para la gestión de opciones de configuración personalizadas especificadas por el desarrollador, ya sea su
uso y / o declaración.

Por favor vea la sección Personalizado Construcción Configuración de las crítico documentación del paquete
para obtener más detalles.

[9] Se extendió la API utilizada por los paquetes basados ​​en critcl con los comandos.
critcl :: descripción, critcl :: resumen, critcl :: sujeto, critcl :: metay
critcl :: buildrequirement para la declaración de metadatos de TEApot para / sobre el
paquete.

Por favor vea la sección Contenido del Paquete Meta Datos de las crítico documentación del paquete para
Detalles.

CAMBIOS PARA VERSIÓN 3.0.1


[1] Corrección de errores por todas partes. En detalle:

[2] Se corrigió la grabación de los requisitos de la versión de Tcl. Mantener el nombre y la versión del paquete
juntos, desbloqueando los metadatos generados y el comando de carga del paquete generado.

[3] Se corrigieron los scripts de compilación: al instalar o envolver para TEA, genere cualquier falta
directorios

[4] Se modificaron los scripts de compilación para salir correctamente de la aplicación cuando la ventana de
su GUI se cierra mediante el botón (X).

[5] Se eliminó un 8.5-ism (wb abierto) que se había deslizado en el script de compilación principal.

[6] Se modificaron los scripts de compilación de ejemplo para separar la salida de los diferentes
ejemplos (y paquetes) agregando líneas vacías.

[7] corrección de error de stack :: c: incluye declaraciones de API para su uso en los archivos complementarios.

[8] Ampliación de la documentación: señaló la necesidad de una instalación funcional de un C
compilador

[9] Se extendieron las definiciones de destino de Windows y el código para manejar los archivos de manifiesto utilizados.
por los entornos de desarrollo de MS modernos. Tenga en cuenta que este código maneja tanto
posibilidades, entornos que utilizan manifiestos y entornos (antiguos (más)) sin.

[10] Se extendieron las definiciones y el código de destino de Windows de 64 bits para detectar automáticamente la necesidad de
la biblioteca auxiliar "bufferoverflowU.lib" y reconfigurar la compilación y el enlace
comandos apropiadamente. Suponemos que la biblioteca debe estar vinculada cuando esté presente.
Esto no debería ser perjudicial si la biblioteca está presente, pero no es necesaria. Simplemente superfluo.
Buscamos la biblioteca en las rutas especificadas por la variable de entorno LIB.

CAMBIOS PARA VERSIÓN 3.0.2


[1] Se solucionó el problema en el modo de compilación y ejecución en el que los comandos colocados en auto_index no estaban
encontrado por el comando [desconocido] de Tcl.

[2] Se corrigió una falta de coincidencia de clave de matriz que rompía el uso de los datos del cliente y la función de eliminación para
procedimiento. Informado por Jos DeCoster, con parche.

[3] Implementó una opción de línea de comando. -L, un equivalente de opción -I, solo para biblioteca
rutas de búsqueda.

[4] Se corrigieron los problemas de github 5 y 8. Trabajando alrededor de una variable faltante :: errorInfo. Eso
debe estar siempre presente, sin embargo, parece haber revisiones de Tcl en torno a las cuales
violar esta suposición.

CAMBIOS PARA VERSIÓN 3.0.3


[1] Se corrigieron los problemas 5 y 8 de github, para los scripts de ejemplo build.tcl. Trabajando alrededor de un
variable faltante :: errorInfo. Siempre debe estar presente, sin embargo, parece haber
revisiones de Tcl alrededor de las cuales violan este supuesto.

CAMBIOS PARA VERSIÓN 3.0.4


[1] Se corrigió la generación del nombre de inicio del paquete cuando se lee el código entrante
stdin y no tiene una ruta adecuada.

[2] Se solucionó el problema de github 11. Ahora se usa / LIBPATH en lugar de -L en Windows (libinclude
ajuste de configuración).

[3] Critcl extendido para manejar -l: formato de ruta de las opciones -l. GNU ld 2.22+ maneja esto
buscando el camino tal cual. Bueno al especificar bibliotecas estáticas, como simple -l
busca bibliotecas compartidas en lugar de estáticas. critcl lo maneja ahora, como
Los ld de GNU más antiguos no lo entienden, ni los varios enlazadores específicos de proveedores.

[4] Se solucionó el problema # 12 de github. Critcl ahora determina la versión de MSVC en uso y usos
para cambiar entre varias opciones de depuración de enlaces. Simplificado el manejo de
bufferoverflowU.lib también, haciendo uso del mismo mecanismo y colapsando los dos
secciones de configuraciones que teníamos de nuevo en una.

[5] Se modificó la inserción de #line pragmas en el código C generado para evitar
limitaciones en el argumento del número de línea impuesto por varios compiladores, y ser más
preciso.

[6] Procesamiento de argumentos modificado. La opción -libdir ahora también implica -L como argumento.

[7] Manejo extendido de la opción -show (critcl :: showconfig) para enumerar la ruta del
archivo de configuración del que proceden los datos. Bueno para depurar la configuración
procesar.

[8] Se extendió el script de compilación con objetivos para regenerar la documentación incrustada,
y diagramas, y generar un comunicado.

CAMBIOS PARA VERSIÓN 3.0.5


[1] Se corrigió un error en el nuevo código para los pragmas de línea que se activaban al especificar el código C
sin espacios en blanco iniciales.

[2] Se amplió la documentación para tener páginas de manual para la licencia, recuperación de fuentes,
instalador y guías para desarrolladores.

CAMBIOS PARA VERSIÓN 3.0.6


[1] Se solucionó el problema de github 10. La aplicación critcl ahora entrega un código de salida adecuado (1)
en caso de error de compilación, en lugar de indicar siempre éxito (estado 0).

[2] Se corrigió el problema de github 13. El manejo de bufferoverflowU.lib para las compilaciones de lanzamiento fue
inconsistente con el manejo de las compilaciones de depuración. Ahora se maneja de manera idéntica
(condicional) por ambos casos.

[3] Limpieza de la documentación, principalmente en la guía de instalación, y el archivo README.md mostrado por
gitHub

CAMBIOS PARA VERSIÓN 3.0.7


[1] Se corrigió el código generado por comando critcl :: c ++. El código emitido entregó un
tabla de cadenas estáticas para Tcl_GetIndexFromObj, en violación del contrato, que
requiere que la mesa tenga una dirección fija. Este fue un golpe de memoria esperando
ocurrir. Gracias a Brian Griffin por acercarnos al problema general.

CAMBIOS PARA VERSIÓN 3.1


[1] Se agregó un nuevo paquete de nivel superior. critcl :: iassoc.

Este paquete simplifica la creación de código asociando datos con un intérprete
a través de Tcl's Tcl_ (Obtener | Establecer) AssocData () API. El usuario puede concentrarse en sus datos mientras
todo el código C repetitivo necesario para admitir esto es generado por el paquete.

Este paquete utiliza varias de las nuevas funciones que se agregaron al núcleo crítico
paquete, consulte a continuación.

[2] Se agregó el paquete de nivel superior. critcl :: clase.

Este paquete simplifica la creación de objetos de nivel C con clase e instancia
comandos. El usuario puede escribir una definición de clase con variables de instancia y de clase
y -métodos similares a una clase TclOO, con todo el código C repetitivo necesario para
Apoyar esto generado por el paquete.

Este paquete utiliza varias de las nuevas funciones que se agregaron al núcleo crítico
paquete, consulte a continuación.

[3] Se extendió la API para manejar metadatos de TEApot. Agregó el comando critcl :: meta? a
consultar la información almacenada. El uso principal actualmente previsto es la recuperación de
el nombre del paquete actual mediante comandos de utilidad, para su uso en nombres construidos. Esta
información particular siempre está disponible debido al escaneo estático del paquete
archivo al ejecutar el primer comando critcl.

Los nuevos paquetes critcl :: iassoc y critcl :: clase (ver arriba) son usuarios de este
mando.

[4] Amplió la API con un comando, critcl :: name2c, exponiendo el proceso de conversión
un nombre Tcl en el nombre base, el espacio de nombres y el espacio de nombres C. Esto permite un nivel superior
generadores de código para generar el mismo tipo de identificadores C que crítico misma.

El nuevo paquete critcl :: clase (ver arriba) es un usuario de este comando.

[5] Amplió la API con un comando, critcl :: fuente, ejecutando los comandos critcl que se encuentran en
un archivo separado en el contexto del archivo actual. Esto permite una gestión más sencilla
de cuerpos de código más grandes, ya que permite al usuario dividirlos en más fáciles de
digerir fragmentos más pequeños sin provocar la generación de varios paquetes.

[6] Relacionado con el elemento anterior, se extendió la API con comandos para desviar la recolección.
del código C generado en la memoria. Esto facilita el uso de los comandos para
código C incrustado en generadores de código de nivel superior.

Ver la sección Avanzado: Desvíos para obtener detalles de los comandos proporcionados.

El nuevo paquete critcl :: clase (ver arriba) es un usuario de estas instalaciones.

[7] Se extendió la API con comandos que ayudan a los desarrolladores con la generación de C adecuado
#línea directivas. Esto permite que los generadores de código de nivel superior generen e inserten
sus propias directivas, asegurando que los errores de compilación en su código sean correctamente
atribuido.

Ver la sección Avanzado: Destino Management para obtener detalles de los comandos proporcionados.

Los nuevos paquetes critcl :: iassoc y critcl :: clase (ver arriba) son usuarios de estos
instalaciones.

[8] Se extendió la API con comandos que brindan a los usuarios la capacidad de definir argumentos personalizados.
y tipos de resultados para :: critcl :: cproc.

Ver la sección Avanzado: Extensión cproc para obtener detalles de los comandos proporcionados.

CAMBIOS PARA VERSIÓN 3.1.1


[1] Corrección de errores por todas partes. En detalle:

[2] Se corrigió la generación de errores # args incorrectos para critcl :: cproc y código derivado
(critcl :: clase métodos basados ​​en cproc). Use NULL si no hay argumentos y tome
la compensación en cuenta.

[3] Se corrigió el manejo de los nombres de los paquetes por critcl :: clase. Olvidé que pueden contener
separadores de espacio de nombres. Se actualizó a la versión 1.0.1.

[4] Extendido a critcl :: clase mensaje de error generado en la creación de la instancia para mayor claridad.
Se actualizó a la versión 1.0.2.

CAMBIOS PARA VERSIÓN 3.1.2


[1] Mejora. En detalle:

[2] Extendido critcl :: cproc para poder manejar argumentos opcionales, de forma limitada.
Esto está automáticamente disponible para critcl :: clase también métodos basados ​​en cproc.

[3] Corrección de errores en lasignar emulación para Tcl 8.4. Establezca correctamente las variables no utilizadas
cuerda vacía. Versión mejorada del paquete de emulación lassign84 a 1.0.1.

CAMBIOS PARA VERSIÓN 3.1.3


[1] Mejora. En detalle:

[2] Se agregó un nuevo tipo de argumento "pstring", para "Pascal String", una cadena contada, es decir, una
combinación de puntero de cadena y longitud de cadena.

[3] Nuevos métodos agregados critcl :: argtypesupport y :: critcl :: argsupport para definir y usar
código de soporte adicional para un tipo de argumento, aquí usado por "pstring" arriba para
definir la estructura necesaria.

[4] Semi-correcciones de errores en los paquetes critcl :: clase y critcl :: iassoc. Pragmas para los AS
escáner de metadatos para garantizar que los archivos de plantilla formen parte del paquete.
Las versiones subieron a 1.0.4 y 1.0.1 respectivamente.

CAMBIOS PARA VERSIÓN 3.1.4


[1] Corrección de errores en el paquete critcl :: clase. Genere un campo ficticio en la estructura de clases si
la clase no tiene variables de clase. Sin este cambio, la estructura estaría vacía,
y varios compiladores no pueden manejar este tipo.

[2] Se corrigió un error tipográfico que rompía la configuración de win64.

[3] Se solucionó el problema n. ° 16, un error tipográfico en la documentación del comando. critcl :: clase.

CAMBIOS PARA VERSIÓN 3.1.5


[1] Problema solucionado # 19. Hizo la expresión regular extrayendo el número de versión de MSVC
más general para que funcione en sistemas de idioma alemán. Esto puede tener que ser
revisado en el futuro, para otras configuraciones regionales de Windows.

[2] Problema solucionado # 20. Opción hecha: funciona en Windows, al menos en una emulación Unix
entorno como msys / mingw.

CAMBIOS PARA VERSIÓN 3.1.6


[1] Problema solucionado # 21. Mientras que la definición múltiple de las variables de puntero de la tabla de resguardo fue
ok para todos los enlazadores de C vistos hasta ahora, a los enlazadores de C ++ no les gustó esto en absoluto.
Se modificó el código para garantizar que este conjunto de variables se genere solo una vez, en
el envoltorio alrededor de todas las piezas para ensamblar.

[2] Se solucionó el problema n. ° 22, el manejo de los argumentos del identificador de comando de
critcl :: ccommand, critcl :: cprocy critcl :: cdata. Ahora permitimos correctamente cualquier Tcl
identificador y generar identificadores C internos adecuados a partir de ellos.

Como parte de esto, la firma de mando critcl :: name2c cambió. El comando ahora
entrega una lista de cuatro valores en lugar de tres. El nuevo valor se agregó en el
fin.

Adaptado aún más la implementación del paquete critcl :: clase, un usuario de
critcl :: name2c. Este paquete está ahora en la versión 1.0.6 y requiere critcl 3.1.6

Por último, se corrigió el mal manejo de la opción. -cnombre in critcl :: ccommandy
critcl :: cproc.

[3] Problema solucionado # 23.

CAMBIOS PARA VERSIÓN 3.1.7


[1] Problema solucionado # 24. Extraiga y muestre incondicionalmente las advertencias del compilador que se encuentran en el
construir registro. Evita que los usuarios pierdan advertencias que, aunque no causan la compilación
fallar, aún puede indicar problemas.

[2] Nueva función. Gancho de salida. Toda la salida de usuario que no sea de mensajería ahora se enruta a través del
comando critcl :: imprimir, y los usuarios pueden anularlo cuando usan el critcl
aplicación como paquete.

[3] Novedad, de Ashok P. Nadkarni. Las configuraciones de plataforma pueden heredar valores de
configuraciones definidas antes que ellos.

CAMBIOS PARA VERSIÓN 3.1.8


[1] Se solucionó el problema con los índices de paquetes generados para Tcl 8.4. Únete a la lista de comandos
con punto y coma, no nueva línea.

[2] Se solucionó el problema n. ° 26 que mostraba casos de uso que había olvidado considerar al corregir
error # 21 (ver critcl 3.1.6).

CAMBIOS PARA VERSIÓN 3.1.9


[1] Problema solucionado # 27. Se agregaron definiciones de plataforma faltantes para varios linux alternativos y
Objetivos de OS X

[2] Problema solucionado # 28. Se agregaron indicadores -mXX faltantes para vincular en Linux- {32,64} - *
objetivos.

[3] Problema solucionado # 29. Se reemplazó el uso de información sin procesar de "tramposos" en el procesamiento.
de "cdefines" con las directivas de inclusión adecuadas derivadas de él.

[4] Se solucionó el problema detrás de la solicitud de extracción rechazada # 30 de Andrew Shadura. Dinamicamente
extraiga las declaraciones de variables de stubs de los archivos de encabezado Tcl y genere
definiciones de variables coincidentes para su uso en el código del paquete. El código generado
ahora sea siempre coherente con los encabezados, incluso cuando la propia copia de critcl de ellos sea
reemplazado por encabezados del sistema.

[5] Problema solucionado # 31. Parche aceptado por Andrew Shadura, con cambios (comentarios), para
integración más fácil de critcl con sistemas de paquetes OS, reemplazando las copias de critcl de
Cabeceras Tcl con las suyas propias.

[6] Problema solucionado # 32. Solicitud de extracción combinada de Andrew Shadura. Varios errores tipográficos en
documentación y comentarios.

[7] Problema solucionado # 33. Maneja mejor los archivos que comienzan con un punto.

AUTORES


Jean Claude Wippler, Steve Landers y Andreas Kupries

Utilice critcl en línea utilizando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

  • 1
    Phaser
    Phaser
    Phaser es una apertura rápida, gratuita y divertida
    marco de juego HTML5 de origen que ofrece
    Representación de WebGL y Canvas en
    navegadores web de escritorio y móviles. Juegos
    puede ser co ...
    Descargar Phaser
  • 2
    Motor VASSAL
    Motor VASSAL
    VASSAL es un motor de juego para crear
    Versiones electrónicas de tablero tradicional.
    y juegos de cartas. Proporciona soporte para
    representación e interacción de las piezas del juego,
    y ...
    Descargar motor VASSAL
  • 3
    OpenPDF - Bifurcación de iText
    OpenPDF - Bifurcación de iText
    OpenPDF es una biblioteca de Java para crear
    y edición de archivos PDF con LGPL y
    Licencia MPL de código abierto. OpenPDF es el
    LGPL/MPL sucesor de código abierto de iText,
    un ...
    Descargar OpenPDF - Bifurcación de iText
  • 4
    SIG SAGA
    SIG SAGA
    SAGA - Sistema para automatizado
    Análisis geocientíficos - es un análisis geográfico
    Software del sistema de información (GIS) con
    inmensas capacidades para geodatos
    procesamiento y ana ...
    Descargar SIG SAGA
  • 5
    Caja de herramientas para Java / JTOpen
    Caja de herramientas para Java / JTOpen
    IBM Toolbox para Java / JTOpen es un
    biblioteca de clases de Java que soporta el
    programacion cliente/servidor e internet
    modelos a un sistema que ejecuta OS/400,
    i5/OS, o...
    Descargar Toolbox para Java/JTOpen
  • 6
    D3.js
    D3.js
    D3.js (o D3 para documentos basados ​​en datos)
    es una biblioteca de JavaScript que le permite
    para producir datos dinámicos e interactivos
    visualizaciones en navegadores web. con D3
    tú...
    Descargar D3.js
  • Más "

Comandos de Linux

  • 1
    arbitro
    arbitro
    abidiff - comparar ABI de archivos ELF
    abidiff compara el binario de la aplicación
    Interfaces (ABI) de dos bibliotecas compartidas
    en formato ELF. emite un significado
    informar ...
    Ejecutar abidiff
  • 2
    cumplir
    cumplir
    abidw - serializa el ABI de un ELF
    archivo abidw lee una biblioteca compartida en ELF
    formato y emite una representación XML
    de su ABI a la salida estándar. El
    emitido...
    Ejecutar abidw
  • 3
    copac2xml
    copac2xml
    bibutils - conversión de bibliografía
    utilidades...
    Ejecutar copac2xml
  • 4
    copto
    copto
    copt - optimizador de mirilla SYSNOPIS:
    archivo copt.. DESCRIPCIÓN: copt es un archivo
    optimizador de mirilla de uso general. Él
    lee el código de su entrada estándar y
    escribe un...
    Ejecutar copia
  • 5
    reunir_stx_títulos
    reunir_stx_títulos
    reunir_stx_titles - recopilar título
    declaraciones de documentos Stx ...
    Ejecute reunir_stx_títulos
  • 6
    banco-gatling
    banco-gatling
    banco - punto de referencia http ...
    Ejecutar gatling-banco
  • Más "

Ad