Salut, Vlad!

Unul din colegii tăi a reparcat o problemă legată de depunctările
pentru regulile de clean, pe care noi am confirmat-o mai devreme.
Drept urmare, am corijat depunctările pentru cei care au avut false
positives, iar tu ești unul dintre ei.
Depunctarea la tema 4 vine de la regula următoare:

config_params: config_params.c
        $(CC) -Wall -o config_params config_params.c so_sched_initializer.c

În această regulă compilezi mai multe (două) fișiere sursă .c
Legat de feedback, te rugăm să notezi asta în feedback-ul completat pe
cs.curs.pub.ro - în felul ăsta ne este mai ușor să-l integrăm anul
viitor.

Numai bine,
Răzvan

On Sun, May 17, 2020 at 5:00 PM Vlad Lungu via so <so@cursuri.cs.pub.ro> wrote:
>
> Multumesc mult de lamurire!
>
> Problema mea legata de "mai mult fisiere sursa" e ca fiecare regula 
> compileaza un singur fisier sursa, iar cea de construire a bibliotecii are 
> toate dependentele cu fisiere .o. Nu am doua gcc asa cum a zis teodor 
> nicaieri. In contextul asta, de la ce apare depunctarea aceea? (am regula de 
> bonus care duce la alte doua reguli care creeaza fiecare cate un executabil. 
> Sa fie de la asta?)
>
> Cat despre clean, tocmai am numarat fisierele dinainte de make, am dat make, 
> make clean si dupa am numarat din nou si da la fel. De aceeea intreb daca se 
> poate verifica.
>
> De asemenea, ca feeedback pentru la anul, cred ca ar fi util daca in lista de 
> depunctari, la categoria build, s-ar adauga mai explicit aceste depunctari 
> legate de makefile.
>
> În dum., 17 mai 2020 la 16:37, Paul Olaru <olarupaulstelia...@gmail.com> a 
> scris:
>>
>> Există niște reguli generale pentru makefile-uri, dar cea mai importantă 
>> regulă în opinia mea este ca dacă dai "make build" din nou fișierele deja 
>> compilate nu vor fi compilate din nou.
>>
>> Pe viitor, pentru a evita problema cu mai multe fișiere sursă, folosește-te 
>> de regulile template (nu sunt sigur că ăsta e numele corect) și folosește 
>> fișiere .o în loc de .c în dependențe. Pentru a obține fișierele .o poți 
>> face o singură regulă de tipul:
>>
>> %.o: %.c file1.h file2.h ...
>> <tab>gcc -c $< -o $@ -Wall -pedantic
>>
>> (Ajustând desigur flagurile de compilare în această regulă generală). Nu e 
>> nevoie să faci manual câte o regulă pentru fiecare fișier .o dacă ai una de 
>> tipul ăsta generală. Și apoi la fișierul final, să zicem mylib.so, ai regula 
>> simplă:
>>
>> mylib.so: init.o loader.o elf.o
>> <tab>gcc $^ -o $@ -dynamic
>>
>> (Ajustezi corespunzător comanda).
>>
>> În final, trebuie să ai o regulă de build care să nu recompileze fișierul de 
>> fiecare dată când faci rebuild. O regulă simplă ar fi:
>>
>> build: mylib.so
>> .PHONY: build
>>
>> (Regula .PHONY e opționala dar e utilă pentru a ignora fișierele cu numele 
>> "build" dacă se vor crea)
>>
>> Toate aceste reguli ar fi trebuit să te obișnuiești încă din anul I cu ele, 
>> dar nu e târziu nici acum.
>>
>> La plângerea cu regula clean, dacă faci make build urmat de make clean ești 
>> 100% sigur că rămân exact fișierele tale din arhivă? *Orice* fișier în plus 
>> poate duce la acel warning.
>>
>> Dacă este relevantă opinia mea (nu garantez), aș zice că depunctarea pentru 
>> regula cu numele "tema2" e meritată (faci rebuild degeaba la unele fișiere), 
>> cea pentru regula clean e discutabilă (nu am de unde ști dacă chiar ți se 
>> șterg toate fișierele sau nu) iar depunctarea pentru unused variabile... 
>> Poate ar putea fi redusă la 0.1 (dar să îți fie învățătură de minte, în 
>> proiectele mari cu 50 de warninguri create fix pe ideologia de "it's fine" 
>> nu vrem încă unul).
>>
>> On Sun, May 17, 2020, 15:56 Vlad Lungu via so <so@cursuri.cs.pub.ro> wrote:
>>>
>>> Salut!
>>>
>>> M-am uitat pe vmchecker la depunctarile pe care le-am primit. La tema 2, la 
>>> ambele teme, am primit depunctare pentru numele regulii de build, desi nu 
>>> era specificat vreundeva acest detaliu. La mine se numeste tema2, trebuia 
>>> libsoloader.so. Trebuia sa facem asta?. La tema 4 pe linux am o singura 
>>> variabila neutilizata, care duce la un warning de "unused variable". Se 
>>> justifica o depunctare de 0.2 pentru "warninguri de compilare" in acest 
>>> caz? Tot la tema 4 imi primesc o depunctare pentru ca regula clean nu 
>>> sterge toate fisierele create, dar tocmai am testat si chiar le sterge pe 
>>> toate. Care este cauza? In plus, tot la tema4, am depunctare pentru 
>>> "compilarea a mai multe surse in aceeasi regula", lucru pe care nu l-am 
>>> gasit in lista de depunctari si care nu sunt sigur la ce se refera.
>>>
>>> As aprecia foarte mult niste explicatii suplimentare!
>>>
>>> Numai bine,
>>> Lungu-Stan Vlad-Constantin,
>>> 334CB
>>> _______________________________________________
>>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
>
> _______________________________________________
> http://ocw.cs.pub.ro/courses/so/info/lista-discutii



-- 
Răzvan Crainea
_______________________________________________
http://ocw.cs.pub.ro/courses/so/info/lista-discutii

Raspunde prin e-mail lui