elmo-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [elmo-users] core i uwagi


From: Szymon
Subject: Re: [elmo-users] core i uwagi
Date: Wed, 08 Oct 2003 18:09:30 +0200
User-agent: elmo/0.8.3

Hi.

> >    -- jest zbyt ,,pretensjonalnie'' napisany, coż to jest mój punkt
> >       widzenia i pewnie się mylę.
> 
> Wszysto zależy od tego jak rozumiesz słowo ,,pretensjonalnie''.

postaram się to jakoś rozsądnie sformułować(*) (ale w przyszłym
tygodniu).
(*) tzn. napisać o co mi chodzi z tym ,,pretensjonalnie''

> >       -- deklarujesz coś jako '*' a potem dajesz to na wejście
> >       funkcji która oczekuje '**'
> 
> Nie przypuszczam, żebym popełnił tego typu błąd.  Napisałem kilka
> kompilatorów i wiem jak należy się odwoływać do obszarów pamięci
> adresowanych przez wskaźniki różnego poziomu.

ja nie twierdzę że tam jest błąd(*), tylko że lamerom takie rzeczy się
ciężko czyta. Pisząc kod ,,profesjonlnie'' zamykasz go przed
użytkownikami, którzy przecież niekoniecznie mają coś wpólnego z
,,informatyką''.

> Ale wszystko jest możliwe: podaj lokalizację błędnego fragmentu kodu,
> żebym mógł go poprawić.

(*) to są spostrzeżenia sprzed 2 tygodni(wcześniej nie miałe czasu
napisać, zresztą teraz też nie mam), a dałem głos bo mi się core
zrobiło. Teraz sobie zerkłem do kodu, błędu tam nie ma, po prostu zdarza
mi się to czego nie powinienem robić -- nie czytam dokładnie bo się
spieszę -- nie zauważyłem `&' -- zwracam honor.

> [.....]

> Prześlij proszę lokalizację tego fragmentu kodu.  Jeśli jest
> nieczytelny, to wymaga refaktoryzacji.

> [.....]

> >...pamiętam że chodziło o regexpy,
> 
> Zwalnianie tego samego dwa razy jest karygodne i kończy się
> segfaultem.

Dokładnie nie pamiętam co to było, ale teraz coś na szybko(*) znalazłem
w rchtype.c, elmo083:
[(*) nie przanalizowałem teraz pętli bo naprawdę nie mam kiedy(mogę
obiecać że zrobię to za tydzień -- dwa), prawdopodobnie błędu nie ma ale
konstrukcja jest tego typu że jest on prawdopodobny.]

funkcja `rchtype_split_lines' (u mnie jest to linia 341) w linii 398
wywołuje funkcję `add_line' która może wywoływać `regfree' (i ja się
domyślam że {2,} razy `regfree' nie powinno się na ,,tym samym''
wywoływać). `add_line' znajduje się w pętli for, a poza ową pętlą
zwalnia się ,,wszystko'' czyli to co mogło być zwalniane wewnątrz
`add_line' oczywiście wewnąrz pętli znajdują się `return'-y więc pewno
błędu nie ma -- ale może być -- moja sugestia jest taka coby dla wygody
i pewności takich konstrukcji w miarę możliwości unikać -- niekonicznie
w tym miejscu -- może ,,lepiej'' się nie da -- ,,kiedy indziej''
spróbuję się nad tym zastanowić.

> >          tak przy okazji dlaczego je tak cząsto stosujesz ?)
> 
> To takie przyzwyczajenie z emacs lispa.

Oki. Osobiście wolałbym cobyś (skoro znasz lispa) wykazywał większe
przezwyczajenie do programowania funkcyjnego (czy jak wolisz --
odwiedziłem Twoją stronkę -- funkcjonalnego) -- to oczywiście tylko taka
luźna uwaga jako że chwalić czy ganić można tylko up-bottom.

Niedawno trafiłem (na necie) na gościa który ,,zrobił'' rfc2882 (mam
nadzieję że dobrze pamiętam numer, chodzi o pocztę) w lispie i został
zjechany przez innych sieciarzy za używanie regexpów. Ponieważ stałkę
mam od pojutrza, to gdzieś za tydzień -- dwa postaram się znaleźć to
miejce i poznać argumenty ,,przeciw'' regexpom przy parsowaniu na
przykład. Ja sobie zdaję sprawę że odradzanie regexpowania przy
parsowaniu to jakby proponować jazdę samochodem bez kół -- pewnie
istnieje jakiś złoty środek -- ja np. odniosłem wrażenie że w elmo rx-y
są nadużywane.

pozdrawiam, sb





reply via email to

[Prev in Thread] Current Thread [Next in Thread]