﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc
1043	Using the command Eval in NameBlocks	Pedro Gea	Víctor de Buen Remiro	"Se encuentra un comportamiento inesperado al utilizar el comando {{{Eval}}} dentro del método de un nameblock.

El objetivo de este tique es manifestar este problema e intentar entender qué está ocurriendo.

A continuación se indica un ejemplo en el que se reproduce un error similar al encontrado en un proyecto y en el que se encuentran las consecuencias más catastróficas:

{{{
Text expression = TxtListItem(For(1, 200, Text (Real i) {
  ""Serie ExtendSerie(
     SubSer(Pulse(Succ(y2001,C,""<<i<<""),C),y2000, y2005), 
     y1999, y2006)""
}), ""+"");

NameBlock space = [[
  Anything Evalua(Text e) { Eval(e) }
]];

Serie space::Evalua(expression);
}}}

La ejecuación de este código emplea algo más de 2 minutos y medio en acabar con toda la RAM libre y comenzar a enviar errores como:
{{{
ERROR: [14978] FATAL: No se pudo alojar un arreglo de 2558 items x 8 bytes
}}}
sin poder detenerse de ninguna forma más que matando el proceso asociado a TOLBase.

El mismo ejemplo utilizando simplemente {{{Serie Eval(expression);}}} llega al resultado adecuado en algo más de 2 segundos y sin problema alguno.

¿Qué está ocurriendo?

En un ejemplo menos catástrófico se observa que el tiempo para evaluar la misma expresión es bastante distinto (sin llegar a dar errores) al usar {{{Eval}}} o {{{space::Evalua}}}.
"	defect	closed	normal		Kernel		critical	fixed		
