﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1661	Error sintáctico grave cargando paquetes con #Require	Pedro Gea	Víctor de Buen Remiro	"Hay un error que se presenta de vez en cuando al cargar
paquetes de TOL que no es fácil de reproducir y aislar.

El problema siempre se prensenta como un error sintáctico relacionado con la declaración de alguna clase que fue compilada dentro de alguno de los paquetes cargados.

Algo del tipo: 
{{{
ERROR: [] Declaración errónea en función de usuario ...
}}}

El problema parece estar vinculado a la carga de paquetes a través de la directiva {{{#Require}}} y la carga de archivos {{{.oza}}}.

El error aparece después de actualizar (o mejorar) un paquete o al instalar uno nuevo y curiosamente se soluciona desinstalado o eliminando un paquete cualquiera.

'''¿Qué podemos saber de este error?'''

Al hacer un {{{#Require}}} por primera vez, el catálogo de {{{TolPackage::Client}}} se carga con la información de todos los paquetes instalados en {{{TolPackage::Client::_.localRoot}}}, para ello abre todos los archivos {{{info.oza}}} situados en las carpetas de cada uno de los paquetes.

A continuación si el paquete requerido se encuentra disponible se carga y junto a él todos los paquetes con los que está relacionado,
y ahí es donde ocurre el error.

Parece que el error está vinculado a esta carga de archivos {{{info.oza}}}, pues si éstos cambian (o en su número o en la versión del archivo), el error desaparece. De otra manera es difícil de explicar que el error desaparezca al eliminar un paquete que no está relacionado de ninguna manera con el paquete solicitado.

En un principio parecía que la carga de paquetes en cascada (por dependencias entre paquetes) pudiera estar relacionada con el error, pero éste puede reproducirse cargando con el {{{#Require}}} los paquetes de uno en uno.

El error parece estar fuertemente relacionado a la naturaleza precompilada del {{{#Require}}} porque interponiendo una línea entre diferentes llamadas el error desaparece.

Por ejemplo, para un determinado conjunto de paquetes, la lista de llamadas siguiente, falla o no según si se comanta o no una línea tan sencilla como {{{Real 1;}}}:
{{{
// USANDO F11
#Require GuiTools.3.6;
#Require MatQuery.3.4;
//Real 1; // si se comenta falla, si no, no falla
#Require MatAlg.2.1;
#Require BysPrior.3.1;
#Require BysInfDiag.3.3;
#Require NonLinGloOpt.5.3;
}}}

El error parece que ocurre sólo al hacer las llamadas a la consola da comandos, y no al compilar (incluir) un archivo con dicho código.

Se adjunta en la unidad local B el contenido de la carpeta: {{{TolPackage::Client::_.localRoot}}} con la que pude reproducir el error.

"	defect	new	highest	Mantainance	Kernel	3.1	blocker			
