Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
On Thu, 11 Oct 2001, Petko Boukov wrote: Syglasen sym, primeryt ti e udachen. V takyv tochno sluchaj goto pesti dublirane na kod. Az nqmashe da napravq usloviqta vlozheni, no shtqh da dubliram RELEASE-ite: if (!SUCCEEDED(1)) return FAILED; if (!SUCCEEDED(2)) { RELEASE(1); return FAILED; } if (!SUCEEDED(3)) { RELEASE(2); RELEASE(1); return FAILED; } return SUCCESS; Tova obache haresva li ti? $ find /usr/src/linux-2.4.10 -type f -name *.c -exec grep goto {} \; | wc -l 13232 Nqmam podryka BSD kernel, ama ot tova, koeto sym vidql v TCP/IP Illustrated vol.2 v tehniq tcp/ip stack ne slagat goto za shtqlo i neshtqlo. Petko :) az imam : root@freebsd:~# find /usr/src/sys -type f -name *.c -exec grep goto {} \; | wc -l 5564 Koeto pak ne e malko, ponezhe prakticheski source na fbsd kernela e 71 mb ( 4.4 release, ako ne se luzha), a linux-2.4.11 e nqkude okolo 100-110 mb, kato razlikata e osnovno v driveri, v koito goto se polzva dosta chesto. === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
On Friday 12 October 2001 12:03, you wrote: On Thu, 11 Oct 2001, Petko Boukov wrote: Syglasen sym, primeryt ti e udachen. V takyv tochno sluchaj goto pesti dublirane na kod. Az nqmashe da napravq usloviqta vlozheni, no shtqh da dubliram RELEASE-ite: if (!SUCCEEDED(1)) return FAILED; if (!SUCCEEDED(2)) { RELEASE(1); return FAILED; } if (!SUCEEDED(3)) { RELEASE(2); RELEASE(1); return FAILED; } return SUCCESS; Tova obache haresva li ti? $ find /usr/src/linux-2.4.10 -type f -name *.c -exec grep goto {} \; | wc -l 13232 Nqmam podryka BSD kernel, ama ot tova, koeto sym vidql v TCP/IP Illustrated vol.2 v tehniq tcp/ip stack ne slagat goto za shtqlo i neshtqlo. Petko :) az imam : root@freebsd:~# find /usr/src/sys -type f -name *.c -exec grep goto {} \; | wc -l 5564 Koeto pak ne e malko, ponezhe prakticheski source na fbsd kernela e 71 mb ( 4.4 release, ako ne se luzha), a linux-2.4.11 e nqkude okolo 100-110 mb, kato razlikata e osnovno v driveri, v koito goto se polzva dosta chesto. korekciq ... dori e pove4e, 2.4.10 e 160 MB source , i se polu4ava 4e goto /MB se sreshta 82.7 pyti v linux-2.4.10 , a v fbsd-4.4 kernel - 78,3... i kato se vzeme predvid 4e v linux ima pove4e hw-drivers (deto se sreshta goto) ste izleze 4e v fbsd kernel gustotata na goto e po-golqma... A bsd folks trqbva da se slushat ... linux trqbva da se sravnqva s bsd (sravnqvat se sypostavimi nesta) , kvi sa tiq sravneniq s Win :) Ako vse oste nqkoj misli 4e Alan Cox e prekalil s goto-tata , neka da edit-va sourceto, to nali za tova e otvoreno :) -- Greets, fr33zb1 === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
Nqma majtap, az si go misleh da predlozha patch-ove s mahnati goto-ta, ama ne si e rabota da pipash neshto raboteshto, samo za da go pravish po-krasivo: 'If it ain't broken, don't fix it.' Blagodarq vi, olekna mi che i BSD-tata bili na syshtiq hal :)) Petko George Danchev [EMAIL PROTECTED] [EMAIL PROTECTED] Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]Date: Fri, 12 Oct 2001 12:46:54 +0300 Reply-To: [EMAIL PROTECTED] On Friday 12 October 2001 12:03, you wrote: On Thu, 11 Oct 2001, Petko Boukov wrote: Syglasen sym, primeryt ti e udachen. V takyv tochno sluchaj goto pesti dublirane na kod. Az nqmashe da napravq usloviqta vlozheni, no shtqh da dubliram RELEASE-ite: if (!SUCCEEDED(1)) return FAILED; if (!SUCCEEDED(2)) { RELEASE(1); return FAILED; } if (!SUCEEDED(3)) { RELEASE(2); RELEASE(1); return FAILED; } return SUCCESS; Tova obache haresva li ti? $ find /usr/src/linux-2.4.10 -type f -name *.c -exec grep goto {} \; | wc -l 13232 Nqmam podryka BSD kernel, ama ot tova, koeto sym vidql v TCP/IP Illustrated vol.2 v tehniq tcp/ip stack ne slagat goto za shtqlo i neshtqlo. Petko :) az imam : root@freebsd:~# find /usr/src/sys -type f -name *.c -exec grep goto {} \; | wc -l 5564 Koeto pak ne e malko, ponezhe prakticheski source na fbsd kernela e 71 mb ( 4.4 release, ako ne se luzha), a linux-2.4.11 e nqkude okolo 100-110 mb, kato razlikata e osnovno v driveri, v koito goto se polzva dosta chesto. korekciq ... dori e pove4e, 2.4.10 e 160 MB source , i se polu4ava 4e goto /MB se sreshta 82.7 pyti v linux-2.4.10 , a v fbsd-4.4 kernel - 78,3... i kato se vzeme predvid 4e v linux ima pove4e hw-drivers (deto se sreshta goto) ste izleze 4e v fbsd kernel gustotata na goto e po-golqma... A bsd folks trqbva da se slushat ... linux trqbva da se sravnqva s bsd (sravnqvat se sypostavimi nesta) , kvi sa tiq sravneniq s Win :) Ako vse oste nqkoj misli 4e Alan Cox e prekalil s goto-tata , neka da edit-va sourceto, to nali za tova e otvoreno :) --== Sent via Deja.com ==-- http://www.deja.com/ === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
AC Codin' Style[ was lug-bg: Kernel 2.4.11]
On Friday 12 October 2001 14:10, you wrote: Nqma majtap, az si go misleh da predlozha patch-ove s mahnati goto-ta, ama ne si e rabota da pipash neshto raboteshto, samo za da go pravish po-krasivo: 'If it ain't broken, don't fix it.' Blagodarq vi, olekna mi che i BSD-tata bili na syshtiq hal :)) Ami az poglednah edin file v koito bi triabvalo da ima sravnitelno malko goto ( ili nikakvi ) - /usr/src/linux/net/ipv4/arp.c - v koito po-goliamata 4ast e ot Alan. Ima dosta goto-ta. oba4e nito edno ot vsi4kite ne si zaslujava usiliata da se promenia.( Niama da napravi vyprosnia file po 4itaem , vypreki 4e niama resursi koito da se osvobojdavat ). Thread Closed. === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
On Thursday 11 October 2001 13:47, you wrote: Tochno VM ponastoqshtem e qbylkata na razdora, ponezhe Linus dopusna generalni promeni syvsem kysno v stabilniq 2.4. Dokolkoto razbrah, v momenta dazhe na Linus i na Alan v klonovete ima razlichni implementacii na VM: ednata na Andrea Arcangely, a drugata - na Rik van Rijl (maj ne se pishat tochno taka, ama nqmam vreme da gi proverqvam). Vseki smqta, che negoviqt podhod e po-dobriqt i po-stabilniqt. A pyk po otnoshenie na koda, oshte ne moga da preodoleq shoka, sled kato vidqh Alan Cox kolko goto-ta izpolzva v tcp/ip stack-a i v ipc. Heh Ami vseki si ima style :) Sheguvam se. GOTO ne e zabranen operator ( pone dokolkoto na men mi e izvestno ) ina4e otdavna da sa go izhvyrlili napylno ili da praviat compilatorite primerno da vadiat warnings kato go sreshnat. :) Dori i po knigite za programirane se kazva __ne__ Ne izpolzvaite GOTO, a neshto ot sorta na Izbiagvaite GOTO kogato e vyzmojno i . ...Ima situacii pri koito izpolzvaneto na GOTO e uda4no ( naprimer izhod ot sekcii pri nastypvane na izklu4itelna situaciq ) Predstavi si ,4e imash 10 deistvia koito triabva da izpylnish polsedovatelno kato vsiako sledvashto izpylniavash samo pri usepshno izpylnenie na predhodnoto. Sega si predstavi kolko vlojeni if...thenelse konstukcii triabva da imash za celta [ sled tova pogledni /usr/src/linux/Documentation/CodingStyle i vij kakvo pishe za nivata na vlagane na blockove i funkcii :) ] Izpolzvaneto na goto v podobni situacii pravi coda mnogo po 4itaem , a niakoi sl. i optimalen za izpylnenie( vse pak na nivo instr. vsi4ko se svejda do instr. za prehod. Sled koeto si predstavi 4e v tezi 10 posledovatelni deistvia alocirash resursi, koito pri eventualen neuspeh triabva da dealocirash v obraten red. Mai if-ovete shte se udvoiat. :) if( !SUCCEDED(1)) if( SUCCEDED(1) goto fail1 if(SUCCEDED(2)) if( !SUCCEDED(2)if(SUCCEDED(3)) goto fail2 return SUCCESS; if( !SUCCEDED(3)else { goto fail3; RELEASE(2); RELEASE(1); return SUCCESS; return FAILED; fail3: RELEASE(2) } fail2: RELEASE(1) else { fail1: return FAILED; RELEASE(1); return FAILED; } else return FAILED; Za pred GOTO puritani az obiknoveno prilagam while(1){ } i break; ako niakoe ot deistviata e neuspeshno - taka si zapazvash 4itaemostta na lineiniq kod bez da izpolzvash GOTO. No kogato ima i drugi cikli tozi podhod ne e prilojim poradi lipsata na break label konstrukcia v C.[ Makar , 4e tova syshto ima reshenie: failure = 0; while( !failure ) { while( !failure PREDICATE( y) ) { if( ! SUCCEDED(x)) { failure++; continue; } . } .. } Oba4e ostava problema s clean-up-a sled eventualen neuspeh.- Za koito nai uda4noto re6enie si ostava . GOTO+ etiket za cleanup za vsiako edno deistvie. I vse pak za men Linux kernel-yt rulez :)) Tova razbira se ne znachi, che e idealen. Vav vseki sl. src-to mu e mnogo po 4itaem ot tova na niakoi drugi pseudo-OSes( Seshtai se ) Petko George Danchev [EMAIL PROTECTED] [EMAIL PROTECTED] Re: lug-bg: Kernel 2.4.11Date: Thu, 11 Oct 2001 13:04:18 +0300 Reply-To: [EMAIL PROTECTED] On Thursday 11 October 2001 12:51, you wrote: za men edin primer za zhelezen kernel e 2.2.18 drugi primeri sa 2.2.19 i .20 ne znam kakvo mislite vie, ama az lichno sum na mnenieto, che 2.4.x mu eba maikata na sichkoto :((( sichko pochna da prilicha na Microsoftska rabota - nedoizpipano, pusnato v burzinata, bugove, patchove den sled den valiat :( spokojno Teodore , znaesh 4e ne si prav :))) osnovniq problem na 2.4 beshe prenapisvaneto VM management coda, kato + tova mnogo byrzo se dobaviha edna torba drivers ... tova se otrazi na stabilnostta na 2.4.0 ...2.4.6/7. Ve4e 2.4.8 e korav kolkoto poslednite 2.2.x mozhe bi i po-koravi po-burz zavisi kakvo i na kakvo se testva. Imashe edna statiq ot edin core developer na freebsd VM , kudeto 4oveka syvsem bezpristrastno si opisva dobrite i loshite nesta na dvete kernels. Kakvo freebsd mozhe da nau4i ot linux i obratno... Po-negovi dumi : kogato trqbva da se pishe na swap-a , Linux bie vsi4kite v zemqta (tova zavisi i ot syotvetniq diskov driver de), kogato trqbwa da se tursi i vadi ot tam oba4e Linux 2.4 imashe seriozen problem... tova ve4e e fix-nato dostatu4no stabilno Koda na Linux kato cqlo e napisan
Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
Syglasen sym, primeryt ti e udachen. V takyv tochno sluchaj goto pesti dublirane na kod. Az nqmashe da napravq usloviqta vlozheni, no shtqh da dubliram RELEASE-ite: if (!SUCCEEDED(1)) return FAILED; if (!SUCCEEDED(2)) { RELEASE(1); return FAILED; } if (!SUCEEDED(3)) { RELEASE(2); RELEASE(1); return FAILED; } return SUCCESS; Tova obache haresva li ti? $ find /usr/src/linux-2.4.10 -type f -name *.c -exec grep goto {} \; | wc -l 13232 Nqmam podryka BSD kernel, ama ot tova, koeto sym vidql v TCP/IP Illustrated vol.2 v tehniq tcp/ip stack ne slagat goto za shtqlo i neshtqlo. Petko windows-1251?b?wO3j5esgwvrr6u7i [EMAIL PROTECTED] [EMAIL PROTECTED] Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]Date: Thu, 11 Oct 2001 19:23:06 +0300 Reply-To: [EMAIL PROTECTED] [...] if( !SUCCEDED(1)) if( SUCCEDED(1) goto fail1 if(SUCCEDED(2)) if( !SUCCEDED(2) if(SUCCEDED(3)) goto fail2 return SUCCESS; if( !SUCCEDED(3) else { goto fail3; RELEASE(2); RELEASE(1); return SUCCESS; return FAILED; fail3: RELEASE(2) } fail2: RELEASE(1) else { fail1: return FAILED; RELEASE(1); return FAILED; } else return FAILED; --== Sent via Deja.com ==-- http://www.deja.com/ === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora
Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]
From: Àíãåë Âúëêîâ [EMAIL PROTECTED] Date: Thu, 11 Oct 2001 19:23:06 +0300 Heh Ami vseki si ima style :) [del] if( !SUCCEDED(1)) if( SUCCEDED(1) goto fail1 if(SUCCEDED(2)) if( !SUCCEDED(2) if(SUCCEDED(3)) goto fail2 return SUCCESS; if( !SUCCEDED(3) else { goto fail3; RELEASE(2); RELEASE(1); return SUCCESS; return FAILED; fail3:RELEASE(2) } fail2:RELEASE(1) else { fail1:return FAILED; RELEASE(1); return FAILED; } else return FAILED; Ama che kod, ama che chudo! Abe hora, vie za buleva algebra ne ste li chuwali? Ami ako trjabwa formalno da se *dokazhe*, che dadena programa udowoletvorjawa zadadena specifikacija? Goto razbiwa *logikata* na programata i e opasen operator! Towa obache ne kazwa, che ne trjabwa da se izpolzwa. Ako si go hareswate, izpolzwajte si go. Samo deto ne pishete 1000+ reda kod za da ni ubezhdawate kolko e hubaw goto i kak sweta ne mozhe bez nego. Jordan (at home) http://www.cse.dmu.ac.uk/~jordan/ === A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers) http://www.linux-bulgaria.org/ Hosted by Internet Group Ltd. - Stara Zagora