#776 Le 05/07/2011, à 13:16
- The Uploader
Re : /* Topic des codeurs couche-tard [5] */
edit2 : Ben maintenant ça marche, et je ne vois pas ce que j'ai fait qui ait pu arranger ça T_T
git diff
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#777 Le 05/07/2011, à 13:26
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
hum, je ne suis pas sur de comprendre, mais tu confond sans doute variable et noms
Là c'est moi qui ne comprends pas...
Réexplication : en gros, je lis le contenu d'un dictionnaire en l'écrivant immédiatement en-dessous du trait en '-' (en l'occurrence, j'affiche deux champs de ce dictionnaire). Ensuite, je mets ce dictionnaire dans une liste, puis je demande à ce qu'on m'affiche tout le contenu de cette liste (du moins, ces même champs pour chacun des dictionnaires contenus dans ladite liste) (du coup ça fait deux niveaux de boucle, puisque, précision que j'ai oubliée, cette fonction est dans une boucle qui créé de nouveaux 'truc'). Et là *PAF*, tous les dictionnaires contenus dans la liste contienne la même chose que le dernier inséré, mais pas tout à fait puisqu'au moins l'un des champs échappe au massacre.
D'où trouble.
@ The Uploader : oui mais non, c'est pas un gros truc donc j'ai pas sorti l'artillerie lourde
Dernière modification par Dr Le Rouge (Le 05/07/2011, à 13:27)
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#778 Le 05/07/2011, à 14:35
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
tu es sur que le soucis est pas dans la boucle appelante?
Hors ligne
#779 Le 05/07/2011, à 14:40
- Dr Le Rouge
Re : /* Topic des codeurs couche-tard [5] */
Bah il semblerait puisque je n'ai modifié que ça, mais ça reste quand même bizarre (je trouve). A priori, si la valeur avant d'être "appendé" est la bonne, elle devrait le rester après
(et j'invente le verbe appender si je veux )
C'est deux suites de Cauchy qui veulent aller à la soirée 'no limit'. Hélas, à l'entrée le videur leur dit : "désolé, c'est complet !".
mon site perso (π²/6.fr) et mon blog
Hors ligne
#780 Le 05/07/2011, à 20:05
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
@Rolinh : dans le fichier queue.c, tu as la fonction enqueue implémentée ainsi :
int
enqueue(struct list *lst, struct file_to_copy elt)
{
struct file_to_copy *new_elt = calloc(1, sizeof(struct file_to_copy));
if (new_elt == NULL){
perror("Error allocating memory ");
return -1;
}
/* We initialize the new element to insert */
new_elt->from = (elt.from != NULL) ? strdup(elt.from) : NULL;
new_elt->to = (elt.to != NULL) ? strdup(elt.to) : NULL;
new_elt->next = NULL;
new_elt->err_code = 0;
new_elt->size = elt.size;
if (is_empty((*lst)))
lst->head = new_elt;
else
lst->tail->next = new_elt;
lst->tail = new_elt;
lst->nb_elmt++;
lst->size += elt.size;
return 0;
}
Le calloc est inutile, autant utiliser malloc vu que tu initialises tous les champs à la main 8 lignes plus bas.
L'initialisation faite par calloc est inutile dans le cas présent donc perte de perf' pour rien.
Hors ligne
#781 Le 05/07/2011, à 20:32
- Rolinh
Re : /* Topic des codeurs couche-tard [5] */
Rolinh a écrit :Ah ouais mais c'est de nouveau dans main-cli ^^
Ouais, il n'y que celui-là que j'ai regardé hier.
Je verrais les autres par la suite.
Je pense que si tes yeux attentifs se penchent sur copy.c ça serait pas mal. C'est un peu la partie délicate où on a vite fait d'oublier de vérifier un truc essentiel.
Je regarde de suite pour le calloc
Hors ligne
#782 Le 05/07/2011, à 20:36
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Ouais je compte regarder copy.c, mais je « vérifie » d'abord les fonctions de base
Sinon, en commentaire de enqueue tu mets
It returns an error code
Donc quand tu renvoie 0 pour dire « tout est OK » ça fait un peu « Erreur : Succès » ^^", je verrais plus
It returns a status code
Bon, ça, c'est du détail ^^
Hors ligne
#783 Le 05/07/2011, à 20:59
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
@ Le Rouge : c’est bien possible que ton erreur vienne d’ailleurs, alors si tu ne postes pas tout le code ça va être délicat de t’aider…
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#784 Le 05/07/2011, à 20:59
- Rolinh
Re : /* Topic des codeurs couche-tard [5] */
@ Pylade: bien essayé
J'ai pas encore trouvé un moyen de faire ça proprement. Enfin, pas encore décidé plutôt...
Sinon grim c'est fixed
Hors ligne
#785 Le 05/07/2011, à 21:10
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Tiens, dans utils.c (dans la fonction get_dir_size) à un moment tu fais le test suivant :
/* skip . and .. */
if (!strncmp(".", crt_name, 1) ||
!strncmp("..", crt_name, 2)) continue;
Or, avec ce test tu élimines du parcours tout les dossiers cachés et leur hiérarchie.
Donc est-ce que c'est voulu (et dans ce cas ça voudrait le coup d'être documenté dans l'en‑tête de la fonction) ou est-ce que c'est un bug (et dans ce cas jpeux te proposer un fix simple et élégant :], un truc KISS quoi) ?
Le fix en question étant :
/* skip . and .. */
if (!strncmp(".", crt_name, 2) ||
!strncmp("..", crt_name, 3)) continue;
^^
Bah ouais suffit de comparer un caractère de plus (pour voir si le suivant est bien '\0') , comme ça tu vois si le nom de fichier n'est bien constitué que de "." (ou "..") (donc l'élimination est OK) ou s'il continu (dans ce cas faut le garder car c'est un fichier caché).
Édit : Ouais je pense vraiment que c'est un bug du coup, car ce test est aussi présent dans la fonction copy_dir de copy.c (donc tu ne copies pas les répertoires cachés et leur contenu !).
BN World!
Dernière modification par grim7reaper (Le 05/07/2011, à 22:14)
Hors ligne
#786 Le 05/07/2011, à 21:26
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Je ne crois pas que cela gène le performance de tout simplement faire un strcmp (ben ouais, dès que ça diffère il s’arrête, c’est encore plus simple)…
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#787 Le 05/07/2011, à 23:59
- cm-t
Re : /* Topic des codeurs couche-tard [5] */
'Nuit;
Dernière modification par cm-t (Le 06/07/2011, à 01:28)
Actu Ubuntu ☺/
Pauses Ubuntu sur Paris \_< -t
[(π)] La Quadrature du net
Hors ligne
#788 Le 06/07/2011, à 01:13
- Кຼزດ
Re : /* Topic des codeurs couche-tard [5] */
Pareil
dou
Hors ligne
#789 Le 06/07/2011, à 01:23
- Sir Na Kraïou
Re : /* Topic des codeurs couche-tard [5] */
Ætouq.
Descendant de Charlemagne et de LUCA.
Bleu, en l'hommage d'un truc bleu. :'(
C'est pas du bleu.
C'est pas le lac de Genève, c'est le Lac Léman.
Hors ligne
#790 Le 06/07/2011, à 02:06
- nesthib
Re : /* Topic des codeurs couche-tard [5] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#791 Le 06/07/2011, à 02:42
- samυncle
Re : /* Topic des codeurs couche-tard [5] */
.
Hello world
Hors ligne
#792 Le 06/07/2011, à 02:46
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
Bon, j'ai corrigé un bug con que j'avais créé en nettoyant du code…
en gros pylint m'indique une variable non utilisé, je vois que le bout de code qui l'utilisait est commenté, que la variable est inirialisé quelques lignes plus haut dans un if avec la valeur d'un retour de fonction, le else fait un truc différent, du coup je remplace la ligne par un "pass".
sauf que…
la variable servait pour des trucs cosmétiques, et la fonction servait surtout pour ses effets de bords… :] du coup, les boutons "cancel" de mon GUI marchaient plus .
j'ai installé bzr-bisect et utilisé pas mal de bzr diff pour comprendre d'ou ça venait (et un bzr blame qui m'a bien dit que j'avais des chances d'être responsable ^^).
allez, bonne nuit…
Dernière modification par tshirtman (Le 06/07/2011, à 02:57)
Hors ligne
#793 Le 06/07/2011, à 02:50
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#794 Le 06/07/2011, à 05:32
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Hello World!
Je ne crois pas que cela gène le performance de tout simplement faire un strcmp (ben ouais, dès que ça diffère il s’arrête, c’est encore plus simple)…
Nan mais même sans parler perf', point de vue sémantique ici strcmp est plus logique car je veux comparer une chaîne entière (c'est ce que je fais en ajoutant 1 à chaque strncmp).
Donc le fix devient :
/* skip . and .. */
if (!strcmp(".", crt_name,) ||
!strcmp("..", crt_name)) continue;
Hors ligne
#795 Le 06/07/2011, à 06:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [5] */
Scores totaux, depuis le début :
1) 3693 nesthib
2) 3269 samuncle
3) 3154 Πυλάδης
4) 2360 Кຼزດ
5) 1824 cm-t
6) 1745+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 1394 na kraïou
8) 866 helly
9) 862 \\Ouranos//
10) 681 tshirtman
11) 659 gnuuat
12) 565 Lagierl
13) 445 Rolinh
14) 418 nathéo
15) 388 The Uploader
16) 271 Kanor
17) 202 :!pakman
18) 196 Askelon
19) 121 ǤƦƯƝƬ
20) 99 kamui57
21) 93 petifrancais
22) 78 edge_one
22) 78 pierguiard
24) 70 gulp
25) 45 Le Rouge
26) 42 sakul
27) 37 ilagas
28) 36 xapantu
29) 30 keny
30) 26 gustare
30) 26 d10g3n
32) 25 GentooUser
32) 25 Morgiver
34) 24 ไ୦บเઢ'
34) 24 Steap
36) 20 CROWD
37) 18 Ph3nix_
38) 16 kouskous
39) 15 timsy
40) 12 stratoboy
40) 12 sailing
42) 11 alexises
42) 11 Crocoii
44) 10 Toineo
44) 10 NutMotion
44) 10 pseudovingtcinqcaracteres
44) 10 pfriedZ
44) 10 CasseTaTele
44) 10 Zeibux
44) 10 THS`
51) 8 Mornagest
52) 7 Vista
53) 6 ubuntlin
53) 6 asma.geek
55) 5 tendances-tdct
55) 5 kinouchou
57) 4 danychou56
57) 4 Neros
57) 4 Biaise
57) 4 totoflute
57) 4 pinballyoda ㋛
57) 4 NLS le pingouin
57) 4 ceric
57) 4 Dice-Man
57) 4 Pylade
66) 3 Revan26914
66) 3 raspouillas
66) 3 sweetly
69) 2 SoJaS
70) 1 geenux
70) 1 ArzhurBZH
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#796 Le 06/07/2011, à 06:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [5] */
Scores de la période en cours :
1) 50 nesthib
2) 39 Πυλάδης
3) 38 samuncle
4) 34 tshirtman
5) 33 Кຼزດ
6) 25 cm-t
7) 14 na kraïou
8) 12 grim7reaper
9) 5 Rolinh
10) 3 The Uploader
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#797 Le 06/07/2011, à 14:26
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
118 (req): Dynamic heap memory allocation shall not be used
119 (req): The error indicator errno shall not be used
120 (req): The macro offsetof, in library <stddef.h>, shall not be used
121 (req): <local.h> and the setlocale function shall not be used
122 (req): The setjmp macro and the longjmp function shall not be used
123 (req): The signal handling facilities of <signal.h> shall not be used
124 (req): The input/output library <stdio.h> shall not be used in production code
125 (req): The library functions atof, atoi and atol from library <stslib.h> shall not be used
126 (req): The library functions abort, exit, getenv and system from library <stdlib.h> shall not be
used
127 (req): The time handling functions of library <time.h> shall not be used
:]
Tout de suite ça calme (pour ceux qui ne connaisse pas, c'est un extrait du standard MISRA C)
Hors ligne
#798 Le 06/07/2011, à 15:00
- The Uploader
Re : /* Topic des codeurs couche-tard [5] */
En gros, ton code va faire un régime drastique.
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#799 Le 06/07/2011, à 15:20
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
Et les gens sont sensés recoder les équivalents plus buggés à tout ça? ou il y a des alternatives conseillées? ^^
Hors ligne
#800 Le 06/07/2011, à 15:22
- The Uploader
Re : /* Topic des codeurs couche-tard [5] */
Ouais en fait si y'a pas d'alternatives, bonjour l'inflation du nombre de lignes de code et du nombre de bugs.
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne