> apt-get install m4 opam spim
> opam init
> opam update
> opam switch 4.13.1
> eval `opam config env`
> tools/opam-pin.sh # przypina wersje bibliotek
> opam install ocamlgraph dune cmdliner menhir ocamlformat
make install
- zrobi symlink./zi
make test
- odpala testy z pluginem mod_student.cmamake test_without_plugin
- odpala testy bez pluginu mod_student.cmatools/format.sh
- automatyczne formatowanie wszystkich plików źródłowychtools/check-format.sh
- sprawdza czy pliki źródłowe są sformatowane
Pracują Państwo na gałęzi master
, natomiast gałąź feedback
pozwala na porównanie Państwa rozwiązania ze stanem początkowym. Dodatkowo otwarty jest pull-request na którym mogą Państwo zadawać pytania odnośnie Państwa kodu.
Po wypchnięciu commita uruchamia się automatyczna sprawdzaczka która wykonuje następujące kroki:
- Sprawdza formatowanie kodu źródłowego
- Kompiluje kompilator
- Uruchamia wszystkie testy
Każdy z tych kroków musi się udać aby sprawdzaczka uznała, że Państwa rozwiązanie jest poprawne.
Wtyczka ta zawiera skompilowane już moduły wykorzystywane przez kompilator.
Korzysta ona z biblioteki ocamlgraph
w wersji przedstawionej w tabeli w następnej sekcji.
Aby Państwa kod działał lokalnie, muszą Państwo używać biblioteki w tej samej wersji, co jest zapewnione poprzez przypięcie wersji przez skrypt tools/opam-pin.sh
.
ocaml |
4.13.1 |
cmdliner |
1.1.1 |
dune |
3.4.1 |
menhir |
20220210 |
ocamlgraph |
2.0.0 |
ocamlformat |
0.24.1 |
Korzystamy z narzędzia ocamlformat
.
Prosimy o modyfikowanie jedynie:
source/mod_student/constant_folding.ml
source/mod_student/constant_folding_analysis.ml
Dopuszczalna jest także modyfikacja pliku
source/mod_student/plugin.ml
powodująca użycie własnych modułów z
wcześniejszych pracowni. W przypadku zmian w pozostałych plikach
Państwa rozwiązanie nie będzie akceptowane.
Testy na których sprawdzane są Państwa rozwiązania znajdują się w katalogu tests
. Jeśli mają Państwo pomysły na dodatkowe przypadki testowe prosimy o otwieranie pull-requestów do repozytorium z szablonem a nie do Państwa prywatnego repozytorium.
W przypadku błędów zarówno w kodzie biblioteki, zachowaniu naszej wtyczki, jak i testach, prosimy o otwieranie issue w repozytorium z szablonem.