// history of SIMLIB/C++ changes SIMLIB ChangeLog: 2006-12-xx - Histogram::Output(): slight change of format 2006-10-17 - facility.cc, store.cc - add check to Facility::Seize, Store::Enter 2006-06-07 - errors.doc messages translated into english, partialy cleaned 2006-01-06 - Removed Entity::Wait() - added inline definition of SetStep(double dt); to simlib.h 2005-11-30 - process.cc - remove process from queue/calendar in destructor - added SIMLIB_warning(const char *s, ...); 2005-11-24 - README.txt change: info about ldconfig 2005-06-16 - corrected Stat::StdDev() - bugreport from David Martinek 2005-05-04 - test with GCC 4.0 - minor changes 2005-01-13 - added #ifndef protection to simlib2D.h, simlib3D.h, and optimize.h 2005-01-11 - Queue::Output() - add current length print 2004-12-20 - doc/ basic czech doc - Makefile changes 2004-10-18 - automatic dependencies 'make dep' - corrections for GCC 3.4 GCC 3.4 solved the BUG-2004-02-11 (al least on Debian/GNU/Linux) 2004-02-22 - Process::{Seize|Release|Enter|Leave|Into}(....) use reference instead ptr 2004-02-11 - check with g++ (GCC) 3.3.2 (Debian) - WARNING: BUG: all should be compiled with -O2 (or we get runtime errors!) should be investigated 2004-01-25 - new version 2.18 - some updates 2003-01-10 - delay.cc: Delay::Delay(.....=0) corrected (reported by Ales Smrcka) 2001-11-15 - facility.cc: Seize/Release BUG found by student (and corrected) - this bugfix is incompatible -> new version 2.17 - corrected 2 examples for new version 2001-11-06 - minor cleaning - initialization in constructors by member initializers (not all is done) - check with GCC 3.0.2 2001-06-24 - checked with GNU C++ version 3.0 [small changes] 2001-04-25 - Martinek: new fuzzy subsystem [v2.16.3] 2001-04-05 - new and better fuzzy subsystem [v2.16.2] 2001-02-28 - integrated patch for fuzzy extension from David Martinek 2001-02-18 - Fuzzy extension integrated [status: EXPERIMENTAL] 2000-11-12 - Makefiles for FreeBSD(kazi) and Unixware(sts) - test basic examples on those two systems (with gcc 2.95.2): OK 2000-11-09 - two optimization methods included: Hooke, sim. annealing modules: opt*.cc, interface: optimize.h 2000-11-03 - version 2.16 20.1.2000 - corrected the behavior of Facility:: Seize/Release - removed Process::Wait(Queue) - changed examples 8.10.1999 - corrected missing return type of Input{2D|3D}::operator == 5.5.1999 - IsOnHeap renamed to IsAllocated and reimplemented to work correctly ...14.1.1999 - try to innovate Store::Enter/Leave() -- fail - Problem: Store::Enter() -- activation of process should be done from Leave() only - store.cc,facility.cc -- OwnQueue() predicate used in code ...8.11.1998 - corrections for egcs 1.1 (template class plist removed) - make for Unixware/egcs ...26.8.1998 - big changes in List, Calendar, ... implementation - new debugging facility #define SIMLIB_DEBUG [mode] - new code for cleanup SIMLIB_atexit, ... (for internal use only) ...15.8.1998 - remove SimObject::_flag, add const char *_name (temporary solution) - new detection of objects on heap (two pointers: {min_|max_}heap ) - Calendar on pointer ( allows scheduling before Init() == globals) - many minor changes 4-12.8.1998 - verze 2.14 --------------------------------------- - novy modul delay.cc a samostatne rozhrani delay.h - run.cc --- instalace funkci na ukazatel (HOOKS) - new macros: CALL_HOOK(x), DEFINE_HOOK(x), INSTALL_HOOK(x,f) - simlib.h --- typ bool, t{Event|Service}Priority, drobne zmeny - change of method name: NameOf ---> Name - new macro: SIMLIB_internal_error() --- print message, file, line - cleaning, new comments 12.6.1998 - upravy Makefile pro Linux a FreeBSD - opravy chyb zjistene prekladacem GCC 2.8, egcs 10.12.1997 - pridano Print(Value3D), Print(double-1-2-3) - Integrator3D operator = (Input3D)|(Value3D) - jeste doplnit do 2D - problem s ne-inline funkci v *.h a dyn. knihovnou 6.12.97 - modul simlib2D a priklad - pridan blok fce Sqr x^2 11.97 - PP - modul simlib3D a priklady (druzice*.cc) 97 - Leska - doplneno prepinani num metod a nove num metody 8.5.96 - BC 3.1 vypnuta optimalizace -Oi (problemy v NUMINT!!!) 30.4.96 - nove num. metody (Leska) -- BETA - novy podadresar NUMINT 16.4.96 - barrier - oprava Break!!! - Stat, TStat, Histo + nove metody, zapouzdreni (n je problem!!) 13.4.96 - doplněna třída Expression (blok s 1 vstupem -- identita) - doplněn model TEST13/schema[2].cpp -- hierarchie! 10.4.96 - Histogram::Histogram(......count=10) 4.4.96 - doplněny funkce Tan, ASin, ACos, ATan, ATan2, Log10, Sign, Pow - dprintf2 27.3.96 - oprava modulu WaitUntil: problem pri WaitUntil(TRUE) - vyjme z WUList a tim zrusi aktivitu! (opraveno nastavenim na First -- testuje znova ostatni = OK) (možný problém: zacyklení !!!???) 26.3.96 - modul Calendar -- upraveno tak, aby priorita procesu byla v EvNotice + testovaci modul 22.3.96 - odstranena chyba Entity::_SPrio neinicializovano if Wait(Queue) - Uniform -- pridana kontrola argumentu 19.3.96 - interní globální symboly přejmenovány SIMLIB_* - upraveno pod EasyWin -- Windows 16bit aplikace problémy: nastavit Target W16, velikost zásobníku ještě v TEST.DEF 11.3.96 - doplněno: aContiBlock{1,2} do hierarchie, kontrola smyček - opravena chyba _Max - SIMLIB.H přeloženo do angličtiny - aliasy Lim Limitation atd... 19.2.96 - verze 2.1 - doplneno Semaphore, Barrier 1.12.95 - Boolean ---> Bool - char *NameOf() ---> const char * NameOf() 24.11.95 - PROCESS.CPP - oprava pro DJGPP 2.0 (asm), testy 23.11.95 - random2.cpp - oprava v Poisson: double -> int (odhalilo GNU C) 11.11.95 - zrušeno OLDOUT.CPP - upraveny příklady - překlad pro BC3.1, BC4.0 a BC4.5 (pro BC4.0 je zbytečné) - v2.03 rev.951111 (na síti) 24.10.95 - random2.cpp - úprava Poisson() 5.6.95 - Calendar::Clear(destroy) upraveno aby se pouze vyjmulo a nerušilo - zrušeno ERROR.H a DEBUG.H ---- přesun do INTERNAL.H 24.5.95 - funkce Print, _Print, ErrPrint: doplněno fflush 14.5.95 - třída Sampler - doplněno SetStep(dt) a GetStep() 8.3.95 - v.2.02 rev.950308 (na síti) - doplněny funkce Exp(x) a Ln(x) 22.1.95 - upravy v simlib.h #pragma.... 4.12.94 - přeneseno pod Linux + Makefile + testy 12.9.94 - v SIMLIB.H doplněno #pragma option -a- -K- 10.9.94 - doplněna funkce Error(const char *fmt, ...) - xx.06.94 - test numint2.cpp - Eulerova metoda 16.5.94 - přidán implicitní konstruktor Integrator vstup = 0 3.5.94 - name.cpp - zvýšen limit počtu jmen v tabulce z 200 na 1000 (prozatím) - upraven simlib.h: #ifdef __MSDOS__ atd. - PROBLÉM: #pragma option -Vo | problémy s konzistencí !!!!!!!!!!!! 19.4.94 - oprava v modulu STORE.CPP Store::Leave p->Out() zruší aktivitu ==> chyba! (thanks to Mr. Gráf) 25.3.94 - upraveno pro GNU C++ pro DOS/386 (#ifdef) - opraven modul OldOut --- OutInt --> OutShort (kompatibilita 16/32bit) - problémy s GNU C++ (prázdné metody, Time, ...) - opravena chyba Frict::Value() záměna low <-> high 7.1.94 - chyba v implementaci Time -- operace s double jsou chybné - úprava hierarchie Double <---- SimTime a oprava Input, nové operátory Double*double, Double*Double a vznikla nová chyba -- kolize operátorů !!!!!!!!!!!!!!!!!!!!! ============================================================================ 1.12.93 - !!! objevena chyba ve funkci Eval u všech stavových bloků (postupně opravováno) 29.11.93 - úprava třídy Condition (testovací model MICEK.CPP) - doplněny zakázané operace operator= a copy constructor pro tř. SimObject 28.11.93 - doplněn test konzistence SIMLIB.H a SIMLIB.LIB - doplněna třída Double - nalezen problém při integraci Status x(Sin(Time)); hlásí: Warning: nelze dodržet zadanou přesnost výsledky jsou ale v toleranci... - přejmenována třída Variable na ReferenceToDouble - upravena třída Input aby pracovala s objekty Double - doplněn typedef Input Expression; - doplněna třída Function (?) 27.11.93 problémy s proměnnými double v obj. výrazech - používat class Parameter doplněna třída Parameter (?) drobné úpravy v souvislosti s laděním modelů doplněna třída SimTime a objekty Time, StartTime, EndTime, NextTime upravena třída Input aby pracovala s objekty SimTime 25.11.93 chyba v Facility::Clear() --- volá Q?->Clear() i pro zrušenou frontu!!! totéž v Store::Clear() - opraveno: nuluje jen vlastní fronty. chyba nalezena: chybí přetypování delete (EventNotice*)e->_Ev; nevyvolal se destruktor... 24.11.93 chyba při provádění procesu - Wait ?????!!!! hledání neúspěšné... EXTVARS.H přejmenováno na INTERNAL.H + doplněny prototypy funkcí 28.10.93 kalendář zrušen ze SIMLIB.H 29.9.93 doplněny metody SetInput změna třídy Graph - automaticky sbírá data 25.8.93 doplněn modul DEBUG, funkce DebugOn/OFF, a příznak v RUN.CPP doplněno Rline, Sqrt 23.8.93. drobné úpravy simlib.h (NULL--,anglicky...) 22.7.93. drobné úpravy name.cpp (doplnění const) ---------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////// ---------------------------------------------------------------------------- OLD: <17.10.1991 ----------- - podminky,stav. prom. a integratory upraveny - bez poli - doplnena promenna _Phase 13.11.1991 ---------- - doplneno NameOf u vsech trid tak aby jednoznacne identifikovalo objekt - rada metod prevedena na virtualni - Facility - Store - doplneny statistiky do seznamu - doplnen WaitUntil 14.11.91 -------- - modul PRINT - moduly _DYNAMIC _COND - upravy tisku - konstruktory bez parametru 15.11.91 -------- - kazdy objekt ma priznak IsOnHeap() - seznamy rusici podobjekty testuji IsOnHeap() a potom teprve delete - Object definuje svoje operatory new a delete s kontrolou 16.11.91 -------- - dodefinovani konstruktoru - metody pro definici/zmenu parametru objektu - Entity maji cislo, je znam pocet entit v modelu a pocet vytvorenych 17.11.91 -------- - nalezena chyba !!!! a opravena BC++ v pripade ze nezna destruktor, nevola nic a provede delete !!! class EventNotice; ... EventNotice *_Ev; ... delete _Ev; // nevola destruktor - nezna jej ale nehlasi nic!!! - NameOf - zruseny inline v simlib.h 20.11 ----- - doplneno Histogram::operator [] (unsigned i) - prejmenovani List::Card() na List::Length() 25.11 ----- - opravena chyba v RUN fce Run() spusteni jedne udalosti navic!!!! (opraveno prozatimne !!!) 26.11 - doplnen modul QUEUE 27.11 ----- - opravy v RAND.CPP - modul OUTPUT - tisky do ramecku - opravena chyba v Store::Leave()-List::XXXX Queue - opraveno List::Clear() 29.11. ------ - upraven Histogram::operator () double=>int 30.11. ------ - drobna optimalizace Random() asi 10% - testovani - modul NAME - NameOf pro většinu tříd 01.12.91 -------- - upraveno ERRORS.DOC + ERROR.CPP - InternalError,... - drobné opravy 05.12.91 -------- - korekce dokumentace - opravena chyba v FACILITY.CPP Release()-vybere podle priority obsluhy z obou front - doplňena funkce SetOutput(char*) 06.12.91 -------- - opraven Store - prohlizeni fronty 09.12.91 -------- - hledání záludné chyby v INTG.CPP (neúspěšné) - doplnění Entity::Terminate a Cancel 11.12.91 -------- - opravena chyba v INTG.CPP - opraveno Facility,Store : public Object { - doplněn modul FUN.CPP (funkce a třídy pro spojitou simulaci) 13.12.91 -------- - doplnen modul OLDOUT.CPP (funkce a tridy pro vystup pro OE) - opraveny destruktory Integrator,Status,Condition - doplněny testy mezí pro MinStep, MaxStep a RelativeError - *** poznámka pro uživatele TC++ v1.00: je třeba nadefinovat funkci void operator delete(void *p) { free(p); } - korekce v dokumentaci 14-15.12.91 ----------- - doplněny funkce ContractStep - testování - příklady - **** POZOR!!! zkontrolovat výpočet směrodat. odchylky !!! DEADLINE VERSION 1.0 -------------------- VERSION 1.01 ------------ 15.4.92 ------- - prejmenovano class Object na class SimObject 16.4.92 ------- - novy modul NUMINTG - nova funkce SetMethod() - nastaveni integracni metody 8.5.92 ------ - zmena funkce OpenOutputFile: implicitni jmeno vyst. souboru podle jmena modelu (*.exe) 23.11.92 -------- - doplneny prostredky pro praci s Petriho sitemi (modul RUN) ---------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////*/