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

Opened 13 years ago

Closed 13 years ago

#1471 closed task (fixed)

Reproducción del warning "TimeSet no acotado"

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Kernel Version: 3.1
Severity: critical Keywords:
Cc:

Description

Se consigue reproducir la advertencia:

Warning: [] OIS: 
El TimeSet no acotado 
CtSem445_loc = Dating(data);
 depende de símbolos no visibles globalmente. Sólo los datos almacenados en la cache en [y2001m01d01,y2012m01d01] estarán accesibles cuando sea cargado

citada en el tique #1451.

Quizá puede ayudar a diagnosticar algunos de los usos inadecuados con los timesets.

Se adjuntan archivos de ejemplo, variantes de los de #1451.

Attachments (3)

check.01.m.tol (228 bytes) - added by Pedro Gea 13 years ago.
check.02.m.tol (160 bytes) - added by Pedro Gea 13 years ago.
check.03.m.tol (64 bytes) - added by Pedro Gea 13 years ago.

Download all attachments as: .zip

Change History (7)

Changed 13 years ago by Pedro Gea

Attachment: check.01.m.tol added

Changed 13 years ago by Pedro Gea

Attachment: check.02.m.tol added

Changed 13 years ago by Pedro Gea

Attachment: check.03.m.tol added

comment:1 Changed 13 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: newclosed

Está claro que estás creando un nuevo objeto TimeSet CtSem445_loc con una expresión local que es irreproducible externamente.

En este caso concreto basta con no renombrar el objeto, lo cual supone crear uno nuevo, sino quedarse directamente con la referencia que devuelve el Dating :

TimeSet CtSem445_glo =
  D(1)*M(1)+WD(6)-(D(2)+D(3))*M(1)-(D(31)+D(30)+D(29)+D(28)+D(27))*M(12);
Serie ser.0 = CalVar(C, CtSem445_glo);
Set t = {
  Serie data = ser.0;
  [[ TimeSet Dating(data) ]]
};
Serie ser.1 = SubSer(CalVar(C,CtSem445_glo), y2001, y2012);
Serie ser.2 = SubSer(CalVar(C,t[1]), y2001, y2012);
Real Ois.Store([[ser.1,ser.2]],"ser.oza");

comment:2 Changed 13 years ago by Víctor de Buen Remiro

(In [4335]) Refs #1471

comment:3 Changed 13 years ago by Pedro Gea

Resolution: fixed
Status: closedreopened

No lo entiendo.

¿Cómo es posible que si devuelvo el Dating(data) sí sea reproducible y si devuelvo un TimeSet nuevo, que se define como el Dating(data) ya no lo sea?

comment:4 Changed 13 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

Al poner TimeSet loquesea=original estás creando un objeto nuevo cuya expresión no es reproducible. La función Dating no crea ningún objeto nuevo, devuelve el propio objeto fechado de la serie.

Note: See TracTickets for help on using tickets.