Re: AC Codin' Style[ was lug-bg: Kernel 2.4.11]

2001-10-12 Thread Vasil Kolev



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]

2001-10-12 Thread George Danchev

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]

2001-10-12 Thread Petko Boukov

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]

2001-10-12 Thread

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]

2001-10-11 Thread

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]

2001-10-11 Thread Petko Boukov

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]

2001-10-11 Thread Jordan Dimitrov


 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