« Réunion du 11-01-2022 » : différence entre les versions

De OSWiki
Aller à la navigation Aller à la recherche
Ligne 110 : Ligne 110 :
= Nouvelles d'OpenSim =  
= Nouvelles d'OpenSim =  
[https://packages.debian.org/sid/diffstat diffstat]
[https://packages.debian.org/sid/diffstat diffstat]
== Nouvelles fonctionnalités ==
<pre>
<pre>
[11:21] Gavin.Hird @grid.xmir.org:8002 : LL a mentionné qu'ils allaient lancer de nouvelles fonctionnalités cette année
[11:21] Gavin.Hird @grid.xmir.org:8002 : LL a mentionné qu'ils allaient lancer de nouvelles fonctionnalités cette année
[11:22] Ubit Umarov : dire le contraire signifierait "nous sommes morts" :)
[11:22] Gavin.Hird @grid.xmir.org:8002 : donc gardez vos reins solides.
</pre>
== Modification du code des uuid  dans libomv ==
<pre>
[11:08] Andrew Hellershanks : Ubit a été occupé la semaine dernière. J'ai touché à beaucoup de fichiers afin d'examiner la façon dont certains codes étaient générés. Cela peut aider un peu à améliorer les performances du code de la grille.
[11:08] Andrew Hellershanks : Ubit a été occupé la semaine dernière. J'ai touché à beaucoup de fichiers afin d'examiner la façon dont certains codes étaient générés. Cela peut aider un peu à améliorer les performances du code de la grille.
[11:22] Andrew Hellershanks : En plus des modifications,  pour gagner du temps lors de tests ou de comparaisons d'UUID, il y a eu une ou plusieurs mises à jour de la bibliothèque libomv.
[11:22] Andrew Hellershanks : En plus des modifications,  pour gagner du temps lors de tests ou de comparaisons d'UUID, il y a eu une ou plusieurs mises à jour de la bibliothèque libomv.
[11:22] Ubit Umarov : dire le contraire signifierait "nous sommes morts" :)
[11:22] Gavin.Hird @grid.xmir.org:8002 : donc gardez vos reins solides.
[11:22] Ubit Umarov : les changements de libomv sont liés.
[11:22] Ubit Umarov : les changements de libomv sont liés.
[11:22] Ubit Umarov : parce que le code uuid est dans libomv et a été modifié.
[11:22] Ubit Umarov : parce que le code uuid est dans libomv et a été modifié.
Ligne 126 : Ligne 130 :
[11:24] Ubit Umarov : par exemple
[11:24] Ubit Umarov : par exemple
[11:24] Andrew Hellershanks : Je me demande ce que diffstat pourrait rapporter quant au nombre de changements.
[11:24] Andrew Hellershanks : Je me demande ce que diffstat pourrait rapporter quant au nombre de changements.
[11:24] Ubit Umarov: first form means at least 2 blocks of 16bytes copies
[11:24] Ubit Umarov : la première forme signifie au moins 2 blocs de copies de 16 octets..
[11:25] Ubit Umarov: as part of argument passing to the function that does the ==
[11:25] Ubit Umarov : en tant qu'argument passé à la fonction qui fait le ==.
[11:25] Ubit Umarov: in real JIT code, and bc there where a chain of calls... there where like 8 copies
[11:25] Ubit Umarov : dans le vrai code JIT (à la volée), et parce qu'il y avait une chaîne d'appels... il y avait environ 8 copies.
[11:25] Ubit Umarov: all useless.. but well
[11:25] Ubit Umarov : toutes inutile... mais bon
[11:26] Andrew Hellershanks: It seems a little odd that it would need to copy data just to do a comparison.
[11:26] Andrew Hellershanks : Il semble un peu étrange qu'il faille copier des données juste pour faire une comparaison.
[11:26] Ubit Umarov: auuid.IsZero on the other is a no arguments call to a methog that does check of zero
[11:26] Ubit Umarov : auuid.IsZero d'autre part est un appel sans arguments à une méthode qui fait la vérification de zéro.
[11:26] Ubit Umarov: so a lot faster
[11:26] Ubit Umarov : donc beaucoup plus rapide.
[11:26] Andrew Hellershanks: I would have thought it could have done the comparison in place using the original variable location.
[11:26] Andrew Hellershanks : J'aurais pensé qu'il aurait pu faire la comparaison en place en utilisant l'emplacement de la variable originale.
[11:27] Ubit Umarov: yeah Trust on compilers :P
[11:27] Ubit Umarov : ouais, la confiance dans les compilateurs :P
[11:27] Andrew Hellershanks: yea. It can be quite revealing to look at the generated assembler code.
[11:27] Andrew Hellershanks : oui. Il peut être assez révélateur de regarder le code assembler généré.
[11:27] Gavin.Hird @grid.xmir.org:8002: by copying it to both sides, the test will always be true
[11:27] Gavin.Hird @grid.xmir.org:8002 : en le copiant des deux côtés, le test sera toujours vrai.
[11:27] Ubit Umarov: and != could even have another set of copies
[11:27] Ubit Umarov : et != pourrait même avoir un autre ensemble de copies.
[11:28] Ubit Umarov: for example
[11:28] Ubit Umarov : par exemple
[11:28] Ubit Umarov: if(ua != ub) was
[11:28] Ubit Umarov : if(ua != ub) a était
[11:28] Ubit Umarov: <Ubit_> <Ubit_> 00007FFB371C10FB  vmovdqu    xmm0,xmmword ptr [rsp+200h]   
[11:28] Ubit Umarov: <Ubit_> <Ubit_> 00007FFB371C10FB  vmovdqu    xmm0,xmmword ptr [rsp+200h]   
<Ubit_> <Ubit_> 00007FFB371C1105  vmovdqu    xmmword ptr [rsp+118h],xmm0   
<Ubit_> <Ubit_> 00007FFB371C1105  vmovdqu    xmmword ptr [rsp+118h],xmm0   
Ligne 158 : Ligne 162 :
<Ubit_> <Ubit_> 00007FFB371C117C  test        al,al   
<Ubit_> <Ubit_> 00007FFB371C117C  test        al,al   
<Ubit_> <Ubit_> 00007FFB371C117E  jne        testlixo.Program.Main(System.String[])+03E2h (
<Ubit_> <Ubit_> 00007FFB371C117E  jne        testlixo.Program.Main(System.String[])+03E2h (
[11:29] Ubit Umarov: in windows release mode, i7 native code
[11:29] Ubit Umarov : en mode windows release, code natif i7
[11:30] Andrew Hellershanks: What was the code doing previously for the zero check?
[11:30] Andrew Hellershanks : Qu'est-ce que le code faisait auparavant pour la vérification du zéro ?
[11:31] Andrew Hellershanks: While Ubit chews on that question, any other questions about OpenSim?
[11:31] Andrew Hellershanks : Pendant qu'Ubit réfléchit à cette question, d'autres questions sur OpenSim ?  
[11:32] JayR.Cela @grid.3rdrockgrid.com:8002: none from me
(Ndlr : voir la suite dans le prochain sous chapitre)
[11:32] Andrew Hellershanks looks at Kayaker
[11:32] Ubit Umarov : c'était pareil.
[11:32] Ubit Umarov: was same
[11:33] Ubit Umarov : UUID.Zero est un uuid comme les autres, prenant la place de ub là.
[11:33] Andrew Hellershanks: Hello, Michael.
[11:33] Ubit Umarov : donc même code
[11:33] Bill's Chair whispers: This is Bill's Chair
[11:35] Ubit Umarov : maintenant :
[11:33] Gavin.Hird @grid.xmir.org:8002: Hi Michael
[11:35] Ubit Umarov : 118 : if (ua.IsZero())
[11:33] Michael.Christopher @cc.opensimulator.org:8002: hello!
00007FFB371B3317 cmp qword ptr [rsp+190h],0 
[11:33] Ubit Umarov: UUID.Zero is a uuid like other, taking place of ub there
00007FFB371B3320 jne 00007FFB371B332F 
[11:33] Andrew Hellershanks: You can't sit there, Michael. Pick another seat.
00007FFB371B3322 cmp qword ptr [rsp+198h],0 
[11:33] Ubit Umarov: so same code
00007FFB371B332B jne 00007FFB371B332F
[11:33] Andrew Hellershanks: Right.
[11:35] Ubit Umarov : compare juste 4 ulongs.
[11:34] Kayaker Magic: I'm good this week
[11:35] Ubit Umarov : et direct, et inline... pas de copies
[11:36] Ubit Umarov : aussi maintenant
[11:36] Ubit Umarov : 115 : if (ua != ub)
00007FFB371B32C9 vmovdqu xmm0,xmmword ptr [rsp+190h] 
00007FFB371B32D3 vmovdqu xmmword ptr [rsp+0E8h],xmm0 
00007FFB371B32DD vmovdqu xmm0,ptr xmmword [rsp+1A0h] 
00007FFB371B32E7 vmovdqu xmmword ptr [rsp+0D8h],xmm0 
00007FFB371B32F1 mov rcx,ptr qword [rsp+0E8h] 
00007FFB371B32F9 cmp rcx,ptr qword [rsp+0D8h] 
00007FFB371B3301 jne 00007FFB371B3315 
00007FFB371B3303 mov rcx,ptr qword [rsp+0F0h] 
00007FFB371B330B cmp rcx,ptr qword [rsp+0E0h] 
00007FFB371B3313 je 00007FFB371B3317
[11:36] Ubit Umarov : une seule copie.
[11:36] Ubit Umarov : et la comparaison est maintenant la comparaison de 2 ulongs aussi en ligne.
[11:37] Ubit Umarov : vmovdqu est une instruction intel AVX (sse) qui déplace 16 octets (dans un registre xmm).
[11:38] Ubit Umarov : comme je l'ai dit dans d'autres commits "économisez du CO2" "changements inutiles".
[11:38] Ubit Umarov : parce que nous ne voyons aucun effet :p
[11:38] Andrew Hellershanks : Je ne qualifierais pas les changements d'inutiles.
[11:38] Gavin.Hird @grid.xmir.org:8002 : pourquoi pas mono - je suppose que l'assembly généré par mono est assez différent.
[11:38] Ubit Umarov : les utilisateurs normaux inwold ne le remarquent pas.
[11:39] Ubit Umarov : oui, mono JIT est dif.
[11:39] Ubit Umarov : et peut même être celui de ms sur celui de llvm.
[11:39] Andrew Hellershanks : Non, les utilisateurs normaux ne le verront pas, mais ceux qui gèrent une grille remarqueront l'amélioration.
[11:39] Ubit Umarov : yeha, j'espère que cela signifie moins de charge globale sur le processeur.
[11:39] Gavin.Hird @grid.xmir.org:8002 : sans parler du fait que mono utilise aussi LLVM.
[11:39] Ubit Umarov : LLVM est optionnel.
[11:40] Gavin.Hird @grid.xmir.org:8002 : mono sur macOS est un standard llvm.
[11:40] Ubit Umarov : les mêmes disent que ms jit est maintenant plus rapide... certains ne le disent pas.
[11:40] Gavin.Hird @grid.xmir.org:8002 : ce qui le rend un peu plus rapide.
[11:40] Ubit Umarov : Mais ce que j'ai fait précédemment était un gros échec d'optimisation JIT.
[11:40] Ubit Umarov : toutes ces copies sont inutiles.
[11:41] Gavin.Hird @grid.xmir.org:8002 : avec un peu de chance, llvm enlèvera tout le désordre.
[11:41] Andrew Hellershanks : Il est difficile d'obtenir des statistiques utilisables sur l'amélioration, car même une région " inactive " a toujours des bouffées d'activité. Je pense que le changement a fait baisser la charge CPU de ma standalone d'environ 1%, mais les chiffres sont très variables.
[11:41] Ubit Umarov : même sur la nouvelle comparaison.
[11:41] Ubit Umarov : <Ubit_> <Ubit_> 00007FFB371C10FB vmovdqu xmm0,xmmword ptr [rsp+200h] 
<Ubit_> <Ubit_> 00007FFB371C1105 vmovdqu xmmword ptr [rsp+118h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C110F vmovdqu xmm0,xmmword ptr [rsp+210h] 
<Ubit_> <Ubit_> 00007FFB371C1119 vmovdqu xmmword ptr [rsp+108h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C1123 vmovdqu xmm0,xmmword ptr [rsp+118h] 
<Ubit_> <Ubit_> 00007FFB371C112D vmovdqu xmmword ptr [rsp+0F8h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C1137 vmovdqu xmm0,xmmword ptr [rsp+108h] 
<Ubit_> <Ubit_> 00007FFB371C1141 vmovdqu xmmword ptr [rsp+0E8h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C114B vmovdqu xmm0,xmmword ptr [rsp+0F8h] 
<Ubit_> <Ubit_> 00007FFB371C1155 vmovdqu xmmword ptr [rsp+38h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C115C vmovdqu xmm0,xmmword ptr [rsp+0E8h] 
<Ubit_> <Ubit_> 00007FFB371C1166 vmovdqu xmmword ptr [rsp+28h],xmm0 
<Ubit_> <Ubit_> 00007FFB371C116D lea rcx, [rsp+38h] 
<Ubit_> <Ubit_> 00007FFB371C
[11:41] Ubit Umarov : rdx, [rsp+28h] 
<Ubit_> <Ubit_> 00007FFB371C1177 call System.Guid.op_Equality(System.Guid, System.Guid) (07FFB8FD4BE90h) 
<Ubit_> <Ubit_> 00007FFB371C117C test al,al 
<Ubit_> <Ubit_> 00007FFB371C117E jne testlixo.Program.Main(System.String[])+03E2h (
[11:41] Ubit Umarov : ces copies sont aussi inutiles.
[11:41] Ubit Umarov : mais par spec
[11:41] Ubit Umarov : oops c'est l'ancien.
[11:42] Ubit Umarov : 115 : if (ua != ub)
00007FFB371B32C9 vmovdqu xmm0,xmmword ptr [rsp+190h] 
00007FFB371B32D3 vmovdqu xmmword ptr [rsp+0E8h],xmm0 
00007FFB371B32DD vmovdqu xmm0,ptr xmmword [rsp+1A0h] 
00007FFB371B32E7 vmovdqu xmmword ptr [rsp+0D8h],xmm0 
00007FFB371B32F1 mov rcx,ptr qword [rsp+0E8h] 
00007FFB371B32F9 cmp rcx,ptr qword [rsp+0D8h] 
00007FFB371B3301 jne 00007FFB371B3315 
00007FFB371B3303 mov rcx,ptr qword [rsp+0F0h] 
00007FFB371B330B cmp rcx,ptr qword [rsp+0E0h] 
00007FFB371B3313 je 00007FFB371B3317
[11:43] Ubit Umarov : c'est aussi du code JIT stupide... meilleur mais stupide.
[11:43] Ubit Umarov : JIT a détecté qu'il n'était pas nécessaire d'appeler une fonction.
[11:43] Ubit Umarov : mais il n'a pas vu que les copies d'arguments respectifs ne sont pas non plus nécessaires.
</pre>
==Pas d'autres questions ? ==
[https://fr.wikipedia.org/wiki/Raspberry_Pi  Raspberry Pi]
<pre>
[11:32] JayR.Cela @grid.3rdrockgrid.com:8002 : rien de mon côté.
[11:32] Andrew Hellershanks regarde le kayakiste.
[11:33] Andrew Hellershanks : Bonjour, Michael.
[11:33] La Chaise de Bill chuchote : C'est la Chaise de Bill
[11:33] Gavin.Hird @grid.xmir.org:8002 : Salut Michael
[11:33] Michael.Christopher @cc.opensimulator.org:8002 : bonjour !
[11:33] Andrew Hellershanks : Tu ne peux pas t'asseoir là, Michael. Choisis un autre siège.
[11:33] Andrew Hellershanks : C'est ça.
[11:34] Kayaker Magic : C'est bon pour moi cette semaine.
[11:34] Andrew Hellershanks: ok
[11:34] Andrew Hellershanks: ok
[11:34] Andrew Hellershanks: Anyone else?
[11:34] Andrew Hellershanks : Quelqu'un d'autre ?
[11:34] Michael.Christopher @cc.opensimulator.org:8002: nothing new here this week, still waiting on the replacement developer system to arrive :/
[11:34] Michael.Christopher @cc.opensimulator.org:8002 : rien de nouveau ici cette semaine, j'attends toujours que le système de remplacement des développeurs arrive :/.
[11:35] Ubit Umarov: now:
[11:35] Andrew Hellershanks : Le Père Noël est un peu lent dans sa livraison du système, Michael ? ;)
[11:35] Ubit Umarov: 118:            if (ua.IsZero())
[11:36] Michael.Christopher @cc.opensimulator.org:8002 : lol yea.  Nous avons commandé en décembre et il est juste passé au statut "expédition" aujourd'hui *roulement d'yeux*.
00007FFB371B3317  cmp        qword ptr [rsp+190h],0 
[11:36] Gavin.Hird @grid.xmir.org:8002 : bien, essayez d'acheter un Raspberry PI 8GB quelque part
00007FFB371B3320  jne        00007FFB371B332F 
[11:36] Gavin.Hird @grid.xmir.org:8002 : vous pouvez les obtenir à 3x le prix normal.
00007FFB371B3322  cmp        qword ptr [rsp+198h],0 
[11:36] Andrew Hellershanks : J'ai juste mon 4G Pi 4.
00007FFB371B332B  jne        00007FFB371B332F
[11:36] Gavin.Hird @grid.xmir.org:8002 : le 4GB est également en rupture de stock partout.
[11:35] Andrew Hellershanks: Santa is a bit slow on his delivery of the system, Michael? ;)
[11:35] Ubit Umarov: just compares 4 ulongs
[11:35] Ubit Umarov: and direct, and inline.. no copies
[11:36] Michael.Christopher @cc.opensimulator.org:8002: lol yea.  We ordered back in December and it just went to "shipping" status today *eye roll*
[11:36] Gavin.Hird @grid.xmir.org:8002: right, try purchase a 8GB Raspberry PI somewhere
[11:36] Gavin.Hird @grid.xmir.org:8002: you can get them at 3x normal price
[11:36] Ubit Umarov: also now
[11:36] Ubit Umarov: 115:            if (ua != ub)
00007FFB371B32C9  vmovdqu    xmm0,xmmword ptr [rsp+190h] 
00007FFB371B32D3  vmovdqu    xmmword ptr [rsp+0E8h],xmm0 
00007FFB371B32DD  vmovdqu    xmm0,xmmword ptr [rsp+1A0h] 
00007FFB371B32E7  vmovdqu    xmmword ptr [rsp+0D8h],xmm0 
00007FFB371B32F1  mov        rcx,qword ptr [rsp+0E8h] 
00007FFB371B32F9  cmp        rcx,qword ptr [rsp+0D8h] 
00007FFB371B3301  jne        00007FFB371B3315 
00007FFB371B3303  mov        rcx,qword ptr [rsp+0F0h] 
00007FFB371B330B  cmp        rcx,qword ptr [rsp+0E0h] 
00007FFB371B3313  je          00007FFB371B3317
[11:36] Andrew Hellershanks: I just have my 4G Pi 4.
[11:36] Ubit Umarov: just one copy
[11:36] Gavin.Hird @grid.xmir.org:8002: the 4GB is also out of stock all over
[11:36] Ubit Umarov: and the compare is now compare fo 2 ulongs also inline
[11:36] Ubit Umarov: and the compare is now compare fo 2 ulongs also inline
[11:37] Gavin.Hird @grid.xmir.org:8002: Canon are asking their customers to break printer toner DRM as they cannot get the chips for the toners anymore
[11:37] Gavin.Hird @grid.xmir.org:8002 : Canon demande à ses clients de casser les DRM des toners d'imprimantes car ils ne peuvent plus obtenir les puces pour les toners.
[11:37] Ubit Umarov: vmovdqu is a intel AVX (sse) intruction that moves 16 bytes ( a a xmm register )
[11:41] Andrew Hellershanks : Bon retour , Jamie
[11:38] Ubit Umarov: well as i said in other commits "save some CO2"  "useless changes"
[11:43] Jamie.Jordan @grid.kitely.com:8002 : Merci, j'ai planté je ne sais pas pourquoi.
[11:38] Ubit Umarov: bc we basicly see no effects :p
</pre>
[11:38] Andrew Hellershanks: I wouldn't call the changes useless.
== Compilateurs et problèmes ==
[11:38] Gavin.Hird @grid.xmir.org:8002: how about mono - I guess the asemly generated by mono is rather different
[https://fr.wikipedia.org/wiki/American_National_Standards_Institute ANSI]
[11:38] Ubit Umarov: normal inwold users don't notice
[https://fr.wikipedia.org/wiki/K%26R K&R]
[11:38] Gavin.Hird @grid.xmir.org:8002: assembly*
<pre>
[11:39] Ubit Umarov: yeah mono JIT is dif
[11:44] Ubit Umarov : je rigole quand des gens intelligents disent qu'il faut faire confiance aux compilateurs.
[11:39] Ubit Umarov: and can even be the ms one on the llvm one
[11:44] Ubit Umarov : rire aussi
[11:39] Andrew Hellershanks: No, normal users wouldn't but the people running a grid will notice the improvement.
[11:45] Gavin.Hird @grid.xmir.org:8002 : ouais, c'était mieux dans le passé quand on pouvait appuyer sur halt, corriger le code dans le noyau et continuer.
[11:39] Ubit Umarov: yeha hope this means less overall cpu load
[11:45] Ubit Umarov : aussi == est mauvais
[11:39] Gavin.Hird @grid.xmir.org:8002: not to mention if mono also use LLVM
[11:46] Ubit Umarov : cela signifie 2 arguments.
[11:39] Ubit Umarov: llvm is optional
[11:46] Ubit Umarov : alors que auuid.Equals(other) fait 1 seul argument
[11:40] Gavin.Hird @grid.xmir.org:8002: mono on macOS is llvm standard
[11:47] Ubit Umarov : alors oui, les compilateurs sont intelligents et voient tout pour nous... dit-on...
[11:40] Ubit Umarov: same say that ms jit is now faster.. some dont
[11:47] Ubit Umarov : LOL
[11:40] Gavin.Hird @grid.xmir.org:8002: which makes it a bit faster
[11:47] Ubit Umarov : peu importe
[11:40] Ubit Umarov: wlel that past i did was a big JIT optimization fail
[11:47] Ubit Umarov : changer le code de bas niveau sur libopenmetaverse
[11:40] Ubit Umarov: all those copies are useless
[11:47] Andrew Hellershanks : J'ai eu un problème une fois avec du code. Quand j'ai creusé dans l'assembleur généré, j'ai découvert que le compilateur s'amusait avec le caractère \n dans une chaîne. Il aurait dû le laisser tranquille et il aurait été traduit en caractères utilisés par le système d'exploitation lors de la sortie de la chaîne. Le fabricant du compilateur a déclaré qu'il suivait la norme ANSI. La gestion des \N n'a certainement pas été faite selon K&R.
[11:41] Gavin.Hird @grid.xmir.org:8002: hopefully llvm strips the mess out
[11:47] Ubit Umarov : et eux sur une tonne d'endroits où nous les utilisons.
[11:41] Andrew Hellershanks: It is hard to get usable stats on the improvement because even an "idle" region still has bursts of activity. I think the change might have dropped the CPU load for my standalone by about 1% but the numbers were bouncing  around.
[11:48] Ubit Umarov : oui, les problèmes avec les compilateurs sont aussi vieux que les compilateurs.
[11:41] Ubit Umarov: even on the new compare
[11:48] Ubit Umarov : gcc était très amusant et l'est toujours.
[11:41] Ubit Umarov: <Ubit_> <Ubit_> 00007FFB371C10FB  vmovdqu    xmm0,xmmword ptr [rsp+200h] 
[11:48] Ubit Umarov :(PAS)Très amusant.
<Ubit_> <Ubit_> 00007FFB371C1105  vmovdqu    xmmword ptr [rsp+118h],xmm0 
[11:49] Ubit Umarov : ceci au moins produit des résultats corrects !!!
<Ubit_> <Ubit_> 00007FFB371C110F  vmovdqu    xmm0,xmmword ptr [rsp+210h] 
[11:49] Ubit Umarov : et JIT a été capable de voir que le processeur peut copier 16 octets sur une seule instruction.
<Ubit_> <Ubit_> 00007FFB371C1119  vmovdqu    xmmword ptr [rsp+108h],xmm0 
[11:49] Ubit Umarov : pas bas
<Ubit_> <Ubit_> 00007FFB371C1123  vmovdqu    xmm0,xmmword ptr [rsp+118h] 
[11:49] Ubit Umarov : pas mauvais
<Ubit_> <Ubit_> 00007FFB371C112D  vmovdqu    xmmword ptr [rsp+0F8h],xmm0 
[11:50] Ubit Umarov : sauf mes fautes de frappe
<Ubit_> <Ubit_> 00007FFB371C1137  vmovdqu    xmm0,xmmword ptr [rsp+108h] 
[11:50] Andrew Hellershanks : :)
<Ubit_> <Ubit_> 00007FFB371C1141  vmovdqu    xmmword ptr [rsp+0E8h],xmm0 
[11:50] Ubit Umarov : obtenir un UbitTranslator
<Ubit_> <Ubit_> 00007FFB371C114B  vmovdqu    xmm0,xmmword ptr [rsp+0F8h] 
[11:50] Ubit Umarov : :p
<Ubit_> <Ubit_> 00007FFB371C1155  vmovdqu    xmmword ptr [rsp+38h],xmm0 
[11:51] Andrew Hellershanks : nooon... la plupart, sinon tous, d'entre nous savent lire le typon.
<Ubit_> <Ubit_> 00007FFB371C115C  vmovdqu    xmm0,xmmword ptr [rsp+0E8h] 
[11:51] Ubit Umarov : :)
<Ubit_> <Ubit_> 00007FFB371C1166  vmovdqu    xmmword ptr [rsp+28h],xmm0 
[11:51] Andrew Hellershanks : Combien de fois ça fait, Jamie ?
<Ubit_> <Ubit_> 00007FFB371C116D  lea        rcx,[rsp+38h]
[11:51] Michael.Christopher @cc.opensimulator.org:8002 : dont la plupart d'entre nous écrivent en typon ;)
<Ubit_> <Ubit_> 00007FFB371C
[11:51] Gavin.Hird @grid.xmir.org:8002 : maintenant il fait du sur-place, donc il doit se reconnecter pour effacer cela.
[11:41] Ubit Umarov:  rdx,[rsp+28h] 
</pre>
<Ubit_> <Ubit_> 00007FFB371C1177  call        System.Guid.op_Equality(System.Guid, System.Guid) (07FFB8FD4BE90h) 
==Changements au niveau des scripts et autres==
<Ubit_> <Ubit_> 00007FFB371C117C  test        al,al 
* [[OsMakeNotecard]]
<Ubit_> <Ubit_> 00007FFB371C117E  jne        testlixo.Program.Main(System.String[])+03E2h (
* [[OsMessageObject]]
[11:41] Ubit Umarov: those copies are also useless
* [[osMessageAttachments]]
[11:41] Andrew Hellershanks: wb, Jamie
* [[LLUDP ClientStack/fr]]
[11:41] Ubit Umarov: but per spec
<pre>
[11:41] Ubit Umarov: oops this is the old
[11:52] Ubit Umarov : j'ai aussi appliqué un maximum de 64k sur osmakenotecard.
[11:42] Ubit Umarov: 115:            if (ua != ub)
[11:52] Ubit Umarov : "annulé (inversé ?) le ralentissement de osMessageObject. réduit également le ralentissement de osMessageAttachments à (100 + 10 *NumberTargetedPrims) milisecondes. Certaines actions du jeu ont montré un léger impact négatif visible, alors testons..."
00007FFB371B32C9  vmovdqu    xmm0,xmmword ptr [rsp+190h] 
[11:52] Andrew Hellershanks : Une limite raisonnable, Ubit. 64k de texte, c'est beaucoup de texte à lire. La plupart des gens ne liraient pas une NoteCard avec autant de texte.
00007FFB371B32D3  vmovdqu    xmmword ptr [rsp+0E8h],xmm0 
[11:53] Ubit Umarov : un jeu ici sur osg a montré un impact négatif visible.
00007FFB371B32DD  vmovdqu    xmm0,xmmword ptr [rsp+1A0h] 
00007FFB371B32E7  vmovdqu    xmmword ptr [rsp+0D8h],xmm0 
00007FFB371B32F1  mov        rcx,qword ptr [rsp+0E8h] 
00007FFB371B32F9  cmp        rcx,qword ptr [rsp+0D8h] 
00007FFB371B3301  jne        00007FFB371B3315 
00007FFB371B3303  mov        rcx,qword ptr [rsp+0F0h] 
00007FFB371B330B  cmp        rcx,qword ptr [rsp+0E0h] 
00007FFB371B3313  je         00007FFB371B3317
[11:43] Ubit Umarov: this is also stupid JIT code..  better but stupid
[11:43] Jamie.Jordan @grid.kitely.com:8002: thanks i'm crashy for some reason
[11:43] Ubit Umarov: JIT detected theat was no need to call a funtion
[11:43] Ubit Umarov: but failed to see that the respecitve arguments copies are also not needed
[11:44] Ubit Umarov: well  i just lauch when clever ppl tells one should trust compilers
[11:44] Ubit Umarov: laught also
[11:45] Gavin.Hird @grid.xmir.org:8002: yeah, it was better in the old days when you could hit halt, correct the code in core and continue
[11:45] Ubit Umarov: also == is bad
[11:46] Ubit Umarov: means 2 arguments
[11:46] Ubit Umarov: while auuid.Equals(other) is only 1 argument
[11:47] Ubit Umarov: so yeahh compilers are clever and see all things for us... they say
[11:47] Ubit Umarov: LOL
[11:47] Ubit Umarov: whatver
[11:47] Ubit Umarov: changed the low level code on libopenmetaverse
[11:47] Andrew Hellershanks: I had a problem one time with some code. When I dug in to the generated assembler I found that the compiler was messing around with the \n character in a string. It should have left it alone and it would be translated in to the characters used by the operating system during the output of the string. The compiler maker said they followed the ANSI standard. Handling of \n certainly wasn't being done per K&R.
[11:47] Ubit Umarov: and them on a ton of places where we use it
[11:48] Ubit Umarov: yeah problems with compilers are as old as compilets
[11:48] Ubit Umarov: gcc was very fun and still  is
[11:48] Ubit Umarov: very (NOT) fun
[11:49] Ubit Umarov: this at least do produce correct results!!
[11:49] Ubit Umarov: and JIT was cleave to see the cpu cna copy 16bytes on a single instruction
[11:49] Ubit Umarov: not bas
[11:49] Ubit Umarov: not bad
[11:50] Ubit Umarov: except my typos
[11:50] Ubit Umarov: "and JIT was clever to see tha the  cpu can copy 16bytes on a single instruction"
[11:50] Andrew Hellershanks: :)
[11:50] Ubit Umarov: THAT nor tha
[11:50] Ubit Umarov: uff
[11:50] Ubit Umarov: get a UbitTranslator
[11:50] Ubit Umarov: :p
[11:51] Andrew Hellershanks: naww... most, if not all, of us here can read typonese.
[11:51] Ubit Umarov: :)
[11:51] Andrew Hellershanks: How many times is that, Jamie?
[11:51] Michael.Christopher @cc.opensimulator.org:8002: dont most of us writ in typonese ;)
[11:51] Gavin.Hird @grid.xmir.org:8002: now he is treading water, so he has to relog to clear that
[11:52] Ubit Umarov: i did enforce max og 64k on osmakenotecard also
[11:52] Ubit Umarov: "revert the slowdown of osMessageObject. Also reduce the slowdown osMessageAttachments to (100 + 10 *NumberTargetedPrims) miliseconds. Some action games shown a bit of visible negative impact, so lets test
"
[11:52] Andrew Hellershanks: A reasonable limit, Ubit. 64k of text is a lot of text to read. Most wouldn't read an NC with that much text in it.
[11:53] Ubit Umarov: a game here in osg had visible negative impact
[11:53] Gavin.Hird @grid.xmir.org:8002: ok?
[11:53] Gavin.Hird @grid.xmir.org:8002: ok?
[11:53] Ubit Umarov: "* proper bypass lludp header extra bytes, even if not seen so far
[11:53] Ubit Umarov : " * contourné correctement les octets supplémentaires de l'en-tête lludp, même si cela n'a pas été vu jusqu'à présent.
"
[11:53] Ubit Umarov : c'est plutôt un changement inutile.
[11:53] Ubit Umarov: this is more of a useless change
[11:54] Ubit Umarov : il se trouve que le protocole LLUDP supporte des en-têtes de paquets plus longs.
[11:54] Ubit Umarov: happens that LLUDP protocol suports longe packets headers
[11:54] Ubit Umarov : le code de sortie exploserait si cela se produisait.
[11:54] Ubit Umarov: out code would blowup if that happened
[11:54] Ubit Umarov : maintenant je vais juste laisser les octets supplémentaires s'il y en a.
[11:54] Ubit Umarov: now will just over the extra bytes if present
[11:55] Ubit Umarov : je n'ai  vu dans un  viewer aucune utilisation de ces octets.
[11:55] Ubit Umarov: well never seen a viewer and any use of such bytes
[11:55] Ubit Umarov : mais c'est une correction de protocole formel.
[11:55] Ubit Umarov: but it is a formal protocol fix
[11:56] Ubit Umarov : je suppose que cela couvre les changements de code de la semaine dernière.
[11:55] Andrew Hellershanks: Jamie just went *poof* again.
[11:56] Ubit Umarov : pas beaucoup de rapports de bogues.
[11:56] Andrew Hellershanks: We are just a few minutes away from the top of the hour. Any last minute questions or comments?
[11:56] Ubit Umarov : il y en a un que je ne peux toujours pas repo.
</pre>
=Les viewers=
<pre>
[11:55] Andrew Hellershanks : Jamie vient juste de faire *poof* à nouveau.
[11:56] Andrew Hellershanks : Nous sommes à quelques minutes de la fin de l'heure. Des questions ou des commentaires de dernière minute ?
[11:56] Ubit Umarov: guess that covers last week code changes
[11:56] Ubit Umarov: guess that covers last week code changes
[11:56] Andrew Hellershanks: Anything viewer related, Gavin?
[11:56] Andrew Hellershanks : Quelque chose en rapport avec le viewer, Gavin ?
[11:56] Ubit Umarov: not many bug reports
[11:56] Gavin.Hird @grid.xmir.org:8002 : pas vraiment.
[11:56] Ubit Umarov: one i still can't repo
[11:57] Andrew Hellershanks : Gavin, j'ai une question concernant le viewer.
[11:56] Gavin.Hird @grid.xmir.org:8002: not really
[11:57] Gavin.Hird @grid.xmir.org:8002 : LL a dit qu'ils allaient ajouter de nouvelles fonctionnalités qui nécessiteront des changements de viewer cette année.
[11:57] Andrew Hellershanks: Gavin, I do have a viewer question.
[11:57] Gavin.Hird @grid.xmir.org:8002 : pas de mention sur quoi
[11:57] Gavin.Hird @grid.xmir.org:8002: LL said they will add new features that requires viewer changes this year
[11:57] Gavin.Hird @grid.xmir.org:8002 : bien sûr.
[11:57] Gavin.Hird @grid.xmir.org:8002: no mention on what
[11:57] Ubit Umarov : gavin, c'était "pas de nouvelles" :)
[11:57] Gavin.Hird @grid.xmir.org:8002: sure
[11:57] Ubit Umarov : pour une partie de la réunion
[11:57] Ubit Umarov: gavin that was "no news" :)
[11:57] Ubit Umarov : Évidemment qu'ils vont ajouter quelque chose au viewer.
[11:57] Ubit Umarov: part of meeting
[11:58] Gavin.Hird @grid.xmir.org:8002 : les nouvelles fonctionnalités seront des choses comme Bento ou quelque chose comme ça.
[11:57] Ubit Umarov: ofc they will add something
[11:58] Ubit Umarov : je parie qu'ils ont aussi une tonne de demandes de fonctionnalités.
[11:58] Gavin.Hird @grid.xmir.org:8002: new features are stuff like Bento or soemthing
[11:58] Gavin.Hird @grid.xmir.org:8002 : changements réels de viewer
[11:58] Ubit Umarov: bet they have a ton of feature requests also
[11:58] Gavin.Hird @grid.xmir.org:8002: real viewer cahnges
[11:58] Andrew Hellershanks: Sometimes when I enter a coordinate for a prim in the Build dialog it goes in as I typed it. Other times it has some extra non-zero digit added. I can force it back to the three decimal places I entered by changing the number then changing it back. Any ideas why that happens?
[11:58] Andrew Hellershanks: Sometimes when I enter a coordinate for a prim in the Build dialog it goes in as I typed it. Other times it has some extra non-zero digit added. I can force it back to the three decimal places I entered by changing the number then changing it back. Any ideas why that happens?
[11:59] Ubit Umarov: Kb to chair interface issue?
[11:59] Ubit Umarov: Kb to chair interface issue?

Version du 12 janvier 2022 à 16:39

Source :http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-01-11

Introduction

[11:00] Kayaker Magic : Et moi qui espérais que la réunion soit courte....
[11:00] Gavin.Hird @grid.xmir.org:8002 : Bonjour Andrew.
[11:00] Ubit Umarov : oh et il y a le andrew le banc 
[11:00] Ubit Umarov : blanc
[11:00] Andrew Hellershanks : Bonjour, tout le monde.
[11:00] Andrew Hellershanks : Je peux faire en sorte que la réunion soit courte.
[11:00] Andrew Hellershanks : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.
[11:00] Andrew Hellershanks sourit.
[11:00] JayR.Cela @grid.3rdrockgrid.com:8002: lol
[11:01] Ubit Umarov : Les assets d'osgrid pourraient prendre encore 120 jours.
[11:01] Ubit Umarov: gezz
[11:01] Andrew Hellershanks : Pourquoi une réunion courte, Kayaker.
[11:01] Andrew Hellershanks : 120 jours ? Eek.
[11:01] Andrew Hellershanks : Je vais être un Andrew le blanc pendant un bon moment encore.
[11:01] Gavin.Hird @grid.xmir.org:8002 : Mon dieu, sur quelle variante de covid nous serons à ce moment là ?
[11:01] Kayaker Magic : Ubit plaisantait en disant au revoir, à la semaine prochaine.
[11:01] Jagga Meredith: zulu
[11:01] Ubit Umarov: un potentiel Andrew le rose aurait été pire.
[11:02] Andrew Hellershanks : Je vois mon avatar en gris.
[11:02] Gavin.Hird @grid.xmir.org:8002 : espace gris.
[11:02] Kayaker Magic : Andrew : tu es blanc pour moi, pas de textures.
[11:03] Andrew Hellershanks : Eh bien, le gris est un blanc cassé, en quelque sorte.
[11:03] Andrew Hellershanks : :)
[11:03] Jagga Meredith : Je vais bien.  Mais je n'ai pas changé de tenue depuis environ 5 ans.
[11:03] Gavin.Hird @grid.xmir.org:8002 : il est probablement blanc, mais l'éclairage le fait paraître gris clair.
[11:03] Andrew Hellershanks : Je n'ai pas changé de tenue depuis longtemps non plus.
[11:03] Ubit Umarov : oui, il y a des nuances de gris ici aussi.
[11:03] Gavin.Hird @grid.xmir.org:8002 : Je pense qu'aucun d'entre nous ne l'a fait, haha.
[11:04] Andrew Hellershanks murmure : Je semble être le "chanceux" car je ne vois personne d'autre avec un avatar gris ou blanc. Devrais-je acheter un billet de loterie ?
[11:04] Ubit Umarov : ( et plus de cinquante)
[11:04] Gavin.Hird @grid.xmir.org:8002 : mais c'est seulement si tu utilises le viewer RLV Ubit.
[11:04] Jamie.Jordan @grid.kitely.com:8002 : Bonjour tout le monde.
[11:05] Andrew Hellershanks : Ubit a cessé de porter son masque Covid.
[11:05] Gavin.Hird @grid.xmir.org:8002 : il a abandonné.
[11:05] Andrew Hellershanks : Bonjour, Jamie
[11:05] Gavin.Hird @grid.xmir.org:8002 : Salut Jamie
[11:05] Selby.Evans @grid.kitely.com:8002 : Salut Jamie
[11:05] Gavin.Hird @grid.xmir.org:8002 : ... ou l'inventaire est en cours de migration.
[11:07] Jagga Meredith : à quoi servait la panne du week-end ?
[11:08] Ubit Umarov : oops masque ??
[11:08] Ubit Umarov : Ohh noo
[11:08] Ubit Umarov : corrigé

Le service d'assets de OSGrid : code privé et fermé

[11:09] Ubit Umarov : pas d'information officielle de la part d'osgrid.
[11:10] Ubit Umarov : mais il semble que mariadb fonctionnant en mode cluster / maître -esclave vient d'exploser à nouveau.
[11:10] Ubit Umarov : et remplacé maintenant par un autre fork de mysql
[11:10] Andrew Hellershanks : ouch
[11:10] Gavin.Hird @grid.xmir.org:8002 : il est peut-être temps d'utiliser une vraie base de données.
[11:11] Gavin.Hird @grid.xmir.org:8002 : fork de mysql ?
[11:11] Ubit Umarov : oui.
[11:11] Gavin.Hird @grid.xmir.org:8002 : qui serait ?
[11:11] Ubit Umarov : ( comme l'était Mariadb )
[11:11] Ubit Umarov : je n'ai pas de déclarations officielles sur osgrid :)
[11:12] Gavin.Hird @grid.xmir.org:8002 : Je suppose qu'ils ne maintiennent pas le fork
[11:12] Gavin.Hird @grid.xmir.org:8002 : Je me demande quel est le nom du projet forké.
[11:12] Ubit Umarov : ces services d'assets ne sont même pas du code opensimulator.
[11:12] Ubit Umarov : mais une solution privée fermée... donc... nous ne pouvons pas en dire grand chose.
[11:12] Gavin.Hird @grid.xmir.org:8002 : alors est-ce que c'est encore une grille de test ?
[11:13] Ubit Umarov : oui test possible pour cette solution fermée et privée, pas pour opensimulator, dans ce domaine :)
[11:13] Ubit Umarov : mais lbsa est en train de brûler le (presque) dernier code.
[11:13] Ubit Umarov : alors cette région est-elle en train de brûler ?
[11:13] Andrew Hellershanks : brûle-t-elle ? :)
[11:14] Ubit Umarov : en fait, c'est la dernière.

Brûler vs Graver : humour de dev

Ndlr : j'avoue ne pas avoir tout compris, la traduction peut-être très approximative. :)

  • RS/600
  • AFAIK : As Far As I Know = Pour autant que je sache.
[11:14] Gavin.Hird @grid.xmir.org:8002 : brûler des cycles de CPU
[11:14] Ubit Umarov : ouais :)
[11:14] Andrew Hellershanks : Oui.
[11:14] Ubit Umarov : si je me souviens bien, à l'époque de la production des circuits intégrés, il y avait une étape optionnelle de gravure.
[11:15] Gavin.Hird @grid.xmir.org:8002 : brûlage ou burn-in ?
[11:15] Ubit Umarov : quand les circuits intégrés étaient placés sur un circuit fonctionnant pendant plusieurs heures.
[11:15] Andrew Hellershanks: burn-in (graver)
[11:15] Ubit Umarov : ou cela
[11:16] Andrew Hellershanks : Ce serait brûlé si le test échoue ;)
[11:16] Gavin.Hird @grid.xmir.org:8002 : :-)
[11:16] Ubit Umarov : le problème est que la probabilité d'un défaut a une forme de baignoire (bath tube).
[11:16] Gavin.Hird @grid.xmir.org:8002 : le RS/6000 avait un code de console HW qui disait "le CPU est en feu".
[11:16] Ubit Umarov : élevé dans les premières heures de la vie d'une pièce... puis élevé à nouveau en fin de vie.
[11:17] Ubit Umarov : donc le fait traiter la pièce avant la production a permis d'exclure un plus grand nombre de ces échecs précoces.
[11:17] Andrew Hellershanks : Je me souviens qu'un produit développé par une entreprise pour laquelle je travaillais il y a quelques 
années mettait les composants dans une pièce pour les brûler à haute température.
[11:18] Ubit Umarov : donc pour le coup... code brûlant à lbsa ;)
[11:18] Gavin.Hird @grid.xmir.org:8002 : AFAIK tous les appareils Apple sont soumis à un burn-in avant d'être envoyés aux clients.
[11:19] Andrew Hellershanks : Je dirais que c'est une pratique courante dans l'industrie de faire un burn-in du produit.
[11:19] Gavin.Hird @grid.xmir.org:8002: oui
[11:19] Ubit Umarov : pas vraiment.
[11:19] Ubit Umarov : sur les produits de consommation bon marché.
[11:19] Ubit Umarov : autrefois... plus maintenant.
[11:20] Ubit Umarov : cela reste possible sur les produits haut de gamme.
[11:20] Ubit Umarov : les pièces qui défaillantes sont réutilisées sur des produits moins chers ( je pense :p )
[11:20] Ubit Umarov : bien mais à propos d'opensim
[11:20] Ubit Umarov : quelles nouvelles avez-vous ?

