close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 14 years ago

#636 closed doubt (fixed)

Declaración de una variable como "trivial"

Reported by: Ines Miranda Owned by: Pedro Gea
Priority: major Milestone: Release 0.6
Component: Variables Keywords: trivial, variable, expresion
Cc:

Description

Hola,

dónde y cómo se define el conjunto de palabras que impiden que una varible pueda declararse trivial?
Según el ticket #482, existe un método ::CheckTrivialExpression(?), que devuelve el conjunto de estas expresiones, pero no veo dónde se crean.

Gracias

Change History (3)

comment:1 Changed 14 years ago by Pedro Gea

Resolution: fixed
Status: newclosed

Se considera que una expresión es trivial cuando puede evaluarse en un contexto estándar y por lo tanto no necesita que ningún proyecto ni paquete haya sido compilado anteriormente. (Véase también #482 y #635)

La cuestión sobre cuándo una expresión puede o no ser trivial es algo delicado, ya que desde TOL no disponemos de un mecanismo sencillo para saber si una expresión podrá ser evaluada en un contexto estándar.

MMS incorpora un pequeño módulo MMS::TolExpression con mecanismos para tratar las expresiones TOL haciendo un análisis de la expresión para determinar si las variables y funciones utilizadas son estándares o no:

Real MMS::TolExpression::IsTrivialExpression("Serie SubSer(fechado,C)");
// Devuelve 0 o 1 según sea trivial o no la expresión
Set MMS::TolExpression::CheckTrivialExpression("Serie SubSer(fechado,C)");
// Devuelve un conjunto con la palabras que impiden que la expresión sea trivial

Estos métodos se están apoyando para comprobar si una palabra es válida o no en la ruta donde se definió la función o variable. Y así distinguir si es compilada o de la StdLib (en cuyo caso se acepta) o no. Sin embargo parece que el mecanismo falla en algunos casos, véase #639.

comment:2 Changed 14 years ago by atorre

Priority: majorblocker
Resolution: fixed
sensitive: 0
Status: closedreopened
Type: doubtdefect

Mientras se revisan los métodos automáticos para determinar si una variable es trivial o no, habría que dar un mecanismo a los usuarios para poder declarar variables como "triviales".

Cuando el volumen de datos es grande y se declaran muchas variables calculadas, al no poder declararlas como "triviales", no es posible guardar el DataSet...

comment:3 Changed 14 years ago by Pedro Gea

Priority: blockermajor
Resolution: fixed
Status: reopenedclosed
Type: defectdoubt

Se redirecciona la resolución de este bug a #751, dejándose éste como tique de duda consultable desde la página de howto's y tiques de duda.

Véase #751 para los detalles de la resolución del bug.

Note: See TracTickets for help on using tickets.