Opened 14 years ago
Closed 14 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)
Change History (7)
Changed 14 years ago by
| Attachment: | check.01.m.tol added |
|---|
Changed 14 years ago by
| Attachment: | check.02.m.tol added |
|---|
Changed 14 years ago by
| Attachment: | check.03.m.tol added |
|---|
comment:1 Changed 14 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
comment:3 Changed 14 years ago by
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
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 14 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
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.

Está claro que estás creando un nuevo objeto
TimeSet CtSem445_loccon 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");