Nouvelles d'OpenSim

diffstat

Nouvelles fonctionnalités

[11:21] Gavin.Hird @grid.xmir.org:8002 : LL a mentionné qu'ils allaient lancer de nouvelles fonctionnalités cette année
[11:22] Ubit Umarov : dire le contraire signifierait "nous sommes morts" :)
[11:22] Gavin.Hird @grid.xmir.org:8002 : donc gardez vos reins solides.

Modification du code des uuid dans libomv

[11:08] Andrew Hellershanks : Ubit a été occupé la semaine dernière. J'ai touché à beaucoup de fichiers afin d'examiner la façon dont certains codes étaient générés. Cela peut aider un peu à améliorer les performances du code de la grille.
[11:22] Andrew Hellershanks : En plus des modifications,  pour gagner du temps lors de tests ou de comparaisons d'UUID, il y a eu une ou plusieurs mises à jour de la bibliothèque libomv.
[11:22] Ubit Umarov : les changements de libomv sont liés.
[11:22] Ubit Umarov : parce que le code uuid est dans libomv et a été modifié.
[11:22] Ubit Umarov : modifié
[11:22] Andrew Hellershanks : Je pensais que c'était le cas d'après les messages de commit.
[11:23] Ubit Umarov : donc beaucoup de fichiers ont été modifiés.
[11:24] Andrew Hellershanks : En revoyant les changements d'Ubit, j'ai seulement noté environ 3 autres changements à faire mais aucune erreur. 
Cela a pris pas mal de temps pour revoir les commits car ils touchent beaucoup de fichiers.
[11:24] Ubit Umarov : avec des changements comme auuid == UUID.Zero remplacé par un nouveau auuis.IsZero()
[11:24] Ubit Umarov : par exemple
[11:24] Andrew Hellershanks : Je me demande ce que diffstat pourrait rapporter quant au nombre de changements.
[11:24] Ubit Umarov : la première forme signifie au moins 2 blocs de copies de 16 octets..
[11:25] Ubit Umarov : en tant qu'argument passé à la fonction qui fait le ==.
[11:25] Ubit Umarov : dans le vrai code JIT (à la volée), et parce qu'il y avait une chaîne d'appels... il y avait environ 8 copies.
[11:25] Ubit Umarov : toutes inutile... mais bon
[11:26] Andrew Hellershanks : Il semble un peu étrange qu'il faille copier des données juste pour faire une comparaison.
[11:26] Ubit Umarov : auuid.IsZero d'autre part est un appel sans arguments à une méthode qui fait la vérification de zéro.
[11:26] Ubit Umarov : donc beaucoup plus rapide.
[11:26] Andrew Hellershanks : J'aurais pensé qu'il aurait pu faire la comparaison en place en utilisant l'emplacement de la variable originale.
[11:27] Ubit Umarov : ouais, la confiance dans les compilateurs :P
[11:27] Andrew Hellershanks : oui. Il peut être assez révélateur de regarder le code assembler généré.
[11:27] Gavin.Hird @grid.xmir.org:8002 : en le copiant des deux côtés, le test sera toujours vrai.
[11:27] Ubit Umarov : et != pourrait même avoir un autre ensemble de copies.
[11:28] Ubit Umarov : par exemple
[11:28] Ubit Umarov : if(ua != ub) a était
[11:28] Ubit Umarov: <Ubit_> <Ubit_> 00007FFB371C10FB  vmovdqu     xmm0,xmmword ptr [rsp+200h]  
<Ubit_> <Ubit_> 00007FFB371C1105  vmovdqu     xmmword ptr [rsp+118h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C110F  vmovdqu     xmm0,xmmword ptr [rsp+210h]  
<Ubit_> <Ubit_> 00007FFB371C1119  vmovdqu     xmmword ptr [rsp+108h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C1123  vmovdqu     xmm0,xmmword ptr [rsp+118h]  
<Ubit_> <Ubit_> 00007FFB371C112D  vmovdqu     xmmword ptr [rsp+0F8h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C1137  vmovdqu     xmm0,xmmword ptr [rsp+108h]  
<Ubit_> <Ubit_> 00007FFB371C1141  vmovdqu     xmmword ptr [rsp+0E8h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C114B  vmovdqu     xmm0,xmmword ptr [rsp+0F8h]  
<Ubit_> <Ubit_> 00007FFB371C1155  vmovdqu     xmmword ptr [rsp+38h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C115C  vmovdqu     xmm0,xmmword ptr [rsp+0E8h]  
<Ubit_> <Ubit_> 00007FFB371C1166  vmovdqu     xmmword ptr [rsp+28h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C116D  lea         rcx,[rsp+38h]  
<Ubit_> <Ubit_> 00007FFB371C
[11:28] Ubit Umarov:  rdx,[rsp+28h]  
<Ubit_> <Ubit_> 00007FFB371C1177  call        System.Guid.op_Equality(System.Guid, System.Guid) (07FFB8FD4BE90h)  
<Ubit_> <Ubit_> 00007FFB371C117C  test        al,al  
<Ubit_> <Ubit_> 00007FFB371C117E  jne         testlixo.Program.Main(System.String[])+03E2h (
[11:29] Ubit Umarov : en mode windows release, code natif i7
[11:30] Andrew Hellershanks : Qu'est-ce que le code faisait auparavant pour la vérification du zéro ?
[11:31] Andrew Hellershanks : Pendant qu'Ubit réfléchit à cette question, d'autres questions sur OpenSim ? 
(Ndlr : voir la suite dans le prochain sous chapitre)
[11:32] Ubit Umarov : c'était pareil.
[11:33] Ubit Umarov : UUID.Zero est un uuid comme les autres, prenant la place de ub là.
[11:33] Ubit Umarov : donc même code
[11:35] Ubit Umarov : maintenant :
[11:35] Ubit Umarov : 118 : if (ua.IsZero())
00007FFB371B3317 cmp qword ptr [rsp+190h],0  
00007FFB371B3320 jne 00007FFB371B332F  
00007FFB371B3322 cmp qword ptr [rsp+198h],0  
00007FFB371B332B jne 00007FFB371B332F
[11:35] Ubit Umarov : compare juste 4 ulongs.
[11:35] Ubit Umarov : et direct, et inline... pas de copies
[11:36] Ubit Umarov : aussi maintenant
[11:36] Ubit Umarov : 115 : if (ua != ub)
00007FFB371B32C9 vmovdqu xmm0,xmmword ptr [rsp+190h]  
00007FFB371B32D3 vmovdqu xmmword ptr [rsp+0E8h],xmm0  
00007FFB371B32DD vmovdqu xmm0,ptr xmmword [rsp+1A0h]  
00007FFB371B32E7 vmovdqu xmmword ptr [rsp+0D8h],xmm0  
00007FFB371B32F1 mov rcx,ptr qword [rsp+0E8h]  
00007FFB371B32F9 cmp rcx,ptr qword [rsp+0D8h]  
00007FFB371B3301 jne 00007FFB371B3315  
00007FFB371B3303 mov rcx,ptr qword [rsp+0F0h]  
00007FFB371B330B cmp rcx,ptr qword [rsp+0E0h]  
00007FFB371B3313 je 00007FFB371B3317
[11:36] Ubit Umarov : une seule copie.
[11:36] Ubit Umarov : et la comparaison est maintenant la comparaison de 2 ulongs aussi en ligne.
[11:37] Ubit Umarov : vmovdqu est une instruction intel AVX (sse) qui déplace 16 octets (dans un registre xmm).
[11:38] Ubit Umarov : comme je l'ai dit dans d'autres commits "économisez du CO2" "changements inutiles".
[11:38] Ubit Umarov : parce que nous ne voyons aucun effet :p
[11:38] Andrew Hellershanks : Je ne qualifierais pas les changements d'inutiles.
[11:38] Gavin.Hird @grid.xmir.org:8002 : pourquoi pas mono - je suppose que l'assembly généré par mono est assez différent.
[11:38] Ubit Umarov : les utilisateurs normaux inwold ne le remarquent pas.
[11:39] Ubit Umarov : oui, mono JIT est dif.
[11:39] Ubit Umarov : et peut même être celui de ms sur celui de llvm.
[11:39] Andrew Hellershanks : Non, les utilisateurs normaux ne le verront pas, mais ceux qui gèrent une grille remarqueront l'amélioration.
[11:39] Ubit Umarov : yeha, j'espère que cela signifie moins de charge globale sur le processeur.
[11:39] Gavin.Hird @grid.xmir.org:8002 : sans parler du fait que mono utilise aussi LLVM.
[11:39] Ubit Umarov : LLVM est optionnel.
[11:40] Gavin.Hird @grid.xmir.org:8002 : mono sur macOS est un standard llvm.
[11:40] Ubit Umarov : les mêmes disent que ms jit est maintenant plus rapide... certains ne le disent pas.
[11:40] Gavin.Hird @grid.xmir.org:8002 : ce qui le rend un peu plus rapide.
[11:40] Ubit Umarov : Mais ce que j'ai fait précédemment était un gros échec d'optimisation JIT.
[11:40] Ubit Umarov : toutes ces copies sont inutiles.
[11:41] Gavin.Hird @grid.xmir.org:8002 : avec un peu de chance, llvm enlèvera tout le désordre.
[11:41] Andrew Hellershanks : Il est difficile d'obtenir des statistiques utilisables sur l'amélioration, car même une région " inactive " a toujours des bouffées d'activité. Je pense que le changement a fait baisser la charge CPU de ma standalone d'environ 1%, mais les chiffres sont très variables.
[11:41] Ubit Umarov : même sur la nouvelle comparaison.
[11:41] Ubit Umarov : <Ubit_> <Ubit_> 00007FFB371C10FB vmovdqu xmm0,xmmword ptr [rsp+200h]  
<Ubit_> <Ubit_> 00007FFB371C1105 vmovdqu xmmword ptr [rsp+118h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C110F vmovdqu xmm0,xmmword ptr [rsp+210h]  
<Ubit_> <Ubit_> 00007FFB371C1119 vmovdqu xmmword ptr [rsp+108h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C1123 vmovdqu xmm0,xmmword ptr [rsp+118h]  
<Ubit_> <Ubit_> 00007FFB371C112D vmovdqu xmmword ptr [rsp+0F8h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C1137 vmovdqu xmm0,xmmword ptr [rsp+108h]  
<Ubit_> <Ubit_> 00007FFB371C1141 vmovdqu xmmword ptr [rsp+0E8h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C114B vmovdqu xmm0,xmmword ptr [rsp+0F8h]  
<Ubit_> <Ubit_> 00007FFB371C1155 vmovdqu xmmword ptr [rsp+38h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C115C vmovdqu xmm0,xmmword ptr [rsp+0E8h]  
<Ubit_> <Ubit_> 00007FFB371C1166 vmovdqu xmmword ptr [rsp+28h],xmm0  
<Ubit_> <Ubit_> 00007FFB371C116D lea rcx, [rsp+38h]  
<Ubit_> <Ubit_> 00007FFB371C
[11:41] Ubit Umarov : rdx, [rsp+28h]  
<Ubit_> <Ubit_> 00007FFB371C1177 call System.Guid.op_Equality(System.Guid, System.Guid) (07FFB8FD4BE90h)  
<Ubit_> <Ubit_> 00007FFB371C117C test al,al  
<Ubit_> <Ubit_> 00007FFB371C117E jne testlixo.Program.Main(System.String[])+03E2h (
[11:41] Ubit Umarov : ces copies sont aussi inutiles.
[11:41] Ubit Umarov : mais par spec
[11:41] Ubit Umarov : oops c'est l'ancien.
[11:42] Ubit Umarov : 115 : if (ua != ub)
00007FFB371B32C9 vmovdqu xmm0,xmmword ptr [rsp+190h]  
00007FFB371B32D3 vmovdqu xmmword ptr [rsp+0E8h],xmm0  
00007FFB371B32DD vmovdqu xmm0,ptr xmmword [rsp+1A0h]  
00007FFB371B32E7 vmovdqu xmmword ptr [rsp+0D8h],xmm0  
00007FFB371B32F1 mov rcx,ptr qword [rsp+0E8h]  
00007FFB371B32F9 cmp rcx,ptr qword [rsp+0D8h]  
00007FFB371B3301 jne 00007FFB371B3315  
00007FFB371B3303 mov rcx,ptr qword [rsp+0F0h]  
00007FFB371B330B cmp rcx,ptr qword [rsp+0E0h]  
00007FFB371B3313 je 00007FFB371B3317
[11:43] Ubit Umarov : c'est aussi du code JIT stupide... meilleur mais stupide.
[11:43] Ubit Umarov : JIT a détecté qu'il n'était pas nécessaire d'appeler une fonction.
[11:43] Ubit Umarov : mais il n'a pas vu que les copies d'arguments respectifs ne sont pas non plus nécessaires.

Pas d'autres questions ?

Raspberry Pi

[11:32] JayR.Cela @grid.3rdrockgrid.com:8002 : rien de mon côté.
[11:32] Andrew Hellershanks regarde le kayakiste.
[11:33] Andrew Hellershanks : Bonjour, Michael.
[11:33] La Chaise de Bill chuchote : C'est la Chaise de Bill
[11:33] Gavin.Hird @grid.xmir.org:8002 : Salut Michael
[11:33] Michael.Christopher @cc.opensimulator.org:8002 : bonjour !
[11:33] Andrew Hellershanks : Tu ne peux pas t'asseoir là, Michael. Choisis un autre siège.
[11:33] Andrew Hellershanks : C'est ça.
[11:34] Kayaker Magic : C'est bon pour moi cette semaine.
[11:34] Andrew Hellershanks: ok
[11:34] Andrew Hellershanks : Quelqu'un d'autre ?
[11:34] Michael.Christopher @cc.opensimulator.org:8002 : rien de nouveau ici cette semaine, j'attends toujours que le système de remplacement des développeurs arrive :/.
[11:35] Andrew Hellershanks : Le Père Noël est un peu lent dans sa livraison du système, Michael ? ;)
[11:36] Michael.Christopher @cc.opensimulator.org:8002 : lol yea.  Nous avons commandé en décembre et il est juste passé au statut "expédition" aujourd'hui *roulement d'yeux*.
[11:36] Gavin.Hird @grid.xmir.org:8002 : bien, essayez d'acheter un Raspberry PI 8GB quelque part
[11:36] Gavin.Hird @grid.xmir.org:8002 : vous pouvez les obtenir à 3x le prix normal.
[11:36] Andrew Hellershanks : J'ai juste mon 4G Pi 4.
[11:36] Gavin.Hird @grid.xmir.org:8002 : le 4GB est également en rupture de stock partout.
[11:36] Ubit Umarov: and the compare is now compare fo 2 ulongs also inline
[11:37] Gavin.Hird @grid.xmir.org:8002 : Canon demande à ses clients de casser les DRM des toners d'imprimantes car ils ne peuvent plus obtenir les puces pour les toners.
[11:41] Andrew Hellershanks : Bon retour , Jamie
[11:43] Jamie.Jordan @grid.kitely.com:8002 : Merci, j'ai planté je ne sais pas pourquoi.

Compilateurs et problèmes

ANSI K&R

[11:44] Ubit Umarov : je rigole quand des gens intelligents disent qu'il faut faire confiance aux compilateurs.
[11:44] Ubit Umarov : rire aussi
[11:45] Gavin.Hird @grid.xmir.org:8002 : ouais, c'était mieux dans le passé quand on pouvait appuyer sur halt, corriger le code dans le noyau et continuer.
[11:45] Ubit Umarov : aussi == est mauvais
[11:46] Ubit Umarov : cela signifie 2 arguments.
[11:46] Ubit Umarov : alors que auuid.Equals(other) fait 1 seul argument
[11:47] Ubit Umarov : alors oui, les compilateurs sont intelligents et voient tout pour nous... dit-on...
[11:47] Ubit Umarov : LOL
[11:47] Ubit Umarov : peu importe
[11:47] Ubit Umarov : changer le code de bas niveau sur libopenmetaverse
[11:47] Andrew Hellershanks : J'ai eu un problème une fois avec du code. Quand j'ai creusé dans l'assembleur généré, j'ai découvert que le compilateur s'amusait avec le caractère \n dans une chaîne. Il aurait dû le laisser tranquille et il aurait été traduit en caractères utilisés par le système d'exploitation lors de la sortie de la chaîne. Le fabricant du compilateur a déclaré qu'il suivait la norme ANSI. La gestion des \N n'a certainement pas été faite selon K&R.
[11:47] Ubit Umarov : et eux sur une tonne d'endroits où nous les utilisons.
[11:48] Ubit Umarov : oui, les problèmes avec les compilateurs sont aussi vieux que les compilateurs.
[11:48] Ubit Umarov : gcc était très amusant et l'est toujours.
[11:48] Ubit Umarov :(PAS)Très amusant.
[11:49] Ubit Umarov : ceci au moins produit des résultats corrects !!!
[11:49] Ubit Umarov : et JIT a été capable de voir que le processeur peut copier 16 octets sur une seule instruction.
[11:49] Ubit Umarov : pas bas
[11:49] Ubit Umarov : pas mauvais
[11:50] Ubit Umarov : sauf mes fautes de frappe
[11:50] Andrew Hellershanks : :)
[11:50] Ubit Umarov : obtenir un UbitTranslator
[11:50] Ubit Umarov : :p
[11:51] Andrew Hellershanks : nooon... la plupart, sinon tous, d'entre nous savent lire le typon.
[11:51] Ubit Umarov : :)
[11:51] Andrew Hellershanks : Combien de fois ça fait, Jamie ?
[11:51] Michael.Christopher @cc.opensimulator.org:8002 : dont la plupart d'entre nous écrivent en typon ;)
[11:51] Gavin.Hird @grid.xmir.org:8002 : maintenant il fait du sur-place, donc il doit se reconnecter pour effacer cela.

Changements au niveau des scripts et autres

[11:52] Ubit Umarov : j'ai aussi appliqué un maximum de 64k sur osmakenotecard. 
[11:52] Ubit Umarov : "annulé (inversé ?) le ralentissement de osMessageObject. réduit également le ralentissement de osMessageAttachments à (100 + 10 *NumberTargetedPrims) milisecondes. Certaines actions du jeu ont montré un léger impact négatif visible, alors testons..."
[11:52] Andrew Hellershanks : Une limite raisonnable, Ubit. 64k de texte, c'est beaucoup de texte à lire. La plupart des gens ne liraient pas une NoteCard avec autant de texte.
[11:53] Ubit Umarov : un jeu ici sur osg a  montré un impact négatif visible.
[11:53] Gavin.Hird @grid.xmir.org:8002: ok?
[11:53] Ubit Umarov : " * contourné correctement les octets supplémentaires de l'en-tête lludp, même si cela n'a pas été vu jusqu'à présent.
[11:53] Ubit Umarov : c'est plutôt un changement inutile.
[11:54] Ubit Umarov : il se trouve que le protocole LLUDP supporte des en-têtes de paquets plus longs.
[11:54] Ubit Umarov : le code de sortie exploserait si cela se produisait.
[11:54] Ubit Umarov : maintenant je vais juste laisser les octets supplémentaires s'il y en a.
[11:55] Ubit Umarov : je n'ai  vu dans un  viewer aucune utilisation de ces octets.
[11:55] Ubit Umarov : mais c'est une correction de protocole formel.
[11:56] Ubit Umarov : je suppose que cela couvre les changements de code de la semaine dernière.
[11:56] Ubit Umarov : pas beaucoup de rapports de bogues.
[11:56] Ubit Umarov : il y en a un que je ne peux toujours pas repo.

Les viewers

[11:55] Andrew Hellershanks : Jamie vient juste de faire *poof* à nouveau.
[11:56] Andrew Hellershanks : Nous sommes à quelques minutes de la fin de l'heure. Des questions ou des commentaires de dernière minute ?
[11:56] Ubit Umarov: guess that covers last week code changes
[11:56] Andrew Hellershanks : Quelque chose en rapport avec le viewer, Gavin ?
[11:56] Gavin.Hird @grid.xmir.org:8002 : pas vraiment.
[11:57] Andrew Hellershanks : Gavin, j'ai une question concernant le viewer.
[11:57] Gavin.Hird @grid.xmir.org:8002 : LL a dit qu'ils allaient ajouter de nouvelles fonctionnalités qui nécessiteront des changements de viewer cette année.
[11:57] Gavin.Hird @grid.xmir.org:8002 : pas de mention sur quoi
[11:57] Gavin.Hird @grid.xmir.org:8002 : bien sûr.
[11:57] Ubit Umarov : gavin, c'était "pas de nouvelles" :)
[11:57] Ubit Umarov : pour une partie de la réunion
[11:57] Ubit Umarov : Évidemment qu'ils vont ajouter quelque chose au viewer.
[11:58] Gavin.Hird @grid.xmir.org:8002 : les nouvelles fonctionnalités seront des choses comme Bento ou quelque chose comme ça.
[11:58] Ubit Umarov : je parie qu'ils ont aussi une tonne de demandes de fonctionnalités.
[11:58] Gavin.Hird @grid.xmir.org:8002 : changements réels de viewer
[11:58] Andrew Hellershanks: Sometimes when I enter a coordinate for a prim in the Build dialog it goes in as I typed it. Other times it has some extra non-zero digit added. I can force it back to the three decimal places I entered by changing the number then changing it back. Any ideas why that happens?
[11:59] Ubit Umarov: Kb to chair interface issue?
[11:59] Andrew Hellershanks: The viewer is quite capable of handling 3 decimal places. Always a pain when it wants to add some extra digit or two.
[11:59] Gavin.Hird @grid.xmir.org:8002: most likely some floating point inaccuracy
[11:59] Andrew Hellershanks: Yes, but if I enter some other value then enter what I originally entered it usually sticks.
[11:59] Gavin.Hird @grid.xmir.org:8002: I have seen it occasionally in my viewer
[11:59] Andrew Hellershanks: yea. Doesn't happen all the time but it is annoying.
[11:59] Ubit Umarov: yeha some numbers back from float are not as we typed
[12:00] Ubit Umarov: bc have no exact representation
[12:00] Gavin.Hird @grid.xmir.org:8002: which viewer is this?
[12:01] Ubit Umarov: but a round bf display should hide that
[12:01] Andrew Hellershanks: Some won't but if I'm able to put in another number then what I wanted and it sticks that seems to indicate it isn't always a representation issue.
[12:01] Andrew Hellershanks: Gavin, um... I think all the ones I've used.
[12:01] Andrew Hellershanks: Most recently in Firestorm.
[12:01] Kayaker Magic: I've had a problem where the viewer just doesn;t display all the digits in a number, if you scroll the little window left, you will see them
[12:02] Kayaker Magic: So I sometimes get a combination of those invisible digits added to what I type.
[12:02] Gavin.Hird @grid.xmir.org:8002: some of the code that handles formatting is ancient, and even the xml for how the UI is laid out can be different from field to filed depending on when it was originally generated
[12:02] Andrew Hellershanks: Kayaker, that can happen as the window only show so many digits at a time.
[12:03] Andrew Hellershanks: hehe... it should store the numbers in BCD format. No problem. ;)
[12:03] Ubit Umarov: no idea when we will actuall add a new feature to opensim :(
[12:03] Andrew Hellershanks: Did LL say what new features they are planning to add?
[12:04] Ubit Umarov: no andrew  was just a "sure we will have something"
[12:04] Andrew Hellershanks: ok
[12:04] Gavin.Hird @grid.xmir.org:8002: the xml that lays out a field in the UI can be stacked many ways, and depending on what comes before what, it is getting bounced around different functions, so yeah
[12:04] Ubit Umarov: and ll adding a feature does not mean we will :)
[12:04] Gavin.Hird @grid.xmir.org:8002: IDK
[12:05] Andrew Hellershanks: Ubit, of course not.
[12:05] Gavin.Hird @grid.xmir.org:8002: PBR is a big request
[12:05] JayR.Cela @grid.3rdrockgrid.com:8002: PBR ?
[12:05] Andrew Hellershanks: Gavin, Pabst Blue Ribbon??
[12:05] Gavin.Hird @grid.xmir.org:8002: physics based rendering
[12:05] Kayaker Magic: LOL
[12:05] Ubit Umarov: wee seen no feedback about 0.9.2.0 release
[12:06] Ubit Umarov: in fact not even coments
[12:06] Gavin.Hird @grid.xmir.org:8002: https://en.wikipedia.org/wiki/Physically_based_rendering
[12:06] Andrew Hellershanks: Gavin, ok. That makes more sense. Mind you, the coders might prefer some of the other version of PBR.
[12:06] Ubit Umarov: guess many grids where already on it
[12:07] Andrew Hellershanks: Ubit, I wouldn't count on that. A lot had not even upgraded to 0.9 or had been slow to adopt it. I wouldn't expect a fast migration to 0.9.2
[12:07] Gavin.Hird @grid.xmir.org:8002: I also suspect they may launch an xbox version of the viewer
[12:07] Michael.Christopher @cc.opensimulator.org:8002: LL xbox viewer?!?
[12:07] Ubit Umarov: physical base rendering is called "Bob Ross"
[12:07] Gavin.Hird @grid.xmir.org:8002: yeah xbox
[12:07] Ubit Umarov: laso includes "happy little trees" etc
[12:07] Gavin.Hird @grid.xmir.org:8002: which will reguire PBR
[12:08] Andrew Hellershanks: Ubit, :)
[12:08] Gavin.Hird @grid.xmir.org:8002: but we shall see
[12:08] Andrew Hellershanks nod
[12:09] Andrew Hellershanks: Any final thoughts, comments, or questions before we wrap up todays gathering?
[12:09] JayR.Cela @grid.3rdrockgrid.com:8002: Im good :_)
[12:09] Ubit Umarov: whats for dinner?
[12:09] Gavin.Hird @grid.xmir.org:8002: that was 3 hours ago
[12:09] Andrew Hellershanks: Stir Fry
[12:09] Michael.Christopher @cc.opensimulator.org:8002: im good too lol
[12:09] Jamie.Jordan @grid.kitely.com:8002: yeah i'm hungry
[12:10] Kayaker Magic: leftover roast duck
[12:10] Ubit Umarov: Dann and you didn't call me gavin ?
[12:10] Gavin.Hird @grid.xmir.org:8002: hehe
[12:10] Andrew Hellershanks: ok, I'll let you head out in search of food if you haven't already eaten.
[12:10] Gavin.Hird @grid.xmir.org:8002: I have some lunch trays bought on Kitely
[12:10] Andrew Hellershanks: That will do it for today. Thank you all for coming. See you again next week.