Guía de seguimiento dinámico de Solaris

Capítulo 41 Versiones

En el Capítulo 39Estabilidad, se describen las funciones de DTrace para determinar los atributos de estabilidad de los programas en D que cree. Una vez que haya creado un programa en D con los atributos de estabilidad adecuados, también puede enlazar este programa a una versión concreta de la interfaz de programación en D. La versión de la interfaz D es una etiqueta que se aplica a un conjunto específico de tipos, variables, funciones, constantes y traductores que pone a su disposición el compilador D. Si especifica un enlace a una versión concreta de la interfaz de programación en D, asegúrese de que pueda volver a compilar el programa en las versiones futuras de DTrace sin generar conflictos entre los identificadores del programa que usted defina y los identificadores definidos en versiones futuras de la interfaz de programación en D. Debe establecer enlaces de versiones para cualquier programa escrito en D que desee instalar como secuencias de comandos persistentes (consulte el Capítulo 15Secuencias de comandos) o que desee usar como herramientas en capas.

Versiones

Las etiquetas del compilador D definen tipos, variables, funciones, constantes y traductores correspondientes a una versión de software concreta usando una cadena de versión. Una cadena de versión es una secuencia de enteros decimales delimitada por puntos con el formato “x” (versión principal), “x.y” (versión secundaria) o “x.y.z” (micro versión). Las versiones se comparan relacionando los enteros de izquierda a derecha. Si los enteros de la parte más a la izquierda no son iguales, la cadena que tenga el entero mayor será la versión superior (y en consecuencia, más reciente). Si los enteros de la parte más a la izquierda son iguales, la comparación continúa con el siguiente entero de izquierda a derecha para determinar el resultado. Todos los enteros no especificados de una cadena de versión se interpretan como si tuvieran un valor cero durante la comparación de versiones.

Las cadenas de versión de DTrace responden a la nomenclatura estándar de Sun de las versiones de interfaz, tal y como se describen en attributes(5). Un cambio en la interfaz de programación en D se acompaña de una nueva cadena de versión. En la siguiente tabla se incluyen las cadenas de versión que usa DTrace y el significado más probable de la versión de software de DTrace correspondiente.

Tabla 41–1 Versiones de DTrace

Versión 

Versión 

Significado 

Principal 

x.0

Una versión principal es posible que contenga adiciones de funciones importantes; se ajuste a revisiones estándar diferentes, posiblemente incompatibles, y, aunque no es probable, puede cambiar, abandonar o sustituir interfaces estables o estándares (consulte el Capítulo 39Estabilidad). La versión inicial de la interfaz de programación aparece como versión 1.0.

Secundaria 

x.y

En comparación con x.0 o una versión anterior (donde y no es igual a cero), una versión secundaria nueva es probable que contenga adiciones de funciones menores, interfaces compatibles estándares y estables, interfaces evolutivas posiblemente incompatibles o interfaces no estables probablemente incompatibles. Estos cambios pueden incluir nuevos tipos D incorporados, variables, funciones, constantes y traductores. Además, una versión secundaria puede eliminar la compatibilidad con interfaces anteriormente etiquetadas como obsoletas (consulte el Capítulo 39Estabilidad)

Micro 

x.y.z

Las micro versiones está previsto que tengan interfaces compatibles con la versión anterior (donde z no es igual a cero), pero es probable que incluyan soluciones de errores, mejoras en el rendimiento y compatibilidad para hardware adicional. 

En general, cada versión nueva de la interfaz de programación en D proporcionará un superconjunto de las funciones ofrecidas por la versión anterior, con la excepción de las interfaces obsoletas que se hayan eliminado.

Opciones de las versiones

De forma predeterminada, cualquier programa en D que compile usando las opciones de la línea de comandos dtrace -s o especifique usando dtrace -P, -m, -f, -n o -i estará vinculado a la versión más reciente de la interfaz de programación en D ofrecida por el compilador D. Puede determinar la interfaz de programación en D actual usando la opción dtrace -V:


