thejoeejoee / VUT-FIT-IFJ-2017-toolkit

IDE for custom language IFJcode17 and pack of automatic tests for compilers of that language.
https://ifj.josefkolar.cz/
GNU General Public License v3.0
23 stars 11 forks source link

Špatné počítání ceny přístupu do paměti #57

Closed jirvoz closed 6 years ago

jirvoz commented 6 years ago

Problém: nesouhlasí celková cena instrukcí interpretu tohoto projektu a referenčního interpretu z instrukcí BREAK nebo GROOT.

Příčina: v interpretu tohoto projektu se špatně počítá cena přístupu do paměti (nejspíš nepřipočítává vůbec) a nerozlišuje tedy ceny přístupu ke konstantě, zásobníku a rámci.

thejoeejoee commented 6 years ago

Musím lehce poopravit, nepočítal se zápis do proměnné kromě deklarace, opravu mám, ještě musíme vymyslet jak distribuovat.

thejoeejoee commented 6 years ago

Opraveno, u proměnných se nepočítal jejich zápis & opraven STRLEN, co vždy vracel 2 od v1.4. Navíc, před interpetací se vždy přidá GROOT a rozparzuje se jeho výsledek, který se následně porovná s vypočteným - jestliže nesouhlasí, je zalogováno.

Bude uvolněno nejspíše s 1.4.3, ale nenapadá mě varianta, jak to provést bez znehodnocení vývojů cen.

Jestli je OK, zavři prosím.

martinkobelka commented 6 years ago

@thejoeejoee Do databáze by se dal přidat atribut, který říká že se jedná o neaktuální ceny Případně zvýšit koeficient o jaký se zvýšila cena a +- přepočítat. Případně ceny komplet přemazat.

Dobré by bylo, kdyby při odeslání hodnoty bylo známo z jaké verze byla poslána.