| 1 | #LyX 1.3 created this file. For more info see http://www.lyx.org/ |
|---|
| 2 | \lyxformat 221 |
|---|
| 3 | \textclass article |
|---|
| 4 | \begin_preamble |
|---|
| 5 | %\documentclass[spanish]{article} |
|---|
| 6 | \usepackage{babel} |
|---|
| 7 | \usepackage{a4wide} |
|---|
| 8 | \usepackage{varioref} |
|---|
| 9 | \usepackage{amssymb} |
|---|
| 10 | \usepackage{latexsym} |
|---|
| 11 | \usepackage{amssymb} |
|---|
| 12 | \usepackage{amsmath} |
|---|
| 13 | |
|---|
| 14 | \usepackage{graphics} |
|---|
| 15 | \usepackage{graphicx} |
|---|
| 16 | \usepackage{ulem} |
|---|
| 17 | \usepackage{color} |
|---|
| 18 | \usepackage{multicol} |
|---|
| 19 | \usepackage{longtable} |
|---|
| 20 | |
|---|
| 21 | %\usepackage{makeidx} |
|---|
| 22 | \usepackage{hyperref} |
|---|
| 23 | \makeindex |
|---|
| 24 | |
|---|
| 25 | \hypersetup{urlbordercolor=0 0 0,pdfborder=0 0 1 [3 2]} |
|---|
| 26 | \end_preamble |
|---|
| 27 | \language spanish |
|---|
| 28 | \inputencoding auto |
|---|
| 29 | \fontscheme default |
|---|
| 30 | \graphics default |
|---|
| 31 | \paperfontsize default |
|---|
| 32 | \spacing single |
|---|
| 33 | \papersize a4paper |
|---|
| 34 | \paperpackage widemarginsa4 |
|---|
| 35 | \use_geometry 0 |
|---|
| 36 | \use_amsmath 0 |
|---|
| 37 | \use_natbib 0 |
|---|
| 38 | \use_numerical_citations 0 |
|---|
| 39 | \paperorientation portrait |
|---|
| 40 | \secnumdepth 3 |
|---|
| 41 | \tocdepth 3 |
|---|
| 42 | \paragraph_separation indent |
|---|
| 43 | \defskip medskip |
|---|
| 44 | \quotes_language english |
|---|
| 45 | \quotes_times 2 |
|---|
| 46 | \papercolumns 1 |
|---|
| 47 | \papersides 1 |
|---|
| 48 | \paperpagestyle default |
|---|
| 49 | |
|---|
| 50 | \layout Title |
|---|
| 51 | |
|---|
| 52 | Proceso de limpieza de TOL previo al desarrollo de OISS |
|---|
| 53 | \layout Author |
|---|
| 54 | |
|---|
| 55 | Víctor de Buen |
|---|
| 56 | \layout Abstract |
|---|
| 57 | |
|---|
| 58 | El propósito fundamental del presente proceso de limpieza de TOL es dejar |
|---|
| 59 | una versión de TOL algo más despejada de elementos estériles y confusos |
|---|
| 60 | así como prepararla para el desarrollo de sistemas que le den una mayor |
|---|
| 61 | agilidad y robustez a los proyectos desarrollados en TOL, de forma que |
|---|
| 62 | dé tiempo al equipo de desarrollo a diseñar e implementar un nuevo lenguaje |
|---|
| 63 | MOLE sin bloquear por ello ni a los analistas ni a los desarrolladores. |
|---|
| 64 | \layout Section |
|---|
| 65 | |
|---|
| 66 | Objetivos |
|---|
| 67 | \layout Standard |
|---|
| 68 | |
|---|
| 69 | En términos del código C++, el objetivo principal era más que nada disponer |
|---|
| 70 | los templates básicos adecuados para más adelante poder instanciar objetos |
|---|
| 71 | TOL serializables de forma indexada y probablemente utilizando memoria |
|---|
| 72 | externa, lo cual se consigue básicamente virtualizando los métodos principales |
|---|
| 73 | de los objetos Name, Description, Contens, etc.; y esa ha sido la principal |
|---|
| 74 | labor, afectando a la jerarquía de templates BRen*, BTmp*, BGraContens*, |
|---|
| 75 | BGraObject* y en general a todas las clases derivadas de BSyntaxObject. |
|---|
| 76 | \layout Standard |
|---|
| 77 | |
|---|
| 78 | Sin embargo, aprovechando el tirón, se le ha dado un repasito general a |
|---|
| 79 | TOL haciendo buena parte de esa limpieza de la que tanto habíamos hablado, |
|---|
| 80 | eliminando campos superfluos e incorporándolos eventualmente en su lugar |
|---|
| 81 | correspondiente en la jerarquía de clases. |
|---|
| 82 | |
|---|
| 83 | \layout Standard |
|---|
| 84 | |
|---|
| 85 | A las clases BSet, BTimeSerie y derivadas, BSerieGroup y BSerieTable también |
|---|
| 86 | se les ha dado un repaso importante pues son las que sustentan la mayor |
|---|
| 87 | parte de las operaciones de TOL. |
|---|
| 88 | \layout Section |
|---|
| 89 | |
|---|
| 90 | Resultados |
|---|
| 91 | \layout Standard |
|---|
| 92 | |
|---|
| 93 | Como efecto colateral se consigue que desaparezcan algunos errores en la |
|---|
| 94 | recompilación, especialmente de funciones TOL de usuario, y, dependiendo |
|---|
| 95 | de los procesos ejecutados, una disminución del consumo de memoria usada |
|---|
| 96 | por TOL desde un 20% hasta más del 90%, y un ligero aumento en velocidad, |
|---|
| 97 | que puede ser desde apenas perceptible hasta un 40%; lo cual en modo alguno |
|---|
| 98 | alguno justificarían el trabajo hecho, el cual cobra sentido sólo por el |
|---|
| 99 | hecho de conseguir una jerarquía de clases más limpia y potente. |
|---|
| 100 | |
|---|
| 101 | \layout Standard |
|---|
| 102 | |
|---|
| 103 | El principal problema de memoria se debe a que los objetos no se borran |
|---|
| 104 | convenientemente a causa del lío que supone el tratamiento de las referencias |
|---|
| 105 | vía BList y BSet, las cuales llevan bastante mala vida, pues se manipulan |
|---|
| 106 | en exeso a veces, provocando interferencias entre ellas, además de las |
|---|
| 107 | llamadas directas a InNRefs y DecNRefs. |
|---|
| 108 | Se ha mejorado parcialmente esto devolvíéndose ahora bastante más memoria |
|---|
| 109 | que antes por lo que en algunas ocasiones, cuando se hacen procesos repetitivos |
|---|
| 110 | muy pesados, el ahorro de memoria puede ser brutal. |
|---|
| 111 | \layout Standard |
|---|
| 112 | |
|---|
| 113 | Sin embargo, en el momento en el que se produzca cualquier pequeño desorden |
|---|
| 114 | en los procesos de destrucción se seguirán quedando objetos huérfanos de |
|---|
| 115 | lista que les pueda ordenar destruirse y por eso pasa lo que pasa. |
|---|
| 116 | Eso es realmente muy complicado de detectar sin tener casos de código TOL |
|---|
| 117 | sencillo que reproduzcan y aislen los problemas por lo que no se ha dedicado |
|---|
| 118 | apenas tiempo a ello aunque algo sí ha mejorado la situación. |
|---|
| 119 | \layout Standard |
|---|
| 120 | |
|---|
| 121 | Además, este problema quedará salvado, o al menos paliado en gran medida |
|---|
| 122 | con el desarrollo de OISS, que está explicado en el documento OISS.pdf. |
|---|
| 123 | \layout Standard |
|---|
| 124 | |
|---|
| 125 | Aprovechando las ventajas del diseño modificado, o simplemente porque venía |
|---|
| 126 | al paso, se han efectuado algunos otros pequeños cambios de menor alcance |
|---|
| 127 | como por ejemplo: |
|---|
| 128 | \layout Itemize |
|---|
| 129 | |
|---|
| 130 | Los objetos de tipo autocontenido se declaraban internamente por referencia |
|---|
| 131 | mediante la instanciación de un objeto BRenContens<Any> apuntando al objeto |
|---|
| 132 | resultante de la parte izquierda del igual. |
|---|
| 133 | Esta filosofía lazzy es muy útil cuando los objetos referenciados son muy |
|---|
| 134 | grandes como pueden ser algunas matrices o conjuntos, pero al mismo tiempo |
|---|
| 135 | obliga a mantener en memoria todo el árbol de objetos necesarios para su |
|---|
| 136 | evaluación, lo cual puede ser que ocupe mucho más. |
|---|
| 137 | Ahora se dispone de otra clase BCopyContens<Any> que copia el contenido |
|---|
| 138 | del objeto y lo destruye en ese mismo momento liberando la memoria del |
|---|
| 139 | árbol de evaluación de forma temprana. |
|---|
| 140 | Este tipo de evaluación hungry se reserva a los objetos más bien pequeños |
|---|
| 141 | que en principio serán Real, Complex, Date, Polyn, Ratio y Text; aunque |
|---|
| 142 | habrá que estudiar cómo funciona mejor e incluso, ya para el nuevo MOLE, |
|---|
| 143 | se puede hacer parametrizable por el usuario si se observa que depende |
|---|
| 144 | mucho de la naturaleza del proyecto. |
|---|
| 145 | |
|---|
| 146 | \layout Itemize |
|---|
| 147 | |
|---|
| 148 | Ya no se pueden modificar los objetos constantes del sistema. |
|---|
| 149 | Cuando se hacen asignaciones de constantes se crea una copia interna del |
|---|
| 150 | objeto con BCopyContens<Any> de forma que no se produzcan los efectos colateral |
|---|
| 151 | es impredictibles y muy peligrosos a que nos tiene acostumbrados TOL. |
|---|
| 152 | En el siguiente ejemplo, XXX queda como [[1,2]] mientras que YYY y Empty |
|---|
| 153 | permanecen vacíos y la última línea no tiene ningún efecto salvo dar un |
|---|
| 154 | mensaje de error al usuario |
|---|
| 155 | \layout LyX-Code |
|---|
| 156 | |
|---|
| 157 | Set XXX = Empty; |
|---|
| 158 | \layout LyX-Code |
|---|
| 159 | |
|---|
| 160 | Set (XXX:=[[1,2]]); |
|---|
| 161 | \layout LyX-Code |
|---|
| 162 | |
|---|
| 163 | Set YYY = Empty; |
|---|
| 164 | \layout LyX-Code |
|---|
| 165 | |
|---|
| 166 | Set (Empty:=[[1,2,3]]); |
|---|
| 167 | \layout Itemize |
|---|
| 168 | |
|---|
| 169 | Ya se pueden crear estructuras locales. |
|---|
| 170 | El problema era simplemente que la función FindLocal no estaba preparada |
|---|
| 171 | para buscar por Mode sino sólo por nombre y encontraba primero la función |
|---|
| 172 | asociada a la estructura que tiene tipo Code por lo que no se reconocía |
|---|
| 173 | como un Struct. |
|---|
| 174 | Lo único que hay que hacer es tomar la pila local y hacer la búsqueda ad-hoc |
|---|
| 175 | del Struct. |
|---|
| 176 | \layout Itemize |
|---|
| 177 | |
|---|
| 178 | Los elementos de un conjunto S se pueden referenciar como S[x] donde x es |
|---|
| 179 | un objeto de tipo Real o de tipo Text. |
|---|
| 180 | Cuando x es una constante de texto necesariamente ha de comenzar por el |
|---|
| 181 | carácter comilla doble < |
|---|
| 182 | \begin_inset Quotes erd |
|---|
| 183 | \end_inset |
|---|
| 184 | |
|---|
| 185 | >, por lo que se puede hacer esa comprobación inicial para ahorrarse el |
|---|
| 186 | intento de evaluación de x como Real, ahorrando un tiempo que puede llegar |
|---|
| 187 | a ser importante en algunas circunstancias. |
|---|
| 188 | \layout Itemize |
|---|
| 189 | |
|---|
| 190 | Los objetos TOL de usuario tienen ahora Description y Expression como funciones |
|---|
| 191 | separadas, pero sólo la descripción es modificable por el usuario mientras |
|---|
| 192 | que la expresión la rellenará TOL sólo cuando UnparseNodes sea cierta. |
|---|
| 193 | Cuando no hay descripción el usuario recibirá la expresión, si es que tiene. |
|---|
| 194 | La función Identify devuelve el primer texto no vacío de la lista Name(), |
|---|
| 195 | LocalName(), Expression(), Description(). |
|---|
| 196 | \layout Itemize |
|---|
| 197 | |
|---|
| 198 | El nombre local sólo existe en los objetos referenciantes BCopyContens<Any>, |
|---|
| 199 | BRenContens<Any>, BRenObject<Any> |
|---|
| 200 | \layout Itemize |
|---|
| 201 | |
|---|
| 202 | En la función Frecuency se estaba dividiendo en una parte de más que luego |
|---|
| 203 | no se devolvía por lo que los análisis de frecuencias estaban incompletos. |
|---|
| 204 | \layout Itemize |
|---|
| 205 | |
|---|
| 206 | En la función ARMAAutoCovarianzeVector había un acceso inválido de memoria |
|---|
| 207 | cuando no hay parte AR en un modelo y se solicita un número de autocovarianzas |
|---|
| 208 | menor o igual que el grado MA, lo cual puede dar lugar a caídas o comportamient |
|---|
| 209 | os extraños de forma aleatoria e irreproducible. |
|---|
| 210 | \layout Itemize |
|---|
| 211 | |
|---|
| 212 | En el AIA no se destruía la copia de la serie de residuos construida para |
|---|
| 213 | no modificar la serie pasada como argumento. |
|---|
| 214 | Esto no traía consecuencias en cuanto a las referencias pero sí que ocupaba |
|---|
| 215 | el espacio correspondiente al área de datos duplicada que nunca se devolvía. |
|---|
| 216 | \layout Itemize |
|---|
| 217 | |
|---|
| 218 | Cada mensaje de error o de aviso llevará adjunto un número correlativo para |
|---|
| 219 | que el usuario pueda encontrar más facilmente el primero de ellos y seguirles |
|---|
| 220 | la pista más cómodamente. |
|---|
| 221 | \layout Itemize |
|---|
| 222 | |
|---|
| 223 | Se han creado las variables TOL Real NError y Real NWarning que devuelven |
|---|
| 224 | el número de erores y avisos emitidos hasta el momento en la sesión, para |
|---|
| 225 | que los usuarios puedan comprobar en tiempo de ejecución si un proceso |
|---|
| 226 | está funcionando correctamente. |
|---|
| 227 | \layout Itemize |
|---|
| 228 | |
|---|
| 229 | Se han hecho algunos cambios a nivel interno en modo de depuración para |
|---|
| 230 | facilitar la búsqueda de fallos de memoria creando una tabla en un fichero |
|---|
| 231 | de texto con los eventos de creación y destrucción de objetos de forma |
|---|
| 232 | que se pueda cargar en una base de datos para investigar lo que está ocurriendo |
|---|
| 233 | cuando algo falla. |
|---|
| 234 | Esto es tranasparente al usuario TOL y afecta sólo al desarrollador. |
|---|
| 235 | \layout Itemize |
|---|
| 236 | |
|---|
| 237 | También pensando en el desarrollador y en el usuario avanzado se ha mejorado |
|---|
| 238 | la sintaxis y la ayuda en línea de los comandos de TOL Interactivo (tol.exe |
|---|
| 239 | -d ...) |
|---|
| 240 | \begin_deeper |
|---|
| 241 | \layout Itemize |
|---|
| 242 | |
|---|
| 243 | <tol expression> : ejecuta una expresión TOL |
|---|
| 244 | \layout Itemize |
|---|
| 245 | |
|---|
| 246 | $HELP : muestra esta ayuda |
|---|
| 247 | \layout Itemize |
|---|
| 248 | |
|---|
| 249 | $SYS <command> : ejecuta un comando del sistema operativo |
|---|
| 250 | \layout Itemize |
|---|
| 251 | |
|---|
| 252 | $GRAMMAR : especifica la gramática por defecto |
|---|
| 253 | \layout Itemize |
|---|
| 254 | |
|---|
| 255 | $DELETE : borra objetos TOL creados previamente |
|---|
| 256 | \layout Itemize |
|---|
| 257 | |
|---|
| 258 | $DUMP : muestra un objeto TOL |
|---|
| 259 | \layout Itemize |
|---|
| 260 | |
|---|
| 261 | $STATUS : muestra algunas estadísticas acerca del estado de TOL |
|---|
| 262 | \layout Itemize |
|---|
| 263 | |
|---|
| 264 | $SHOW_CLASS_SIZES : muestra el tamaño de algunas clases C++ internas |
|---|
| 265 | \layout Itemize |
|---|
| 266 | |
|---|
| 267 | $END : sale del modo interactivo de TOL |
|---|
| 268 | \end_deeper |
|---|
| 269 | \layout Subsection |
|---|
| 270 | |
|---|
| 271 | Robustez |
|---|
| 272 | \layout Standard |
|---|
| 273 | |
|---|
| 274 | De momento se han probado a través de la VPN procesos, principalmente de |
|---|
| 275 | tipo pestimation.tol, de los SADD's almacenados en el CVS de Bayes, de proyectos |
|---|
| 276 | bastante variados |
|---|
| 277 | \layout Enumerate |
|---|
| 278 | |
|---|
| 279 | Banco do Brasil |
|---|
| 280 | \begin_deeper |
|---|
| 281 | \layout Enumerate |
|---|
| 282 | |
|---|
| 283 | Test_BB_000_InitSADD: Sólo carga el SADD del proyecto y la lista de agencias |
|---|
| 284 | desde la base de datos |
|---|
| 285 | \layout Enumerate |
|---|
| 286 | |
|---|
| 287 | Test_BB_001_ARIMATFEst: Modelo ARIMATF de la serie de Variación de efectivo |
|---|
| 288 | de una agencia |
|---|
| 289 | \layout Enumerate |
|---|
| 290 | |
|---|
| 291 | Test_BB_002_ARIMAIdentif: Identificación de modelos ARIMA más probables |
|---|
| 292 | para la serie de Variación de Efectivo de una agencia |
|---|
| 293 | \layout Enumerate |
|---|
| 294 | |
|---|
| 295 | Test_BB_003_ARIMASearch: Estimación de los modelos ARIMA alternativos más |
|---|
| 296 | probables para la serie de Variación de Efectivo de una agencia |
|---|
| 297 | \layout Enumerate |
|---|
| 298 | |
|---|
| 299 | Test_BB_004_VARMA: Modelo modelo VARMA aproximado linealmente de la serie |
|---|
| 300 | de Variación de efectivo de un grupo de agencias |
|---|
| 301 | \layout Enumerate |
|---|
| 302 | |
|---|
| 303 | Test_BB_005_SAM: Simulación del Saldo Autónomo Mínimo |
|---|
| 304 | \end_deeper |
|---|
| 305 | \layout Enumerate |
|---|
| 306 | |
|---|
| 307 | Cocacola |
|---|
| 308 | \begin_deeper |
|---|
| 309 | \layout Enumerate |
|---|
| 310 | |
|---|
| 311 | Estimación ARIMA de un producto |
|---|
| 312 | \layout Enumerate |
|---|
| 313 | |
|---|
| 314 | Estimación bayesiana |
|---|
| 315 | \end_deeper |
|---|
| 316 | \layout Enumerate |
|---|
| 317 | |
|---|
| 318 | Voz de Galicia |
|---|
| 319 | \begin_deeper |
|---|
| 320 | \layout Enumerate |
|---|
| 321 | |
|---|
| 322 | Estimación de una serie global |
|---|
| 323 | \layout Enumerate |
|---|
| 324 | |
|---|
| 325 | Estimación de un punto de venta |
|---|
| 326 | \layout Enumerate |
|---|
| 327 | |
|---|
| 328 | Previsión |
|---|
| 329 | \end_deeper |
|---|
| 330 | \layout Enumerate |
|---|
| 331 | |
|---|
| 332 | Feda |
|---|
| 333 | \begin_deeper |
|---|
| 334 | \layout Enumerate |
|---|
| 335 | |
|---|
| 336 | Combinación de previsiones: Los resultados son idénticos pero utiliza 50 |
|---|
| 337 | MB de RAM en la versión nueva y 80 MB en la vieja y tarda 369 segundos |
|---|
| 338 | en lugar de 690, con lo que los ahorros son del 47% en tiempo y del 38% |
|---|
| 339 | en memoria. |
|---|
| 340 | \end_deeper |
|---|
| 341 | \layout Standard |
|---|
| 342 | |
|---|
| 343 | Los resultados de la versión de desarrollo de limpieza DEV-VERSION son idénticos |
|---|
| 344 | a los de la versión CVS-20051220 que se ha tomado como referencia en todos |
|---|
| 345 | los casos. |
|---|
| 346 | \layout Standard |
|---|
| 347 | |
|---|
| 348 | Sería necesario probar otros tipos de procesos, tanto de estimación de todos |
|---|
| 349 | los tipos, (VARMA, bayesianos, jerárquicos, ...), como de procesos que no |
|---|
| 350 | sean de modelización para estar seguros de que no hay errores de importancia |
|---|
| 351 | antes de subir los cambios al CVS. |
|---|
| 352 | \layout Standard |
|---|
| 353 | |
|---|
| 354 | Yo veo en los proyectos que hay muchos programas TOL que podría probar, |
|---|
| 355 | pero no me atrevo para no fastidiar, por lo que es necesario que desde |
|---|
| 356 | los proyectos se seleccione una colección de procesos lo más variados que |
|---|
| 357 | sea posible e intentando que no sean demasiado pesados de forma gratuita, |
|---|
| 358 | para poder hacer muchas pruebas en el menor tiempo posible. |
|---|
| 359 | |
|---|
| 360 | \layout Standard |
|---|
| 361 | |
|---|
| 362 | Con esta colección de procesos se creará una batería de tests que nos servirá |
|---|
| 363 | más adelante para probar de forma sistemática nuevas versiones de TOL, |
|---|
| 364 | o incluso el nuevo desarrollo de TOL, adaptando el código si es necesario, |
|---|
| 365 | pero con el mayor grado de compatibilidad que sea razonable conseguir. |
|---|
| 366 | \layout Subsection |
|---|
| 367 | |
|---|
| 368 | Eficiencia |
|---|
| 369 | \layout Standard |
|---|
| 370 | |
|---|
| 371 | Tomando como caso de comparación la estimación de modelos de agencia del |
|---|
| 372 | Banco do Brasil se han obtenido los siguientes resultados. |
|---|
| 373 | \layout Standard |
|---|
| 374 | |
|---|
| 375 | |
|---|
| 376 | \lang english |
|---|
| 377 | |
|---|
| 378 | \begin_inset Float figure |
|---|
| 379 | placement htbp |
|---|
| 380 | wide false |
|---|
| 381 | collapsed false |
|---|
| 382 | |
|---|
| 383 | \layout Caption |
|---|
| 384 | |
|---|
| 385 | |
|---|
| 386 | \lang english |
|---|
| 387 | |
|---|
| 388 | \begin_inset LatexCommand \label{tol-performance} |
|---|
| 389 | |
|---|
| 390 | \end_inset |
|---|
| 391 | |
|---|
| 392 | TOL performance |
|---|
| 393 | \layout Standard |
|---|
| 394 | \align center |
|---|
| 395 | |
|---|
| 396 | \lang english |
|---|
| 397 | |
|---|
| 398 | \begin_inset Graphics |
|---|
| 399 | filename C:/projects-c++/bayes/tol-project/toldoc/TOLCleaningDic05/tolperformance.eps |
|---|
| 400 | display color |
|---|
| 401 | scale 66.6 |
|---|
| 402 | rotateOrigin center |
|---|
| 403 | |
|---|
| 404 | \end_inset |
|---|
| 405 | |
|---|
| 406 | |
|---|
| 407 | \end_inset |
|---|
| 408 | |
|---|
| 409 | |
|---|
| 410 | \layout Standard |
|---|
| 411 | |
|---|
| 412 | Se ha utilizado el tol.exe y se ha separado el proceso en módulos correspondiente |
|---|
| 413 | s a los tests del Banco do Brasil por ser los que se han podido hacer en |
|---|
| 414 | local y en los que tiene sentido medir el tiempo de proceso, que está dominado |
|---|
| 415 | por la interconexión en el caso de acceder de forma remota por la VPN al |
|---|
| 416 | código TOL y/o la base de datos. |
|---|
| 417 | Las mediciones abarcan |
|---|
| 418 | \layout Enumerate |
|---|
| 419 | |
|---|
| 420 | Cores: Cualquier instancia de cualquier clase heredada de BCore, lo cual |
|---|
| 421 | incluye todos los elementos del lenguaje, las listas, los árboles y otros |
|---|
| 422 | heredados de BObject que carecen normalmente de importancia relativa. |
|---|
| 423 | Estos han descendido notablemente al no heredar BText de BAtom y emplearse |
|---|
| 424 | muchas menos listas que antes ya que BSet ya no contiene una lista, ni |
|---|
| 425 | tampoco BSerieGroup ni BSerieTable. |
|---|
| 426 | \layout Enumerate |
|---|
| 427 | |
|---|
| 428 | Objects: Objetos heredados de BSyntaxObject, es decir, los propiamente relaciona |
|---|
| 429 | dos con el lenguaje. |
|---|
| 430 | Estos han descendido porque se borran los objetos de los tipos pequeños |
|---|
| 431 | con el operdor de declaración y sobre todo porque hay menos errores que |
|---|
| 432 | dejen referencias de más y se borran más objetos innecesarios. |
|---|
| 433 | \layout Enumerate |
|---|
| 434 | |
|---|
| 435 | Kb: Memoria adjudicada al proceso por el sistema operativo Windows una vez |
|---|
| 436 | ejecutado el test restándole la correspondiente a la inicialización del |
|---|
| 437 | proyecto SADD (Test BB000 InitSADD) para calcular el consumo debido exclusivame |
|---|
| 438 | nte a cada test. |
|---|
| 439 | Como estos se ejecutan en una pila local (o sea entre llaves {}), y devolviendo |
|---|
| 440 | copia de los resultados para la estadística de tests, TOL debería devolver |
|---|
| 441 | prácticamente toda la memoria. |
|---|
| 442 | Aunque tiene cierto componente aleatorio pues el S.O. |
|---|
| 443 | puede otorgar más de lo solicitado, esto no supone demasiada variación. |
|---|
| 444 | El ahorro depende mucho del tipo de proceso que ejecuta el test ya que |
|---|
| 445 | el TOL del CVS puede perder más o menos memoria según las operaciones que |
|---|
| 446 | se realizan. |
|---|
| 447 | \layout Enumerate |
|---|
| 448 | |
|---|
| 449 | Time Elapsed: Tiempo empleado por cada proceso medido en segundos. |
|---|
| 450 | En algunos procesos no se mejora prácticamente nada pero en otros se gana |
|---|
| 451 | un 30% en velocidad y en otros que se han probado aparte mucho más, especialmen |
|---|
| 452 | te cuando la memoria consumida desciende mucho y se evita el uso de memoria |
|---|
| 453 | virtual. |
|---|
| 454 | \layout Section |
|---|
| 455 | |
|---|
| 456 | Resumen de los cambios introducidos en el código |
|---|
| 457 | \layout Standard |
|---|
| 458 | |
|---|
| 459 | Los cambios afectan a 87 de los 267 ficheros *.c, *.cpp; *. |
|---|
| 460 | h; *.hpp que componen el proyecto TOL y afectan a las áreas más importantes |
|---|
| 461 | del lenguaje aunque también hay algunos cambios menores que se han hecho |
|---|
| 462 | necesarios o que venían al paso. |
|---|
| 463 | \layout Standard |
|---|
| 464 | |
|---|
| 465 | A continuación se detallan por categorías conceptuales los cambios realizados |
|---|
| 466 | seguidos de los ficheros afectados por cada uno o a veces de forma conjunta |
|---|
| 467 | para un grupo de cambios consecutivos íntimamente relacionados entre sí. |
|---|
| 468 | \layout Standard |
|---|
| 469 | |
|---|
| 470 | (Aún faltan de reportar los últimos cambios, para ello tengo que hacer un |
|---|
| 471 | diff en local del TOL del CVS actual con la versión de desarrollo) |
|---|
| 472 | \layout Subsection |
|---|
| 473 | |
|---|
| 474 | Basic objects related changes |
|---|
| 475 | \layout Enumerate |
|---|
| 476 | |
|---|
| 477 | Virtual methods IsDeadObj and System are been downloaded from BSyntaxObject |
|---|
| 478 | to this level to allow a best memory tracing |
|---|
| 479 | \begin_deeper |
|---|
| 480 | \layout Enumerate |
|---|
| 481 | |
|---|
| 482 | bbasic/tol_batom.h |
|---|
| 483 | \end_deeper |
|---|
| 484 | \layout Enumerate |
|---|
| 485 | |
|---|
| 486 | Changed memory trace handling |
|---|
| 487 | \begin_deeper |
|---|
| 488 | \layout Enumerate |
|---|
| 489 | |
|---|
| 490 | bbasic/atm.cpp |
|---|
| 491 | \end_deeper |
|---|
| 492 | \layout Enumerate |
|---|
| 493 | |
|---|
| 494 | Constant factor 2 for Add reallocation replaced by ReallocMarginFactor defined |
|---|
| 495 | as 1.2 |
|---|
| 496 | \begin_deeper |
|---|
| 497 | \layout Enumerate |
|---|
| 498 | |
|---|
| 499 | bbasic/tol_barray.h : |
|---|
| 500 | \end_deeper |
|---|
| 501 | \layout Enumerate |
|---|
| 502 | |
|---|
| 503 | BText::defectSize_ = 0 instead of old unused value of 64, due to constant |
|---|
| 504 | 1 was used |
|---|
| 505 | \begin_deeper |
|---|
| 506 | \layout Enumerate |
|---|
| 507 | |
|---|
| 508 | bbasic/txt.cpp : |
|---|
| 509 | \end_deeper |
|---|
| 510 | \layout Enumerate |
|---|
| 511 | |
|---|
| 512 | Now BText doesn't inherites from BAtom. |
|---|
| 513 | To insert strings in lists BObject will be used. |
|---|
| 514 | \begin_deeper |
|---|
| 515 | \layout Enumerate |
|---|
| 516 | |
|---|
| 517 | bbasic/tol_btext.h |
|---|
| 518 | \layout Enumerate |
|---|
| 519 | |
|---|
| 520 | bbasic/txt.cpp |
|---|
| 521 | \layout Enumerate |
|---|
| 522 | |
|---|
| 523 | bbasic/tol_bdir.h |
|---|
| 524 | \layout Enumerate |
|---|
| 525 | |
|---|
| 526 | bbasic/dir.cpp |
|---|
| 527 | \layout Enumerate |
|---|
| 528 | |
|---|
| 529 | bbasic/dirtext.cpp |
|---|
| 530 | \layout Enumerate |
|---|
| 531 | |
|---|
| 532 | bbasic/tol_bopt.h |
|---|
| 533 | \layout Enumerate |
|---|
| 534 | |
|---|
| 535 | bbasic/opt.cpp |
|---|
| 536 | \layout Enumerate |
|---|
| 537 | |
|---|
| 538 | bbasic/opttext.cpp |
|---|
| 539 | \layout Enumerate |
|---|
| 540 | |
|---|
| 541 | bparser/par.cpp |
|---|
| 542 | \end_deeper |
|---|
| 543 | \layout Enumerate |
|---|
| 544 | |
|---|
| 545 | New access functions to miliseconds and string formated of process elapsed |
|---|
| 546 | timebbasic/tol_btimer.h |
|---|
| 547 | \begin_deeper |
|---|
| 548 | \layout Enumerate |
|---|
| 549 | |
|---|
| 550 | bbasic/timer.cpp |
|---|
| 551 | \end_deeper |
|---|
| 552 | \layout Subsection |
|---|
| 553 | |
|---|
| 554 | Math objects related changes |
|---|
| 555 | \layout Enumerate |
|---|
| 556 | |
|---|
| 557 | Frequency(...) must divide in just n parts instead of n+1 |
|---|
| 558 | \begin_deeper |
|---|
| 559 | \layout Enumerate |
|---|
| 560 | |
|---|
| 561 | bmath/bstat/stat.cpp |
|---|
| 562 | \end_deeper |
|---|
| 563 | \layout Enumerate |
|---|
| 564 | |
|---|
| 565 | Fixed invalid memory access in ARMAAutoCovarianzeVector function, when no |
|---|
| 566 | AR is defined and number of required autocovariances is less or equal than |
|---|
| 567 | MA degree that could cause random secondary effects, even system crashes. |
|---|
| 568 | \begin_deeper |
|---|
| 569 | \layout Enumerate |
|---|
| 570 | |
|---|
| 571 | bmath/bstat/barma.cpp |
|---|
| 572 | \end_deeper |
|---|
| 573 | \layout Subsection |
|---|
| 574 | |
|---|
| 575 | Kernel-grammar related changes |
|---|
| 576 | \layout Enumerate |
|---|
| 577 | |
|---|
| 578 | BField inherites from BObject instead of BSyntaxObject |
|---|
| 579 | \begin_deeper |
|---|
| 580 | \layout Enumerate |
|---|
| 581 | |
|---|
| 582 | btol/bgrammar/tol_bstruct.h |
|---|
| 583 | \end_deeper |
|---|
| 584 | \layout Enumerate |
|---|
| 585 | |
|---|
| 586 | New IsAutoContens() method of grammars to be used in futurebtol/bgrammar/str.cpp |
|---|
| 587 | : |
|---|
| 588 | \begin_deeper |
|---|
| 589 | \layout Enumerate |
|---|
| 590 | |
|---|
| 591 | btol/bgrammar/tol_bgrammar.h |
|---|
| 592 | \layout Enumerate |
|---|
| 593 | |
|---|
| 594 | btol/bgrammar/graacc.cpp |
|---|
| 595 | \end_deeper |
|---|
| 596 | \layout Enumerate |
|---|
| 597 | |
|---|
| 598 | Unparsing is used just in Evaluate(BText expression) instead of Evaluate(BTree |
|---|
| 599 | tree) to savememory and process time. |
|---|
| 600 | \begin_deeper |
|---|
| 601 | \layout Enumerate |
|---|
| 602 | |
|---|
| 603 | btol/bgrammar/graimp.cpp |
|---|
| 604 | \end_deeper |
|---|
| 605 | \layout Subsection |
|---|
| 606 | |
|---|
| 607 | Syntax-hierarchy related changes |
|---|
| 608 | \layout Enumerate |
|---|
| 609 | |
|---|
| 610 | Unused class BSyntaxImage and related functions has been eliminated |
|---|
| 611 | \begin_deeper |
|---|
| 612 | \layout Enumerate |
|---|
| 613 | |
|---|
| 614 | btol/bgrammar/tol_bsyntax.h |
|---|
| 615 | \layout Enumerate |
|---|
| 616 | |
|---|
| 617 | btol/bgrammar/syn.cpp |
|---|
| 618 | \layout Enumerate |
|---|
| 619 | |
|---|
| 620 | btol/bgrammar/tol_bgrammar.h |
|---|
| 621 | \layout Enumerate |
|---|
| 622 | |
|---|
| 623 | btol/bgrammar/graacc.cpp |
|---|
| 624 | \layout Enumerate |
|---|
| 625 | |
|---|
| 626 | btol/bgrammar/tol_bmethod.h |
|---|
| 627 | \layout Enumerate |
|---|
| 628 | |
|---|
| 629 | btol/bgrammar/met.cpp |
|---|
| 630 | \end_deeper |
|---|
| 631 | \layout Enumerate |
|---|
| 632 | |
|---|
| 633 | Boolean members system_, released_, calculated_, and calculating_ are compacted |
|---|
| 634 | in a protected bit-struct flags_ member at BSyntaxObject using just a byte |
|---|
| 635 | all together |
|---|
| 636 | \begin_deeper |
|---|
| 637 | \layout Enumerate |
|---|
| 638 | |
|---|
| 639 | btol/bgrammar/tol_bsyntax.h |
|---|
| 640 | \layout Enumerate |
|---|
| 641 | |
|---|
| 642 | btol/bgrammar/tol_bgencon.h |
|---|
| 643 | \layout Enumerate |
|---|
| 644 | |
|---|
| 645 | btol/bgrammar/tol_bgenobj.h |
|---|
| 646 | \layout Enumerate |
|---|
| 647 | |
|---|
| 648 | btol/lang/language.cpp |
|---|
| 649 | \end_deeper |
|---|
| 650 | \layout Enumerate |
|---|
| 651 | |
|---|
| 652 | BSyntaxObject Mode constants are moved to tol_bsyntax.h |
|---|
| 653 | \begin_deeper |
|---|
| 654 | \layout Enumerate |
|---|
| 655 | |
|---|
| 656 | tol_bcommon.h, |
|---|
| 657 | \layout Enumerate |
|---|
| 658 | |
|---|
| 659 | btol/bgrammar/tol_bsyntax.h |
|---|
| 660 | \layout Enumerate |
|---|
| 661 | |
|---|
| 662 | btol/bgrammar/syn.cpp |
|---|
| 663 | \end_deeper |
|---|
| 664 | \layout Enumerate |
|---|
| 665 | |
|---|
| 666 | BSyntaxObject::flags_.system_ is set to true for all BSyntaxObjects until |
|---|
| 667 | TOLHasBeenInitialized() return true, when InitGrammars ends |
|---|
| 668 | \begin_deeper |
|---|
| 669 | \layout Enumerate |
|---|
| 670 | |
|---|
| 671 | btol/bgrammar/tol_bsyntax.h |
|---|
| 672 | \layout Enumerate |
|---|
| 673 | |
|---|
| 674 | lang/language.cpp |
|---|
| 675 | \end_deeper |
|---|
| 676 | \layout Enumerate |
|---|
| 677 | |
|---|
| 678 | Old BSyntaxObject tolPath_ is restricted to BSetFromFile to be used in new |
|---|
| 679 | method ParentPath() to access to path of the file where the object was |
|---|
| 680 | created in. |
|---|
| 681 | New BSynObjOptInfo class to optional storement of name_, description_, |
|---|
| 682 | localName_ and parent_ in BSyntaxObject just when needed. |
|---|
| 683 | Changed memory trace handling |
|---|
| 684 | \begin_deeper |
|---|
| 685 | \layout Enumerate |
|---|
| 686 | |
|---|
| 687 | btol/bgrammar/tol_bsyntax.h |
|---|
| 688 | \layout Enumerate |
|---|
| 689 | |
|---|
| 690 | btol/bgrammar/syn.cpp |
|---|
| 691 | \end_deeper |
|---|
| 692 | \layout Enumerate |
|---|
| 693 | |
|---|
| 694 | Class BRenamed is eliminated, BRenamedGen is renamed as BRefObject. |
|---|
| 695 | In BTmpObject args_ member is now a BList* instead of a BSet and a short |
|---|
| 696 | card_, and BSyntaxObject** array_ are used to accelerate accesses to arguments. |
|---|
| 697 | |
|---|
| 698 | \layout Enumerate |
|---|
| 699 | |
|---|
| 700 | New template classes has been inserted in *Contens* template hierarchy. |
|---|
| 701 | A new template BGraContensBase<Any> without contens_ to save memory when |
|---|
| 702 | is this member is not needed and allowing virtual access to it. |
|---|
| 703 | A |
|---|
| 704 | \layout Enumerate |
|---|
| 705 | |
|---|
| 706 | New template BGraContensFND<Any,Name_,Description_> usefull to returned |
|---|
| 707 | objects by built-in functions saving memory in each instance. |
|---|
| 708 | |
|---|
| 709 | \layout Enumerate |
|---|
| 710 | |
|---|
| 711 | A new temlpate BCopyContens<Any> to use instead of BRenContens<Any> to low |
|---|
| 712 | size types as Real, Complex, Date, Text, Polyn, Ration. |
|---|
| 713 | This objects copy the contens of referenced object and try to destroy it. |
|---|
| 714 | If isn't posible, destroying will be delayed to the live end of encapsulating |
|---|
| 715 | object. |
|---|
| 716 | \layout Enumerate |
|---|
| 717 | |
|---|
| 718 | BGraConstant<Any> modifications of name, description or value are disabled |
|---|
| 719 | \layout Enumerate |
|---|
| 720 | |
|---|
| 721 | BRenContens<Any>::New(const BText& name, BSyntaxObject* obj) method will |
|---|
| 722 | call BCopyContens<Any>::New when obj were a System variable to avoid involuntar |
|---|
| 723 | y constant objects modifications |
|---|
| 724 | \begin_deeper |
|---|
| 725 | \layout Enumerate |
|---|
| 726 | |
|---|
| 727 | btol/bgrammar/tol_bgentmp.h |
|---|
| 728 | \layout Enumerate |
|---|
| 729 | |
|---|
| 730 | btol/bgrammar/tol_bgencon.h |
|---|
| 731 | \layout Enumerate |
|---|
| 732 | |
|---|
| 733 | btol/bgrammar/tol_bgenobj.h |
|---|
| 734 | \layout Enumerate |
|---|
| 735 | |
|---|
| 736 | lang/language.cpp |
|---|
| 737 | \end_deeper |
|---|
| 738 | \layout Enumerate |
|---|
| 739 | |
|---|
| 740 | Access to BSet BTmpObject<Any>::Args() must be replaced by BList* ArgList() |
|---|
| 741 | or DupArgList() |
|---|
| 742 | \begin_deeper |
|---|
| 743 | \layout Enumerate |
|---|
| 744 | |
|---|
| 745 | btol |
|---|
| 746 | \backslash |
|---|
| 747 | matrix_type |
|---|
| 748 | \backslash |
|---|
| 749 | matgra.cpp |
|---|
| 750 | \layout Enumerate |
|---|
| 751 | |
|---|
| 752 | btol |
|---|
| 753 | \backslash |
|---|
| 754 | set_type |
|---|
| 755 | \backslash |
|---|
| 756 | setgra.cpp |
|---|
| 757 | \layout Enumerate |
|---|
| 758 | |
|---|
| 759 | btol |
|---|
| 760 | \backslash |
|---|
| 761 | bgrammar |
|---|
| 762 | \backslash |
|---|
| 763 | tol_bgentmp.h |
|---|
| 764 | \end_deeper |
|---|
| 765 | \layout Enumerate |
|---|
| 766 | |
|---|
| 767 | Access to BSet BTmpObject<Any>::Args().Card() must be replaced by NumArgs() |
|---|
| 768 | \begin_deeper |
|---|
| 769 | \layout Enumerate |
|---|
| 770 | |
|---|
| 771 | btol |
|---|
| 772 | \backslash |
|---|
| 773 | bmonte |
|---|
| 774 | \backslash |
|---|
| 775 | mc-integrator.cpp |
|---|
| 776 | \layout Enumerate |
|---|
| 777 | |
|---|
| 778 | btol |
|---|
| 779 | \backslash |
|---|
| 780 | matrix_type |
|---|
| 781 | \backslash |
|---|
| 782 | matgra.cpp |
|---|
| 783 | \layout Enumerate |
|---|
| 784 | |
|---|
| 785 | btol |
|---|
| 786 | \backslash |
|---|
| 787 | real_type |
|---|
| 788 | \backslash |
|---|
| 789 | armseval.cpp |
|---|
| 790 | \layout Enumerate |
|---|
| 791 | |
|---|
| 792 | btol |
|---|
| 793 | \backslash |
|---|
| 794 | real_type |
|---|
| 795 | \backslash |
|---|
| 796 | datgrapr.cpp |
|---|
| 797 | \layout Enumerate |
|---|
| 798 | |
|---|
| 799 | btol |
|---|
| 800 | \backslash |
|---|
| 801 | real_type |
|---|
| 802 | \backslash |
|---|
| 803 | datgrast.cpp |
|---|
| 804 | \layout Enumerate |
|---|
| 805 | |
|---|
| 806 | btol |
|---|
| 807 | \backslash |
|---|
| 808 | real_type |
|---|
| 809 | \backslash |
|---|
| 810 | datgrav.cpp |
|---|
| 811 | \layout Enumerate |
|---|
| 812 | |
|---|
| 813 | btol |
|---|
| 814 | \backslash |
|---|
| 815 | set_type |
|---|
| 816 | \backslash |
|---|
| 817 | setgra.cpp |
|---|
| 818 | \layout Enumerate |
|---|
| 819 | |
|---|
| 820 | btol |
|---|
| 821 | \backslash |
|---|
| 822 | timeset_type |
|---|
| 823 | \backslash |
|---|
| 824 | tmsgrav.cpp |
|---|
| 825 | \layout Enumerate |
|---|
| 826 | |
|---|
| 827 | btol |
|---|
| 828 | \backslash |
|---|
| 829 | bgrammar |
|---|
| 830 | \backslash |
|---|
| 831 | tol_bgentmp.h: |
|---|
| 832 | \layout Enumerate |
|---|
| 833 | |
|---|
| 834 | lang |
|---|
| 835 | \backslash |
|---|
| 836 | language.cpp |
|---|
| 837 | \end_deeper |
|---|
| 838 | \layout Enumerate |
|---|
| 839 | |
|---|
| 840 | Access to BSyntaxObject or inherited boolean members system_, released_, |
|---|
| 841 | calculated_, and calculating_ must be changed to flags_.* or BSyntaxObject::Put* |
|---|
| 842 | functions |
|---|
| 843 | \begin_deeper |
|---|
| 844 | \layout Enumerate |
|---|
| 845 | |
|---|
| 846 | btol |
|---|
| 847 | \backslash |
|---|
| 848 | bmonte |
|---|
| 849 | \backslash |
|---|
| 850 | mc-integrator.cpp |
|---|
| 851 | \layout Enumerate |
|---|
| 852 | |
|---|
| 853 | btol |
|---|
| 854 | \backslash |
|---|
| 855 | cseries_type |
|---|
| 856 | \backslash |
|---|
| 857 | ctsrgra.cpp |
|---|
| 858 | \layout Enumerate |
|---|
| 859 | |
|---|
| 860 | btol |
|---|
| 861 | \backslash |
|---|
| 862 | matrix_type |
|---|
| 863 | \backslash |
|---|
| 864 | multimin.cpp |
|---|
| 865 | \layout Enumerate |
|---|
| 866 | |
|---|
| 867 | btol |
|---|
| 868 | \backslash |
|---|
| 869 | serie_type |
|---|
| 870 | \backslash |
|---|
| 871 | tsrgra.cpp |
|---|
| 872 | \layout Enumerate |
|---|
| 873 | |
|---|
| 874 | btol |
|---|
| 875 | \backslash |
|---|
| 876 | set_type |
|---|
| 877 | \backslash |
|---|
| 878 | setgra.cpp |
|---|
| 879 | \layout Enumerate |
|---|
| 880 | |
|---|
| 881 | btol |
|---|
| 882 | \backslash |
|---|
| 883 | bgrammar |
|---|
| 884 | \backslash |
|---|
| 885 | tol_bgencon.h |
|---|
| 886 | \layout Enumerate |
|---|
| 887 | |
|---|
| 888 | btol |
|---|
| 889 | \backslash |
|---|
| 890 | bgrammar |
|---|
| 891 | \backslash |
|---|
| 892 | tol_bgenobj.h |
|---|
| 893 | \layout Enumerate |
|---|
| 894 | |
|---|
| 895 | btol |
|---|
| 896 | \backslash |
|---|
| 897 | bgrammar |
|---|
| 898 | \backslash |
|---|
| 899 | tol_bsyntax.h |
|---|
| 900 | \layout Enumerate |
|---|
| 901 | |
|---|
| 902 | btol |
|---|
| 903 | \backslash |
|---|
| 904 | set_type |
|---|
| 905 | \backslash |
|---|
| 906 | tol_bsetgra.h: |
|---|
| 907 | \layout Enumerate |
|---|
| 908 | |
|---|
| 909 | lang |
|---|
| 910 | \backslash |
|---|
| 911 | language.cpp |
|---|
| 912 | \end_deeper |
|---|
| 913 | \layout Enumerate |
|---|
| 914 | |
|---|
| 915 | BSystem* objects that shouldn't be system constants are changed to BUser* |
|---|
| 916 | to inherite from BGraContens<Any> instead of undeletable system class BGraConst |
|---|
| 917 | ant<Any> |
|---|
| 918 | \begin_deeper |
|---|
| 919 | \layout Enumerate |
|---|
| 920 | |
|---|
| 921 | btol |
|---|
| 922 | \backslash |
|---|
| 923 | matrix_type |
|---|
| 924 | \backslash |
|---|
| 925 | matgra.cpp |
|---|
| 926 | \layout Enumerate |
|---|
| 927 | |
|---|
| 928 | btol |
|---|
| 929 | \backslash |
|---|
| 930 | real_type |
|---|
| 931 | \backslash |
|---|
| 932 | datgra.cpp |
|---|
| 933 | \layout Enumerate |
|---|
| 934 | |
|---|
| 935 | btol |
|---|
| 936 | \backslash |
|---|
| 937 | real_type |
|---|
| 938 | \backslash |
|---|
| 939 | datgsrst.cpp |
|---|
| 940 | \layout Enumerate |
|---|
| 941 | |
|---|
| 942 | btol |
|---|
| 943 | \backslash |
|---|
| 944 | text_type |
|---|
| 945 | \backslash |
|---|
| 946 | txtgra.cpp |
|---|
| 947 | \layout Enumerate |
|---|
| 948 | |
|---|
| 949 | lang |
|---|
| 950 | \backslash |
|---|
| 951 | language.cpp |
|---|
| 952 | \end_deeper |
|---|
| 953 | \layout Subsection |
|---|
| 954 | |
|---|
| 955 | TOL Functions and Code-type related changes |
|---|
| 956 | \layout Enumerate |
|---|
| 957 | |
|---|
| 958 | New BOperator::AddSystemOperator() to control different creating processes |
|---|
| 959 | of built-in and user functions that were never deleted internally |
|---|
| 960 | \layout Enumerate |
|---|
| 961 | |
|---|
| 962 | New bool BuildingMethod() function to special treatment of overloading of |
|---|
| 963 | method's functions |
|---|
| 964 | \begin_deeper |
|---|
| 965 | \layout Enumerate |
|---|
| 966 | |
|---|
| 967 | btol/bgrammar/tol_boper.h |
|---|
| 968 | \layout Enumerate |
|---|
| 969 | |
|---|
| 970 | btol/bgrammar/opr.cpp |
|---|
| 971 | \end_deeper |
|---|
| 972 | \layout Enumerate |
|---|
| 973 | |
|---|
| 974 | Fixed forbidden accesses to code->Contens() for non BUSerFunction objects |
|---|
| 975 | \layout Enumerate |
|---|
| 976 | |
|---|
| 977 | When BuildingMethod() is false Mode() must be equal to so.Mode() to match |
|---|
| 978 | \begin_deeper |
|---|
| 979 | \layout Enumerate |
|---|
| 980 | |
|---|
| 981 | btol/bgrammar/txthash.cpp : |
|---|
| 982 | \layout Enumerate |
|---|
| 983 | |
|---|
| 984 | btol/bgrammar/met.cpp : |
|---|
| 985 | \end_deeper |
|---|
| 986 | \layout Enumerate |
|---|
| 987 | |
|---|
| 988 | Internal BCode::operator_ is changed from BUserFunction* to BStandardOperator* |
|---|
| 989 | \layout Enumerate |
|---|
| 990 | |
|---|
| 991 | btol/code_type/tol_bcodgra.h : |
|---|
| 992 | \layout Enumerate |
|---|
| 993 | |
|---|
| 994 | BUserFunCode::Mode() is changed to BOBJECTMODE instead of BUSERFUNMODE that |
|---|
| 995 | is reserved to internal operators and unused class BCodeCreator has been |
|---|
| 996 | eliminated |
|---|
| 997 | \begin_deeper |
|---|
| 998 | \layout Enumerate |
|---|
| 999 | |
|---|
| 1000 | btol/code_type/tol_bcode.h |
|---|
| 1001 | \layout Enumerate |
|---|
| 1002 | |
|---|
| 1003 | btol/code_type/cod.cpp |
|---|
| 1004 | \end_deeper |
|---|
| 1005 | \layout Subsection |
|---|
| 1006 | |
|---|
| 1007 | Set-type related changes |
|---|
| 1008 | \layout Enumerate |
|---|
| 1009 | |
|---|
| 1010 | At BSet class BList* element_ is eliminated. |
|---|
| 1011 | |
|---|
| 1012 | \layout Enumerate |
|---|
| 1013 | |
|---|
| 1014 | When a list is needed a copy is available through ToList(). |
|---|
| 1015 | |
|---|
| 1016 | \layout Enumerate |
|---|
| 1017 | |
|---|
| 1018 | Access to BSet BTmpObject<Any>::Args() must be replaced by BList* ArgList() |
|---|
| 1019 | or DupArgList(). |
|---|
| 1020 | New class BGraContensFNDSet<BSet, Name_, Description_> inherited from BGraConte |
|---|
| 1021 | nsFND<Any,Name_,Description_> to allow special constructors of bulit-in |
|---|
| 1022 | functions returned sets. |
|---|
| 1023 | |
|---|
| 1024 | \layout Enumerate |
|---|
| 1025 | |
|---|
| 1026 | BSet constructor from BList* and operator= to BList* are eliminated to replace |
|---|
| 1027 | in this case by PutElement or RobElement. |
|---|
| 1028 | |
|---|
| 1029 | \layout Enumerate |
|---|
| 1030 | |
|---|
| 1031 | Allocation methods: DeleteBuffer() method is renamed as Delete(). |
|---|
| 1032 | ReallocBuffer is renamed as Realloc and protected and is added a new protected |
|---|
| 1033 | Alloc method and the only one public will be PrepareStore, in order to |
|---|
| 1034 | avoid invalid memory accesses. |
|---|
| 1035 | \begin_deeper |
|---|
| 1036 | \layout Enumerate |
|---|
| 1037 | |
|---|
| 1038 | btol |
|---|
| 1039 | \backslash |
|---|
| 1040 | bdb |
|---|
| 1041 | \backslash |
|---|
| 1042 | bdb.cpp |
|---|
| 1043 | \layout Enumerate |
|---|
| 1044 | |
|---|
| 1045 | btol |
|---|
| 1046 | \backslash |
|---|
| 1047 | bdb |
|---|
| 1048 | \backslash |
|---|
| 1049 | bdspool.cpp |
|---|
| 1050 | \layout Enumerate |
|---|
| 1051 | |
|---|
| 1052 | btol |
|---|
| 1053 | \backslash |
|---|
| 1054 | bgrammar |
|---|
| 1055 | \backslash |
|---|
| 1056 | graimp.cpp |
|---|
| 1057 | \layout Enumerate |
|---|
| 1058 | |
|---|
| 1059 | btol |
|---|
| 1060 | \backslash |
|---|
| 1061 | bgrammar |
|---|
| 1062 | \backslash |
|---|
| 1063 | spfuninst.cpp |
|---|
| 1064 | \layout Enumerate |
|---|
| 1065 | |
|---|
| 1066 | btol |
|---|
| 1067 | \backslash |
|---|
| 1068 | bmodel |
|---|
| 1069 | \backslash |
|---|
| 1070 | aia.cpp |
|---|
| 1071 | \layout Enumerate |
|---|
| 1072 | |
|---|
| 1073 | btol |
|---|
| 1074 | \backslash |
|---|
| 1075 | bmodel |
|---|
| 1076 | \backslash |
|---|
| 1077 | estim.cpp |
|---|
| 1078 | \layout Enumerate |
|---|
| 1079 | |
|---|
| 1080 | btol |
|---|
| 1081 | \backslash |
|---|
| 1082 | bmodel |
|---|
| 1083 | \backslash |
|---|
| 1084 | foread.cpp |
|---|
| 1085 | \layout Enumerate |
|---|
| 1086 | |
|---|
| 1087 | btol |
|---|
| 1088 | \backslash |
|---|
| 1089 | bmodel |
|---|
| 1090 | \backslash |
|---|
| 1091 | modcalc.cpp |
|---|
| 1092 | \layout Enumerate |
|---|
| 1093 | |
|---|
| 1094 | btol |
|---|
| 1095 | \backslash |
|---|
| 1096 | bmodel |
|---|
| 1097 | \backslash |
|---|
| 1098 | model.cpp |
|---|
| 1099 | \layout Enumerate |
|---|
| 1100 | |
|---|
| 1101 | btol |
|---|
| 1102 | \backslash |
|---|
| 1103 | bmonte |
|---|
| 1104 | \backslash |
|---|
| 1105 | mc-integrator.cpp |
|---|
| 1106 | \layout Enumerate |
|---|
| 1107 | |
|---|
| 1108 | btol |
|---|
| 1109 | \backslash |
|---|
| 1110 | matrix_type |
|---|
| 1111 | \backslash |
|---|
| 1112 | matgra.cpp |
|---|
| 1113 | \layout Enumerate |
|---|
| 1114 | |
|---|
| 1115 | btol |
|---|
| 1116 | \backslash |
|---|
| 1117 | matrix_type |
|---|
| 1118 | \backslash |
|---|
| 1119 | multimin.cpp |
|---|
| 1120 | \layout Enumerate |
|---|
| 1121 | |
|---|
| 1122 | btol |
|---|
| 1123 | \backslash |
|---|
| 1124 | polynomial_type |
|---|
| 1125 | \backslash |
|---|
| 1126 | polgra.cpp |
|---|
| 1127 | \layout Enumerate |
|---|
| 1128 | |
|---|
| 1129 | btol |
|---|
| 1130 | \backslash |
|---|
| 1131 | real_type |
|---|
| 1132 | \backslash |
|---|
| 1133 | datgrast.cpp |
|---|
| 1134 | \layout Enumerate |
|---|
| 1135 | |
|---|
| 1136 | btol |
|---|
| 1137 | \backslash |
|---|
| 1138 | set_type |
|---|
| 1139 | \backslash |
|---|
| 1140 | set.cpp |
|---|
| 1141 | \layout Enumerate |
|---|
| 1142 | |
|---|
| 1143 | btol |
|---|
| 1144 | \backslash |
|---|
| 1145 | set_type |
|---|
| 1146 | \backslash |
|---|
| 1147 | setgra.cpp |
|---|
| 1148 | \layout Enumerate |
|---|
| 1149 | |
|---|
| 1150 | btol |
|---|
| 1151 | \backslash |
|---|
| 1152 | set_type |
|---|
| 1153 | \backslash |
|---|
| 1154 | tol_bset.h |
|---|
| 1155 | \layout Enumerate |
|---|
| 1156 | |
|---|
| 1157 | btol |
|---|
| 1158 | \backslash |
|---|
| 1159 | text_type |
|---|
| 1160 | \backslash |
|---|
| 1161 | txtgra.cpp |
|---|
| 1162 | \layout Enumerate |
|---|
| 1163 | |
|---|
| 1164 | lang |
|---|
| 1165 | \backslash |
|---|
| 1166 | language.cpp |
|---|
| 1167 | \end_deeper |
|---|
| 1168 | \layout Subsection |
|---|
| 1169 | |
|---|
| 1170 | Real-type related changes |
|---|
| 1171 | \layout Enumerate |
|---|
| 1172 | |
|---|
| 1173 | New controls about number of errors and warnings exported to TOL user |
|---|
| 1174 | \begin_deeper |
|---|
| 1175 | \layout Enumerate |
|---|
| 1176 | |
|---|
| 1177 | btol/real_type/datgra.cpp |
|---|
| 1178 | \layout Enumerate |
|---|
| 1179 | |
|---|
| 1180 | bbasic/out.cpp |
|---|
| 1181 | \end_deeper |
|---|
| 1182 | \layout Subsection |
|---|
| 1183 | |
|---|
| 1184 | Complex-type related changes |
|---|
| 1185 | \layout Enumerate |
|---|
| 1186 | |
|---|
| 1187 | BCmpConstant* i_ is changed to BParamCmp |
|---|
| 1188 | \begin_deeper |
|---|
| 1189 | \layout Enumerate |
|---|
| 1190 | |
|---|
| 1191 | btol/complex_type/cmpgra.cpp |
|---|
| 1192 | \end_deeper |
|---|
| 1193 | \layout Subsection |
|---|
| 1194 | |
|---|
| 1195 | Serie-type related changes |
|---|
| 1196 | \layout Enumerate |
|---|
| 1197 | |
|---|
| 1198 | Dating_->nRefs_ is not touched by BTimeSerie because is non needed feature. |
|---|
| 1199 | Unused hashDat_ member has been eliminated |
|---|
| 1200 | \begin_deeper |
|---|
| 1201 | \layout Enumerate |
|---|
| 1202 | |
|---|
| 1203 | btol/serie_type/tol_btmser.h |
|---|
| 1204 | \layout Enumerate |
|---|
| 1205 | |
|---|
| 1206 | btol/serie_type/tsrgra.cpp |
|---|
| 1207 | \end_deeper |
|---|
| 1208 | \layout Enumerate |
|---|
| 1209 | |
|---|
| 1210 | BData data_ is now really protected eliminating GetDataBuffer() access. |
|---|
| 1211 | New BTimeSerie member functions PutBufDat to change a dat, or Realloc, |
|---|
| 1212 | Alloc and Delete to manage memory |
|---|
| 1213 | \begin_deeper |
|---|
| 1214 | \layout Enumerate |
|---|
| 1215 | |
|---|
| 1216 | btol |
|---|
| 1217 | \backslash |
|---|
| 1218 | bdb |
|---|
| 1219 | \backslash |
|---|
| 1220 | bdb.cpp |
|---|
| 1221 | \layout Enumerate |
|---|
| 1222 | |
|---|
| 1223 | btol |
|---|
| 1224 | \backslash |
|---|
| 1225 | bdb |
|---|
| 1226 | \backslash |
|---|
| 1227 | bdspool.cpp |
|---|
| 1228 | \layout Enumerate |
|---|
| 1229 | |
|---|
| 1230 | btol |
|---|
| 1231 | \backslash |
|---|
| 1232 | bmodel |
|---|
| 1233 | \backslash |
|---|
| 1234 | modprev.cpp |
|---|
| 1235 | \layout Enumerate |
|---|
| 1236 | |
|---|
| 1237 | btol |
|---|
| 1238 | \backslash |
|---|
| 1239 | serie_type |
|---|
| 1240 | \backslash |
|---|
| 1241 | srg.cpp |
|---|
| 1242 | \layout Enumerate |
|---|
| 1243 | |
|---|
| 1244 | btol |
|---|
| 1245 | \backslash |
|---|
| 1246 | serie_type |
|---|
| 1247 | \backslash |
|---|
| 1248 | tsr.cpp: |
|---|
| 1249 | \layout Enumerate |
|---|
| 1250 | |
|---|
| 1251 | btol |
|---|
| 1252 | \backslash |
|---|
| 1253 | serie_type |
|---|
| 1254 | \backslash |
|---|
| 1255 | tsrgra.cpp: |
|---|
| 1256 | \layout Enumerate |
|---|
| 1257 | |
|---|
| 1258 | btol |
|---|
| 1259 | \backslash |
|---|
| 1260 | serie_type |
|---|
| 1261 | \backslash |
|---|
| 1262 | tsrgrav.cpp: |
|---|
| 1263 | \layout Enumerate |
|---|
| 1264 | |
|---|
| 1265 | btol |
|---|
| 1266 | \backslash |
|---|
| 1267 | serie_type |
|---|
| 1268 | \backslash |
|---|
| 1269 | tol_btmser.h: |
|---|
| 1270 | \layout Enumerate |
|---|
| 1271 | |
|---|
| 1272 | btol |
|---|
| 1273 | \backslash |
|---|
| 1274 | serie_type |
|---|
| 1275 | \backslash |
|---|
| 1276 | tol_btsrgrp.h |
|---|
| 1277 | \layout Enumerate |
|---|
| 1278 | |
|---|
| 1279 | btol |
|---|
| 1280 | \backslash |
|---|
| 1281 | set_type |
|---|
| 1282 | \backslash |
|---|
| 1283 | setgra.cpp |
|---|
| 1284 | \end_deeper |
|---|
| 1285 | \layout Enumerate |
|---|
| 1286 | |
|---|
| 1287 | New BData class inherited from BArray<BDat> to control Time Series used |
|---|
| 1288 | volume |
|---|
| 1289 | \begin_deeper |
|---|
| 1290 | \layout Enumerate |
|---|
| 1291 | |
|---|
| 1292 | bmath/mathobjects/tol_bdat.h |
|---|
| 1293 | \layout Enumerate |
|---|
| 1294 | |
|---|
| 1295 | bmath/mathobjects/dat.cpp |
|---|
| 1296 | \end_deeper |
|---|
| 1297 | \layout Enumerate |
|---|
| 1298 | |
|---|
| 1299 | BSerieGroup and BSerieTable use now a BArray<BUserTimeSerie*> instead of |
|---|
| 1300 | a BSet to store Series in order to avoid secondary effects of references |
|---|
| 1301 | over them. |
|---|
| 1302 | |
|---|
| 1303 | \layout Enumerate |
|---|
| 1304 | |
|---|
| 1305 | Now the only one creator for BSerieGroup and BSerieTable has no arguments. |
|---|
| 1306 | Then you can add a Serie, a BList*, a BSet or another BSerieGroup or BSerieTabl |
|---|
| 1307 | e. |
|---|
| 1308 | After you can use BSerieGroup to prepare operations between series or test |
|---|
| 1309 | dating and date bounds of a collection of series or you can fill a BSerieTable |
|---|
| 1310 | with data from collected series. |
|---|
| 1311 | \begin_deeper |
|---|
| 1312 | \layout Enumerate |
|---|
| 1313 | |
|---|
| 1314 | btol |
|---|
| 1315 | \backslash |
|---|
| 1316 | bdb |
|---|
| 1317 | \backslash |
|---|
| 1318 | bdspool.cpp |
|---|
| 1319 | \layout Enumerate |
|---|
| 1320 | |
|---|
| 1321 | btol |
|---|
| 1322 | \backslash |
|---|
| 1323 | bmodel |
|---|
| 1324 | \backslash |
|---|
| 1325 | estim.cpp |
|---|
| 1326 | \layout Enumerate |
|---|
| 1327 | |
|---|
| 1328 | btol |
|---|
| 1329 | \backslash |
|---|
| 1330 | bmodel |
|---|
| 1331 | \backslash |
|---|
| 1332 | modcalc.cpp |
|---|
| 1333 | \layout Enumerate |
|---|
| 1334 | |
|---|
| 1335 | btol |
|---|
| 1336 | \backslash |
|---|
| 1337 | bmodel |
|---|
| 1338 | \backslash |
|---|
| 1339 | tol_bmodel.h |
|---|
| 1340 | \layout Enumerate |
|---|
| 1341 | |
|---|
| 1342 | btol |
|---|
| 1343 | \backslash |
|---|
| 1344 | matrix_type |
|---|
| 1345 | \backslash |
|---|
| 1346 | matgra.cpp |
|---|
| 1347 | \layout Enumerate |
|---|
| 1348 | |
|---|
| 1349 | btol |
|---|
| 1350 | \backslash |
|---|
| 1351 | real_type |
|---|
| 1352 | \backslash |
|---|
| 1353 | datgra.cpp |
|---|
| 1354 | \layout Enumerate |
|---|
| 1355 | |
|---|
| 1356 | btol |
|---|
| 1357 | \backslash |
|---|
| 1358 | real_type |
|---|
| 1359 | \backslash |
|---|
| 1360 | datgsrst.cpp |
|---|
| 1361 | \layout Enumerate |
|---|
| 1362 | |
|---|
| 1363 | btol |
|---|
| 1364 | \backslash |
|---|
| 1365 | serie_type |
|---|
| 1366 | \backslash |
|---|
| 1367 | srg.cpp |
|---|
| 1368 | \layout Enumerate |
|---|
| 1369 | |
|---|
| 1370 | btol |
|---|
| 1371 | \backslash |
|---|
| 1372 | serie_type |
|---|
| 1373 | \backslash |
|---|
| 1374 | tol_btsrgrp.h |
|---|
| 1375 | \layout Enumerate |
|---|
| 1376 | |
|---|
| 1377 | btol |
|---|
| 1378 | \backslash |
|---|
| 1379 | serie_type |
|---|
| 1380 | \backslash |
|---|
| 1381 | tsrgrai.cpp |
|---|
| 1382 | \layout Enumerate |
|---|
| 1383 | |
|---|
| 1384 | btol |
|---|
| 1385 | \backslash |
|---|
| 1386 | text_type |
|---|
| 1387 | \backslash |
|---|
| 1388 | txtgra.cpp |
|---|
| 1389 | \layout Enumerate |
|---|
| 1390 | |
|---|
| 1391 | lang |
|---|
| 1392 | \backslash |
|---|
| 1393 | language.cpp |
|---|
| 1394 | \end_deeper |
|---|
| 1395 | \layout Enumerate |
|---|
| 1396 | |
|---|
| 1397 | BList* outLst_ and inLst_ are eliminated from BModel to apply new BSerieTable |
|---|
| 1398 | advantages |
|---|
| 1399 | \begin_deeper |
|---|
| 1400 | \layout Enumerate |
|---|
| 1401 | |
|---|
| 1402 | btol/bmodel/foread.cpp |
|---|
| 1403 | \layout Enumerate |
|---|
| 1404 | |
|---|
| 1405 | btol/bmodel/modcalc.cpp |
|---|
| 1406 | \layout Enumerate |
|---|
| 1407 | |
|---|
| 1408 | btol/bmodel/model.cpp |
|---|
| 1409 | \layout Enumerate |
|---|
| 1410 | |
|---|
| 1411 | btol/bmodel/tol_bmodel.h |
|---|
| 1412 | \end_deeper |
|---|
| 1413 | \layout Subsection |
|---|
| 1414 | |
|---|
| 1415 | Console related changes |
|---|
| 1416 | \layout Enumerate |
|---|
| 1417 | |
|---|
| 1418 | Revisited commands and user help for interactive console mode of tol.exe |
|---|
| 1419 | \begin_deeper |
|---|
| 1420 | \layout Enumerate |
|---|
| 1421 | |
|---|
| 1422 | lang/language.cpp |
|---|
| 1423 | \the_end |
|---|