$ dtrace -V
dtrace: Sun D 1.0
$

Si desea establecer un enlace a una versión específica de la interfaz de programación en D, puede establecer la opción version en una cadena de versión pertinente. Al igual que otras opciones de DTrace (consulte el Capítulo 16Opciones y optimizables), puede establecer la opción de versión en la línea de comandos usando dtrace -x:


# dtrace -x version=1.0 -n 'BEGIN{trace("hello");}'

También puede usar la sintaxis #pragma D option para establecer la opción en el archivo de origen del programa escrito en D:

#pragma D option version=1.0

BEGIN
{
	trace("hello");
}

Si usa la sintaxis #pragma D option para solicitar un enlace de versión, debe colocar esta directiva en la parte superior del archivo de programa escrito en D antes de colocar cualquier otra declaración o cláusula de sondeo. Si el argumento de enlace de versión es una cadena de versión no válida o hace referencia a una versión no ofrecida por el compilador D, se mostrará un mensaje de error y la compilación fallará. Por lo tanto, puede usar la utilidad de enlaces de versión para provocar que la ejecución de una secuencia de comandos en D en una versión antigua de DTrace falle con un mensaje de error obvio.

Antes de compilar las declaraciones y las cláusulas, el compilador D carga el conjunto de tipos, las funciones, las constantes y los traductores de D para la versión de interfaz adecuada en los espacios de nombre de compilador. Por lo tanto, todas las opciones de enlace de versión que especifique simplemente controlan el conjunto de identificadores, tipos y traductores que son visibles para el programa, además de las variables, los tipos y los traductores definidos por el programa. El enlace de versión impide que el compilador D cargue nuevas interfaces que puedan definir identificadores o traductores que entren en conflicto con declaraciones en el código fuente del programa y que, por lo tanto, podrían provocar un error de compilación. Consulte Nombres de identificador y palabras clave para obtener sugerencias acerca de cómo se eligen los nombres de identificadores para que no entren en conflicto con interfaces ofrecidas por versiones futuras de DTrace.

Versiones del proveedor

A diferencia de las interfaces ofrecidas por el compilador D, las interfaces ofrecidas por los proveedores de DTrace (es decir, sondeos y argumentos de sondeos) no se ven afectadas ni asociadas por la interfaz de programación en D ni por las opciones de enlace de la versión. Las interfaces de proveedor disponibles se establecen como parte de la carga de la instrumentación de compilación en el software de DTrace en el núcleo del sistema operativo y varían en función de la arquitectura del conjunto de la instrucción, la plataforma operativa, el procesador, el software instalado en el sistema Solaris y los privilegios de seguridad actuales. El compilador D y el tiempo de ejecución de DTrace examinan los sondeos descritos en las cláusulas del programa escrito en D y registran los mensajes de error pertinentes cuando los sondeos solicitados por el programa escrito en D no están disponibles. Estas funciones son ortogonales para la versión de la interfaz de programación en D porque los proveedores de DTrace no exportan interfaces que puedan entrar en conflicto con definiciones de programas escritos en D; es decir, sólo se pueden activar sondeos en D, no se pueden definir, y los nombres de sondeo se conservan en un espacio de nombre separado de otros identificadores de programas en D.

Los proveedores de DTrace se proporcionan con una versión concreta de Solaris y se describen en la versión correspondiente de la guía de seguimiento dinámico de Solaris. En el capítulo de esta guía correspondiente a cada proveedor también se describen los cambios relevantes o las nuevas funciones ofrecidas por un proveedor concreto. Puede usar la opción dtrace -l para explorar el conjunto de proveedores y sondeos disponibles en el sistema Solaris. Los proveedores etiquetan sus interfaces usando atributos de estabilidad de DTrace, y el usuario puede usar las funciones de informes de estabilidad de DTrace (consulte el Capítulo 39Estabilidad) para determinar si las interfaces de proveedor usadas por el programa escrito en D son susceptibles de ser modificadas u ofrecidas en versiones futuras de Solaris.