Aller au contenu

« Réunion du 12-07-2022 » et « Réunion du 19-07-2022 » : différence entre les pages

De OSWiki
(Différence entre les pages)
Page créée avec « Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-12 =Introduction = [11:04] '''Ubit Umarov''' : ahh le chat d'andrew s'est souvenu de la réunion. [11:04] '''Andrew Hellershanks''' : Je suis au téléphone, [11:04] '''Misterblue Waves''' : nous sommes montés jusqu'à 48c l'été dernier -- les plantes n'ont pas bien résisté. [11:05] '''Ubit Umarov''' : Ohh ok on va taper doucement [11:05] '''Ubit Umarov''' : ouais mais 48... »
 
Page créée avec « Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-19 = Introduction = [11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : il a 2022 à tester [11:12] '''Andrew Hellershanks''' : Bonjour à tous. [11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : cela devrait aussi fonctionner parfaitement. [11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : Bonjour Andrew, humide et gelé. [11:12] '''Andrew Hellershanks''' : J'ai oublié quel jour on était et j'... »
 
Ligne 1 : Ligne 1 :
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-12
Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-19


=Introduction =
= Introduction =


[11:04] '''Ubit Umarov''' : ahh le chat d'andrew s'est souvenu de la réunion.
[11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : il a 2022 à tester


[11:04] '''Andrew Hellershanks'''  : Je suis au téléphone,
[11:12] '''Andrew Hellershanks'''  : Bonjour à tous.


[11:04] '''Misterblue Waves''' : nous sommes montés jusqu'à 48c l'été dernier -- les plantes n'ont pas bien résisté.
[11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : cela devrait aussi fonctionner parfaitement.


[11:05] '''Ubit Umarov''' : Ohh ok on va taper doucement
[11:12] '''Ubit.Umarov @hg.osgrid.org:80''' : Bonjour Andrew, humide et gelé.


[11:05] '''Ubit Umarov'''  : ouais mais 48 ici c'est rare... comme 45 ans rare.
[11:12] '''Andrew Hellershanks'''  : J'ai oublié quel jour on était et j'ai un peu somnolé après le déjeuner.


= Fsassets : instances multiples =
[11:12] '''Vincent Sylvester''' : hehehe
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim]
* [http://opensimulator.org/mantis/my_view_page.php Mantis : suivi de bogues]
* Fsassets : http://opensimulator.org/wiki/FSAssets_Service/fr
* Hash Bukets :  utilisés pour répartir les éléments de données à des fins de tri ou de consultation. L'objectif de ce travail est de pouvoir rechercher un élément spécifique dans un délai plus court.


[11:06] '''Ubit Umarov''' : à propos d'opensim, encore une fois pas grand chose.
[11:13] '''Ubit.Umarov @hg.osgrid.org:80''': "


[11:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Deux changements la semaine dernière, un autre nettoyage de libomv[https://bitbucket.org/opensimulator/libopenmetaverse/src/master/] et un correctif pour fsassets qui n'utilise pas correctement ses dossiers. Je suis repassé à  mono[https://fr.wikipedia.org/wiki/Mono_(logiciel)]  122[https://www.mono-project.com/docs/about-mono/releases/6.12.0.122/]  vendredi et j'attends maintenant ce que cela fait aux régions. Jusqu'à présent, je n'ai pas entendu parler de nouveaux crashs, mais je vais devoir le laisser un peu pour être sûr. Firestorm[https://www.firestormviewer.org/] (FS)  a sorti une nouvelle beta avec le support du statut de la grille rss[https://fr.wikipedia.org/wiki/RSS] maintenant supporté dans OpenSim.
[11:13] '''Ubit.Umarov @hg.osgrid.org:80''' : * Tampa jette un seau d'eau sur Plugh
* Tampa jette des glaçons sur Plugh


[11:06] '''Misterblue Waves''' : même chose pour nous -- il est rare de dépasser les 100F(https://fr.wikipedia.org/wiki/Degr%C3%A9_Fahrenheit) (38°C).
[11:13] '''Ubit.Umarov @hg.osgrid.org:80''': "


[11:06] '''Ubit Umarov''' : j'ai fait un petit commit[https://git-scm.com/docs/git-commit/fr] lié à un flag fsassets.
[11:13] '''Ubit.Umarov @hg.osgrid.org:80''': ( at irc)


[11:07] '''Ubit Umarov''' : ou une option, en fait pas si bonne...
= Changements de la semaine=
* [http://opensimulator.org/viewgit/?a=shortlog&p=opensim Journal des commits OpenSim]
* [http://opensimulator.org/mantis/my_view_page.php Mantis : suivi de bogues]
* [http://opensimulator.org/wiki/FSAssets_Service/fr Fsassets ]
* localiser API LSL dans le code source : OpenSim-0.9.2.1/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs


[11:07] '''Ubit Umarov'''  : pour exécuter plusieurs instances de fsassets, cela ne fonctionnera pas.
[11:13] '''Vincent Sylvester'''  : Pas beaucoup de changements cette semaine, quelques corrections de fsassets et une autre chose mineure dans libomv[https://bitbucket.org/opensimulator/libopenmetaverse/src/master/] en essayant de comprendre pourquoi ça pouvait planter.


[11:07] '''Ubit Umarov'''  : à moins d'avoir un disque réseau comme stockage [https://fr.wikipedia.org/wiki/Serveur_de_stockage_en_r%C3%A9seau](NAS)
[11:14] '''Vincent Sylvester'''  : Jusqu'à présent, je n'ai pas entendu parler d'autres plantages après le retour de mono[https://fr.wikipedia.org/wiki/Mono_(logiciel)] à la version 122[https://www.mono-project.com/docs/about-mono/releases/6.12.0.122/] et les journaux sont vides également.


[11:07] '''Andrew Hellershanks''' : .0
[11:16] '''Andrew Hellershanks''' : Bonjour, Kayaker.


[11:08] '''Ubit Umarov'''  : fsasset ne fait qu'écrire des choses sur un disque, il n'a aucune idée de ce que sont les instances multiples.
[11:17] '''Vincent Sylvester'''  : En parcourant l'api[https://fr.wikipedia.org/wiki/Interface_de_programmation] lsl [https://wiki.secondlife.com/wiki/LSL_Portal] pour ajouter plus de try catch[https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_d%27exceptions] j'ai trouvé quelques petites choses pour lesquelles je pourrais préparer des patches si je peux me rappeler où elles étaient exactement.


[11:08] '''Ubit Umarov'''  : les métadonnées[https://fr.wikipedia.org/wiki/M%C3%A9tadonn%C3%A9e] dépendent de mysql[https://fr.wikipedia.org/wiki/MySQL] qui fait le truc du multi serveur, ça ne semble pas très bon non plus.
[11:17] '''Kayaker Magic'''  : Bonjour à tous. Est-ce que j'ai manqué beaucoup de choses dans le premier quart d'heure ?


[11:09] '''Ubit Umarov'''  : donc, pas si utile que ça cette option...
[11:17] '''Andrew Hellershanks'''  : Kayaker, non, tu n'as rien manqué.


[11:09] '''Ubit Umarov'''  : hmm quel était l'autre ? libomv ?
[11:20] '''Andrew Hellershanks'''  : En ce qui concerne un autre élément de la semaine dernière [http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-12/fr#Script_:_erreur_out_of_heap], j'ai résolu les causes des exceptions que j'avais la semaine dernière avec un objet scriptés.


[11:10] '''Ubit Umarov'''  : hmm je suppose que c'est aussi une chose mineure.
[11:20] '''Andrew Hellershanks'''  : Le problème de la référence nulle pendant la compilation a été résolu en mettant à jour le code de la grille vers 0.9.2.1.[http://opensimulator.org/wiki/0.9.2.1_Release/fr]


[11:10] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Est-ce que le truc de fsassets est principalement un verrouillage de fichier ou quel est le problème ?
[11:22] '''Andrew Hellershanks'''  : L'erreur HeapException a été résolue en faisant glisser l'objet de l'inventaire vers le sol, en recompilant les scripts, puis en ramenant l'objet dans l'inventaire. Après cela, je n'ai plus eu d'exception de tas [https://fr.wikipedia.org/wiki/Tas_(informatique)] en faisant glisser l'objet vers le sol.


[11:11] '''Ubit Umarov'''  : ah oui... j'utilisais une exception c# [https://fr.wikipedia.org/wiki/C_sharp] générique pour signaler une mauvaise chaîne de caractères lors de l'analyse.
[11:23] '''Andrew Hellershanks'''  : Quand je creusais encore dans le code de la grille pour déterminer la cause du problème de référence nulle, j'ai vu une incohérence dans la vérification du tas qui me laisse encore perplexe.


[11:12] '''Kayaker Magic'''  : Un problème avec plusieurs fsassets est qu'il y a peu de chance que deux d'entre eux génèrent le même UUID[https://fr.wikipedia.org/wiki/Universally_unique_identifier] en même temps.
[11:24] '''Andrew Hellershanks'''  : Pour le test local pour voir s'il y a encore du tas disponible, un usage est ajouté avant le texte mais pour le ArraysHeap, il n'y en a pas.


[11:12] '''Ubit Umarov''' : changé en FormatException pour correspondre à ce que .net[https://fr.wikipedia.org/wiki/.NET_Framework] guid [https://fr.wikipedia.org/wiki/Globally_unique_identifier]  fait.
[11:24] '''Ubit.Umarov @hg.osgrid.org:80''' : as-tu regardé le code actuel ?


[11:12] '''Ubit Umarov'''  : fsassets ne génère pas d'uuids.
[11:25] '''Vincent Sylvester'''  : Je ne me souviens pas exactement quand, mais il y a eu des changements assez récents dans le calcul du tas après qu'un rapport de mantis ait
signalé qu'il était erroné.


[11:12] '''Kayaker Magic'''  : OK, alors plusieurs Robusts[http://opensimulator.org/wiki/ROBUST/fr].
[11:25] '''Vincent Sylvester'''  : Cela fait peut-être deux mois.


[11:13] '''Ubit Umarov''' : le problème avec des robusts multiples est que vous avez besoin d'un stockage partagé.
[11:27] '''Ubit.Umarov @hg.osgrid.org:80''' : Oui.


[11:13] '''Ubit Umarov'''  : fsasset n'est pas prévu pour cela.
[11:27] '''Andrew Hellershanks'''  : Je pensais l'avoir fait, mais je vais devoir regarder à nouveau. Je dois regarder le code sur une autre machine pour me rappeler quel fichier contient les routines qui font le contrôle d'utilisation.


[11:14] '''Ubit Umarov'''  : chaque instance va juste lire et écrire depuis son propre disque.
[11:28] '''Vincent Sylvester'''  : Essaie le dernier master dev pour voir les résultats que tu obtiens avec ça, ça peut être déjà corrigé, sinon, yay plus de corrections sur le chemin


[11:14] '''Ubit Umarov'''  : quelque chose qui ne fonctionnera pas du tout, à moins que ce soit un disque réseau partagé spécial.
[11:28] '''Andrew Hellershanks'''  : Vincent, le problème est déjà résolu depuis la 0.9.2.1, il n'est donc pas nécessaire que je vérifie le master.


[11:14] '''Ubit Umarov'''  : ou on peut faire tourner tout cela sur la même machine, ce qui n'est pas très utile non plus.
= Script : llSetPrimitiveParams avec  PRIM_POINT_LIGHT  =
[11:29] '''Andrew Hellershanks'''  : C'est l'heure des questions-réponses. :)  Jagga, tu as quelques questions.


[11:15] '''Ubit Umarov'''  : sur ce point fsassets est pire que les  assets[http://opensimulator.org/wiki/Assets] normaux, qui au moins dépendent uniquement de mysql/maria [https://fr.wikipedia.org/wiki/MariaDB].
[11:29] '''Jagga Meredith'''  : Je fais une zone de cours sur Aviworlds [https://opensimworld.com/hop/83985]. Je fais un tutoriel sur le scripting.


[11:16] '''Ubit Umarov'''  : les multi-instances fsassets qui ont fonctionné, ont été installée séparant quelques bits de l'UUID de l'asset.
[11:30] '''Selby.Evans @grid.kitely.com:8002'''  est entré dans la distance de dessin (25,44 m).


[11:16] '''Ubit Umarov'''  : a t-on toujours du code pour cela, je n'en suis pas sûr.
[11:30] '''Selby.Evans @grid.kitely.com:8002'''  est entré dans la région (25.44 m).


[11:17] '''Ubit Umarov'''  : bien sûr, cela ne fonctionne pas très bien avec le type guid "aléatoire" que nous utilisons.
[11:30] '''Jagga Meredith'''  : Si cela vous intéresse de jeter un coup d'œil, voici l'olandmark


[11:17] '''Ubit Umarov'''  : pas si aléatoire que cela
[11:30] '''Selby.Evans @grid.kitely.com:8002'''  est entré dans la zone de chat (10.81 m).


[11:18] '''Ubit Umarov'''  : c'est pourquoi osgrid[https://www.osgrid.org/] fonctionne avec ses propres assets propriétaires...
[11:30] '''Jagga Meredith'''  : deux problèmes à résoudre.


[11:18] '''Ubit Umarov'''  : j'utilisais une variante de fsassets, qui faisait aussi de la fumée si on utilisait plus d'une instance.
[11:30] '''Ubit Umarov'''  : bienvenue  selby.Evans


[11:18] '''Ubit Umarov'''  : maintenant j'utilise quelque chose d'autre.
[11:30] '''Selby.Evans @grid.kitely.com:8002'''  : bonjour à tous.
== Problèmes avec les paramètres ==
Voir également les pages du wiki en anglais qui sont plus souvent mises à jour.
* '''llRequestInventoryData''' [https://wiki.secondlife.com/wiki/LlRequestInventoryData/fr] : Demande des informations sur des objets de l'inventaire. Quand la donnée est disponible, l'évènement dataserver est déclenché.
* '''INVENTORY_LANDMARK''' [https://wiki.secondlife.com/wiki/INVENTORY_LANDMARK/fr]:  Utilisé avec les fonctions d'inventaire et spécifie les éléments d'inventaire de type LANDMARK qui seront récupérés par la fonction.
* '''Dataserver'''[https://wiki.secondlife.com/wiki/Dataserver/fr] : évènement déclenché lorsque le script reçoit des données asynchrones.
* '''llSetPrimitiveParams''' [https://wiki.secondlife.com/wiki/LlSetPrimitiveParams/fr] : Permet de modifier les paramétres de la prim en appliquant les règles indiquées.
* '''PRIM POINT LIGHT''' [https://wiki.secondlife.com/wiki/PRIM_POINT_LIGHT/fr] :  PRIM_POINT_LIGHT est utilisé pour paramètrer les effets de lumière des prims.  


[11:19] '''Ubit Umarov''' : bien sûr, il n'y a pas de problème si vous avez une bonne machine NAS et un réseau 100Gbit ;)
[11:30] '''Jagga Meredith''' :  
    requestid = llRequestInventoryData( llGetInventoryName( INVENTORY_LANDMARK, 0 ) );
    dataserver(key id, string data)
    {
        if (id == requestid)
        {    llSay(0,(data);


[11:19] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Etant donné la simplicité de ce que cela doit faire au final, il est plus facile d'écrire avec quelque chose d'autre qui supporte le verrouillage des fichiers de manière appropriée, je suppose. Idéalement directement en C[https://fr.wikipedia.org/wiki/C_(langage)]pour obtenir la plus grande vitesse.
[09:57] '''dataserver demo 1''' : LOOKING UP Orientation


[11:20] '''Ubit Umarov''' : le verrouillage des fichiers semble échouer sous linux [https://fr.wikipedia.org/wiki/Linux].
[09:57] '''dataserver demo 1''' : <122.368202, 1316115418448010.000000, 30.213690>


[11:21] '''Ubit Umarov''' : ce code fsassets exécute aussi plusieurs instances sur un seul robust...
[11:30] '''Andrew Hellershanks''' : Bonjour, Selby.


[11:21] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ce n'est pas intégré, donc le langage ou le code doit le gérer lui-même.
[11:31] '''Jagga Meredith''' murmure : la deuxième valeur est bancale.


[11:21] '''Ubit Umarov'''  : une comme instance principale des assets, les autres comme esclaves qui s'y connectent.
[11:31] '''Andrew Hellershanks'''  : C'est certainement le cas.


[11:21] '''Misterblue Waves'''  : les GUIDs ne sont pas assez aléatoires ou le contenu n'est pas unique ?
[11:31] '''Jagga Meredith'''  : Orientation de l'île, Orientation de l'île (122, 136, 30)


[11:22] '''Ubit Umarov'''  : il y avait toujours un problème de verrouillage, car plusieurs threads de maintenance pouvaient être déclenchés dans ce cas...
[11:32] '''Jagga Meredith'''  : aussi...


[11:22] '''Ubit Umarov''' : ça devrait être ok maintenant...
11:32] '''Jagga Meredith''' :  
  {// [integer boolean,vector couleur,float intensity,float rayon,float falloff]
    llSetPrimitiveParams([PRIM_POINT_LIGHT, toggle, colour, intensity, size, falloff]);


[11:23] '''Ubit Umarov'''  : mes commentaires ne concernaient que les personnes qui essayaient de faire tourner plusieurs instances de service d'assets sur différentes machines...
[11:32] '''Jagga Meredith'''  : la taille ne semble pas avoir d'effet.


[11:23] '''Ubit Umarov''' : comme je l'ai dit, ça ne marche pas, sauf s'ils utilisent un disque partagé sur le réseau.
[11:33] '''Andrew Hellershanks''' Je pense que quelqu'un joue avec les paramètres de windlight (https://wiki.firestormviewer.org/fs_windlight_fr?s[]=windlight][https://cogito.no-ip.info/cogito/OSWiki/index.php/Projet_d%27am%C3%A9lioration_de_l%27environnement_EEP].


[11:24] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ou quelque chose qui émule le comportement de ce type de disque, je suppose.
[11:33] '''Andrew Hellershanks''' : Jagga, as-tu déposé une mantis pour ce premier problème ?


[11:24] '''Ubit Umarov'''  : Oui
[11:33] '''Jagga Meredith'''  : non, il y a une prim en face de vous.


[11:24] '''Ubit Umarov'''  : alors bien sûr il faut comparer la latence ajoutée à la latence d'un seul...
[11:33] '''Jagga Meredith'''  : non.


[11:25] '''Ubit Umarov'''  : sur ce point, les caches de région et de viewers sont fondamentaux.
[11:33] '''Jagga Meredith'''  : Je viens de le découvrir.


[11:26] '''Ubit Umarov'''  : dans les cas normaux, seuls les caches des régions devraient être utilisés.
[11:35] '''Andrew Hellershanks'''  : L'autre question est de savoir quelle version du code Aviworlds utilise. Il est possible qu'ils aient modifié quelque chose qui a entraîné cette erreur. Il devrait être assez facile de tester le comportement dans le master.


[11:26] '''Ubit Umarov'''  : dans le cas d'utilisateurs qui passent le plus de temps sur quelques régions, aussi les caches de viewer.
[11:35] '''Jagga Meredith'''  : j'ai essayé ici.


[11:27] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : D'après ce que j'enregistre sur disk i/o[https://fr.wikipedia.org/wiki/Entr%C3%A9es-sorties], je vois rarement plus de quelques mbits lorsque les assets sont déplacés, ce n'est donc pas une charge importante pour atteindre des centaines de gigaoctets.
[11:35] '''Jagga Meredith''' : même problème.


[11:27] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le plus gros problème est de sauvegarder des millions de fichiers dans des milliers de répertoires.
[11:35] '''Andrew Hellershanks''' : ok, bon à savoir.


[11:28] '''Ubit Umarov'''  : beaucoup de gens ont même oublié que fsassets utilise mysql avec des fichiers disques.
[11:35] '''Ubit Umarov'''  : où est le point prim ?


[11:28] '''Ubit Umarov'''  : et ont perdu les fichiers du disque :(
[11:36] '''Jagga Meredith'''  : dans une sphère.


[11:28] '''Kayaker Magic'''  : oops ! Je déteste quand ça arrive !
[11:36] '''Ubit Umarov'''  : Je veux dire ici.


[11:28] '''Misterblue Waves'''  : quelque chose comme S3[https://fr.wikipedia.org/wiki/Amazon_S3] serait mieux -- pas AWS[https://fr.wikipedia.org/wiki/Amazon_Web_Services] mais l'une des interfaces compatibles des hash buckets modernes.
[11:36] '''Ubit Umarov'''  : je suis trop paresseux pour faire mon propre test :p


[11:28] '''Ubit Umarov'''  : c'est malheureusement arrivé plusieurs fois.
[11:37] '''Andrew Hellershanks'''  : hehe


= Les bases de données =
[11:37] '''Ubit Umarov''' : je l'aime bien.
* Documentation OpenSim de la Base de données  : http://opensimulator.org/wiki/Database:Documentation (en)
* MariaDB : https://fr.wikipedia.org/wiki/MariaDB
* Mysql : https://fr.wikipedia.org/wiki/MySQL
* MongoDB : https://fr.wikipedia.org/wiki/MongoDB
* sql : [https://sql.sh/]
* Collation : énumération de signes typographiques avec leurs équivalences, afin d’en déduire le comportement des chaînes de caractères notamment dans les opérations de comparaison et de tri spécifiques à une langue.— (Frédéric Brouard, Rudi Bruchez, Christian Soutou, SQL, Pearson Education France, 13 juillet 2012)[https://fr.wiktionary.org/wiki/collation]


[11:29] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il devrait probablement utiliser encore plus de sql pour cela, pour des choses comme les notecards qui enregistrent leur description dans des assets ce qui implique que, même si elles sont vides, le hash[https://fr.wikipedia.org/wiki/Fonction_de_hachage] est toujours différent, ce qui crée des tonnes d'assets de notecards vides.
[11:37] '''Jagga Meredith'''  : je te l'ai donné.


[11:30] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : AWS, c'est de la camelote hors de prix, vous paierez plus cher pour l'utiliser que pour un simple serveur matériel décent et quand ils perdent vos données, vous êtes foutu.
[11:37] '''Jagga Meredith''' : ou bien tu peux t'en procurer un exemplaire.


[11:30] '''Ubit Umarov'''  : plusieurs grandes grilles fonctionnent bien.
[11:37] '''Ubit Umarov'''  : ou obtenir des pouvoirs divins


[11:30] '''Ubit Umarov'''  : quelques mb avec leurs propres solutions
[11:37] '''Jagga Meredith'''  : heh


[11:31] '''Ubit Umarov'''  : Je n'ai jamais aimé  fsassets.
[11:38] '''Jagga Meredith'''  : tu dois être propriétaire pour que le menu fonctionne.


[11:31] '''Misterblue Waves''' : d'accord pour AWS, mais beaucoup d'autres fournisseurs proposent un stockage compatible S3 (DigitalOcean[https://en.wikipedia.org/wiki/DigitalOcean](en), ...)
[11:38] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le dataserver affiche deux réponses comme ça, quel est exactement le problème ?


[11:31] '''Ubit Umarov'''  : bien sûr mysql est peut-être un mauvais choix.
[11:38] '''Jagga Meredith'''  : c'est une démonstration de l'utilisation de la fonction.


[11:31] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je suis en train de jouer avec l'idée d'explorer toutes les notecards à la recherche de lignes <data> vides et de les détruire ou de mettre leur hash à une seule place.
[11:39] '''Jagga Meredith''' : le paramètre size ne semble rien faire.


[11:31] '''Ubit Umarov'''  : inworldz a utilisé un autre moteur de base de données, si je me souviens bien.
[11:39] '''Jagga Meredith'''  : ou je l'utilise mal.


[11:32] '''Ubit Umarov'''  : un truc plus direct de type clé et valeur.
[11:39] '''Ubit Umarov'''  : float big = 75.0 ;


[11:32] '''Ubit Umarov'''  : je pense qu'il n'y a même pas de sql.
[11:39] '''Ubit Umarov'''  : max est 20


[11:32] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Pour certaines choses, quelques structures de données dans OpenSim, des choses comme mongodb  fonctionneraient, potentiellement  mieux que sql, mais alors on a un autre système de base de données à maintenir et à gérer aussi, donc un compromis...
[11:39] '''Jagga Meredith''' : ah


[11:33] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Pour les données des avatars et des groupes, cela pourrait être plus rapide, mais cela implique un tout nouveau connecteur de base de données, etc.
[11:39] '''Ubit Umarov''' : https://wiki.secondlife.com/wiki/PRIM_POINT_LIGHT


[11:33] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : c'est déjà une douleur de maintenir ceux que nous avons
[11:40] '''Jagga Meredith''' : merci.


[11:33] '''Ubit Umarov'''  : Nos bases de données sont un désastre.
[11:40] '''Ubit Umarov'''  : float small = 30.0 ;


[11:33] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Certaines, pas toutes
[11:40] '''Jagga Meredith''' : ça va le faire.


[11:33] '''Ubit Umarov'''  : un bon exemple de comment rendre les choses aussi lentes que possible.
[11:40] '''Ubit Umarov'''  : aussi faux


[11:33] '''Ubit Umarov'''  : region db[http://opensimulator.org/wiki/Regions_(database_table)] ... duhhh quel gaspillage
[11:41] '''Ubit Umarov'''  : maintenant je vois 15 sur big


[11:34] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : L'inventaire pourrait également bénéficier d'une base de données de type document plutôt que de grandes tables.
[11:41] '''Ubit Umarov''' : oups c'est parti lol


[11:34] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tout ce qui est lié à un seul utilisateur ou uuid, je suppose.
[11:41] '''Jagga Meredith''' : je vais le corriger.


[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Inutile pour les assets, il faut une vraie table avec des clés et des index à ce niveau.
[11:42] '''Jagga Meredith''' : Erreur RTFM[https://fr.wikipedia.org/wiki/RTFM_(expression)]


[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : En y réfléchissant, je voulais vérifier si le jeu de caractères et la collation avaient un impact sur les performances des groupes, comme c'est le cas pour les données de griduser[http://opensimulator.org/wiki/GridUser].
[11:42] '''Ubit Umarov''' : mais c'était le problème.


[11:35] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il semble que le regroupement de ces éléments soit un échec dans mariadb.
[11:42] '''Ubit Umarov''' : valeurs hors limites


[11:36] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Cela nécessite  des éléments uniformes pour accélérer inner join [https://sql.sh/cours/jointures/inner-join].
[11:42] '''Ubit Umarov''' : non le lm (landmark : repère)


[11:36] '''Ubit Umarov'''  : il semble que mariadb est défaillante pour tout ce qui est volumineux.
[11:42] '''Ubit Umarov'''  : pas sûr qu'on puisse le lire comme ça.


[11:36] '''Ubit Umarov'''  : même mysql
[11:42] '''Ubit Umarov'''  : mais qui sait :)


[11:36] '''Ubit Umarov'''  : seuls quelques forks de mysql tiennent, m'a-t-on dit.
==Documentation LSL et OSSL ==
* Wiki LSL : https://wiki.secondlife.com/wiki/LSL_Portal
* Digigrids -- fonctions LL : http://digigrids.free.fr/wiki/index.php?title=Scripting/Fonctions/LlFonctions
* OSSL http://opensimulator.org/wiki/OSSL_Implemented


[11:37] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le développement s'est accéléré ces derniers temps, alors peut-être que cela va changer positivement à l'avenir.
[11:42] '''Jagga Meredith''' : c'est ce que dit le Wiki, mais le Wiki est horriblement dépassé et seuls les Linden peuvent le mettre à jour apparemment.


[11:37] '''Misterblue Waves'''  : J'ai utilisé MariaDB avec succès pour de petits déploiements (c'est ce que j'utilise pour mes régions installée avec Docker [https://fr.wikipedia.org/wiki/Docker_(logiciel)]).
[11:43] '''Jagga Meredith'''  : avons-nous notre propre wiki ?


= Script tueur de région =
[11:43] '''Ubit Umarov'''  : seulement avec ossl.


[11:36] '''Kayaker Magic'''  : J'ai quelques trucs mis en place pour OpenSim Fest, et une des régions a cessé de fonctionner. Les scripts ont gelé, je n'avais pas de droit de compiler mes propres scripts ou à recharger plus d'objets. Shelenn m'a dit que c'était dû à un bug d'OpenSim que Ubit connaissait déjà. Quel bug était-ce ?
[11:43] '''Kayaker Magic'''  : Quelqu'un a une copie de l'ancien wiki de LSL.


[11:37] '''Ubit Umarov'''  : aucune idée
[11:43] '''Andrew Hellershanks'''  : Jagga, oui mais pas pour des informations sur les fonctions de LSL autres que celles qui ont été implémentées.


[11:37] '''Ubit Umarov'''  : ils utilisent une chose appelée opensim-ngc (https://github.com/OpenSim-NGC][https://fr.wikipedia.org/wiki/Fork_(d%C3%A9veloppement_logiciel)].
[11:43] '''Jagga Meredith'''  : ok.


[11:37] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si on  surcharge une région en provoquant trop de mises à jour de scènes, la file d'attente pour cela se remplit et le traitement s'arrête complètement.
[11:43] '''Kayaker Magic''' : Donc nous aurons quelque chose quand LL supprimera les leurs.


[11:37] '''Ubit Umarov'''  : qui, bien sûr, prétend être meilleur que le projet de base (le noyau).
[11:43] '''Jagga Meredith'''  : oui.


[11:38] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il n'y a pas grand chose à faire à ce niveau.
[11:43] '''Ubit Umarov''' : Digi en a un.


[11:38] '''Ubit Umarov'''  : donc tu dois leur demander :)
[11:44] '''Ubit Umarov'''  : le vieux wiki de Sl.


[11:38] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : la file d'attente de mise à jour des scènes a une taille fixe, une fois pleine, elle est pleine et meurt.
[11:44] '''Ubit Umarov''' : une copie de celui-ci


[11:38] '''Ubit Umarov'''  : Je ne me souviens pas d'un tel problème...
[11:44] '''Andrew Hellershanks'''  : Il y avait un autre wiki sur les fonctions LSL autre que celui de LL mais je ne sais pas s'il existe encore.


[11:39] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : J'ai vu cela plusieurs fois, on m'a toujours dit de supprimer certains scripts lourds, des timers [https://wiki.secondlife.com/wiki/Timer/fr] et autres, et il n'y a plus de problèmes.
[11:44] '''Kayaker Magic''' : Oui, il n'est plus à jour mais c'est mieux que rien.


[11:39] '''Ubit Umarov'''  : quelles mises à jour de la scène ??
[11:44] '''Jagga Meredith'''  : beaucoup d'exemples douteux, orthographe/grammaire, trucs cassés.


[11:39] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Celles qui sont générées par les scripts, les avatars, etc. J'ai oublié le nom exact, mais ce ne sont pas les scripts qui meurent, ce sont les mises à jour des scènes.
[11:45] '''Ubit Umarov''' : http://opensimulator.org/wiki/Scripting_Documentation


[11:39] '''Ubit Umarov'''  : tu imagines encore des choses vincent :p
[11:45] '''Ubit Umarov'''  : le nôtre avec ossl


[11:39] '''Ubit Umarov''' : la file d'attente des événements[https://wiki.secondlife.com/wiki/Category:LSL_Events/fr] ?
[11:46] '''Ubit Umarov''' : http://opensimulator.org/wiki/OSSL_Implemented


[11:40] '''Ubit Umarov'''  : ces auto limites... n'arrêtent pas les choses.
[11:46] '''Jagga Meredith'''  : yup - on l'utilise beaucoup.


[11:40] '''Ubit Umarov''' : bien sûr, un script peut toujours geler une région de plusieurs manières...
[11:46] '''Ubit Umarov''' : http://opensimulator.org/wiki/YEngine


[11:40] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu peux tester si c'est ça en tapant des commandes dans la console, si ça échoue avec une erreur, peu importe ce que tu tapes, tu sais que c'est bloqué.
[11:46] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La première réponse de dataserver est l'événement réel qui a été déclenché, la seconde est les données qui ont été retournées.


[11:41] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La réduction de la charge des scripts résout généralement ce problème.
[11:47] '''Andrew Hellershanks''' : bbiba


[11:41] '''Kayaker Magic''' : Après qu'ils l'aient "corrigé", j'ai pu ajouter plus d'objets scriptés.
[11:47] '''Object''' : Script en cours d'exécution


[11:41] '''Ubit Umarov''' : Je ne me souviens pas de ce problème sur le noyau... possible... mais je ne m'en souviens pas...
[11:48] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ou quelle est la question sur le code du dataserver ?


[11:42] '''Ubit Umarov''' : Je veux dire un problème spécifique.
[11:48] '''Object''' : Script en cours d'exécution


[11:42] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu dois charger les régions assez lourdement pour que cela se produise. La plupart restent bien en dessous de cela ou écrivent des scripts qui ne provoquent pas autant de mises à jour.
== Deuxième question : deuxième valeur bancale ==
[11:49] '''Jagga Meredith''' : pourquoi la deuxième valeur est bancale ?


[11:43] '''Ubit Umarov''' : Je me souviens de régions complètement à plat.
[11:49] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Parce que c'est la coordonnée totale de la région où on se trouve.


[11:43] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Cela n'arrive pas assez souvent pour justifier un examen approfondi. Il est plus facile d'écrire de meilleurs scripts.
[11:49] '''Jagga Meredith''' : Orientation Island, Orientation Island (122, 136, 30)


[11:43] '''Ubit Markov''' : simplement à cause d'un simple script de LED.
[11:49] '''Object''' : Script en cours d'exécution


[11:43] '''Ubit Umarov''' : nous ne pouvions plus nous tp dans la région ou les régions voisines :)
[11:49] '''Object''': <18446744073709400000.000000, 11437119952138600.000000, 37.792831>


[11:44] '''Ubit Umarov''' : un script similaire fera toujours la même chose.
[11:50] '''Jagga Meredith''' : [09:57] '''dataserver demo 1''' : <122.368202, 1316115418448010.000000, 30.213690>


[11:44] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je n'ai vu cela que sur une région avec environ 90k prims et plus de 8000 scripts.
[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le vecteur[https://wiki.secondlife.com/wiki/Category:LSL_Vector/fr] de région est celui de cette même région.


[11:44] '''Ubit Umarov'''  : changer l'éclat ou la couleur etc. d'une prim est une mise à jour complète.
[11:50] '''Ubit Umarov'''  : ouais, de belles valeurs lol


[11:44] '''Ubit Umarov'''  : cette région avait peut-être 1000 LEDs :)
[11:50] '''Andrew Hellershanks'''  : Je suis de retour.


[11:45] '''Ubit Umarov''' : nous avons tous vu ce problème à Noël... avec de mauvaises lumières de Noël.
[11:50] '''Kayaker Magic''' : RegionCorner+region locale ?


[11:45] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : On pourrait probablement trouver la file d'attente et déterminer quelle est la taille maximale et ajouter un débogage pour alerter lorsqu'elle est proche du plein.
[11:50] '''Kayaker Magic''' : Regioncorner*256+region locale ?


[11:45] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je n'ai jamais regardé où c'était.
[11:50] '''Ubit Umarov''' : je ne me souviens pas de ce qu'ils utilisent.


[11:46] '''Ubit Umarov''' : tu es encore là avec une file d'attente... quelle file d'attente ??
[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La description du vecteur retourné dans l'événement dataserver ci-dessus implique que la valeur est une coordonnée de région ; elle représente en fait la distance en mètres de l'emplacement du point de repère par rapport à <0,0,0> dans la région dans laquelle le script s'exécute. Pour un point de repère pointant vers un emplacement dans la région actuelle, c'est la même chose qu'une coordonnée de région ; cependant, lorsqu'il est utilisé avec un point de repère pointant vers une région différente, les valeurs x et y du vecteur peuvent être assez grandes (et/ou négatives). Le vecteur peut être utilisé pour calculer une coordonnée globale (comme ci-dessus) ou la distance d'un point de repère par rapport à l'objet contenant le script dans la région actuelle ou sur toute la grille.


[11:46] '''Ubit Umarov'''  : il y en a plusieurs.
[11:50] '''Ubit Umarov'''  : il est possible que ce soit global, oui.


[11:46] '''Kayaker Magic'''  : Après avoir vu quelques mauvais scripts de lumières de Noël, j'ai écrit des scripts ZERO LAG qui utilisent des animations de textures pour clignoter [https://wiki.secondlife.com/wiki/LlSetLinkTextureAnim].
[11:51] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ne pas oublier la section avertissements :)


[11:46] '''Ubit Umarov'''  : et aucun problème.
[11:51] '''Ubit Umarov'''  : oui, cela ressemble à des coordonnées globales.


[11:47] '''Ubit Umarov'''  : oui le clignotement doit être fait avec une animation de texture intelligente.
[11:51] '''Andrew Hellershanks'''  : C'est ce que je pensais aussi.


[11:48] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Quand un script déplace une prim, cela est ajouté à une file d'attente comme une mise à jour de la scène, généralement traitée presque immédiatement, sauf si on a beaucoup de ces mises à jour.
[11:52] '''Ubit Umarov''' : Pour lbsa[https://opensimworld.com/hop/75039], x est 10402


[11:48] '''Ubit Umarov'''  : il s'agit d'un vieux problème, également chez SL.
[11:52] '''Ubit Umarov'''  : nahh ne correspondra pas lol


[11:48] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je ne suis pas sûr de l'endroit du code où cela se trouve, je ne l'ai jamais beaucoup étudié.
[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il s'agit d'une valeur relative entre le point de départ et le point d'arrivée, et non de la coordonnée de la région globale, donc cela vous indique simplement la distance à l'autre région en x et y.


[11:48] '''Ubit Umarov''' : lludp[http://opensimulator.org/wiki/LLUDP_ClientStack/fr] met à jour la queue par utilisateur ??
[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Vous devez récupérer les coins de la région pour calculer les coordonnées globales.


[11:49] '''Ubit Umarov''' : c'est  lourd, c'est un problème majeur actuellement.
[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : région actuelle + coordonnées du point de repère (landmark)


[11:49] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Possible, tout ce que je sais c'est que c'est quelque chose qui se remplit et qui surcharge en arrêtant le traitement des mises à jour parce qu'on peut toujours se promener et chatter, mais les scripts apparaissent comme s'ils étaient arrêtés.
[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il y a un script d'exemple sur le wiki LSL pour cela.


[11:49] '''Ubit Umarov'''  : ils ne se remplissent pas.
[11:53] '''Jagga Meredith'''  : ok


[11:49] '''Ubit Umarov''' : ils remplissent la RAM de ta machine :p
[11:53] '''Ubit Umarov''' : c'est 2,667,520 m


[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Comme cela ne se produit pas immédiatement et seulement lorsqu'il y a plus de scripts et de personnes sur la région, cela me faire dire que c'est un traitement  lié à la mises à jour de  la scène.
[11:54] '''Jagga Meredith''' : toujours étrange que peu importe où je l'essaie, c'est toujours la deuxième valeur qui est bizarre.


[11:50] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : En général, il suffit d'écrire de meilleurs scripts et de réduire la charge pour résoudre ce problème.
[11:54] '''Jagga Meredith''' : les deux autres valeurs sont correctes.


[11:50] '''Ubit Umarov'''  : les scripts doivent être bons.
[11:55] '''Jagga Meredith'''  : je vais essayer de faire fonctionner Visual Studio[https://fr.wikipedia.org/wiki/Microsoft_Visual_Studio] et de le trouver par moi-même.


[11:51] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : On peut avoir une région avec des centaines de milliers de prims et un seul script qui la tue.
[11:55] '''Ubit Umarov''' : ligne 5033 de LSL_Api.cs  dans le code source de OpenSim-0.9.2.1
      if(lm != null)
        {
            double rx = (lm.RegionHandle >> 32) - World.RegionInfo.WorldLocX + (double)lm.Position.X;
            double ry = lm.RegionHandle - World.RegionInfo.WorldLocY + (double)lm.Position.Y;
            LSL_Vector region = new LSL_Vector(rx, ry, lm.Position.Z);
            reply = region.ToString();
        }
[11:56] '''Ubit Umarov''' : errr


[11:51] '''Ubit Umarov'''  : un seul mauvais script peut arrêter une région, comme je l'ai dit.
[11:56] '''Andrew Hellershanks'''  : Pourquoi ce code ne fait pas le >> 32 bit pour ry ?


[11:51] '''Ubit Umarov'''  : ... toujours...
[11:56] '''Ubit Umarov'''  : parce qu'il n'est pas censé le faire :p


[11:51] '''Ubit Umarov'''  : spécialement en utilisant des OSSL [http://opensimulator.org/wiki/OSSL](en) qui n'auraient jamais dû être ajoutées.
[11:56] '''Jagga Meredith'''  : *gloussements*


[11:51] '''Ubit Umarov'''  : détails...
[11:56] '''Andrew Hellershanks'''  : alors pourquoi le fait-il pour rx ?


[11:51] '''Kayaker Magic'''  : Un mauvais programmeur peut écrire FORTRAN dans n'importe quel langage ;.
[11:57] '''Ubit Umarov'''  : parce qu'il est censé le faire.


[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ecrire des trucs pour les changements de lumière et les animations peut être incroyablement lourd.
[11:57] '''Ubit Umarov''' : :p


[11:52] '''Andrew Hellershanks'''  : Bonjour à tous. J'ai enfin terminé l'appel téléphonique :P La dernière partie de l'appel consistait à donner à la personne des indications sur l'endroit où elle se rendait en voiture, car il s'est avéré qu'elle se dirigeait vers le nord alors qu'elle aurait dû aller vers le sud.
[11:57] '''Kayaker Magic'''  : Précise.


[11:52] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je scripte toujours  des boules de danse et d'autres trucs d'éclairage. Je vérifie ce que fait le cpu, parfois une ligne mal écrite me donne 100% de cpu heh.
[11:57] '''Andrew Hellershanks''' : Cela ne semble pas avoir de sens qu'il produise des types de valeurs complètement différents pour X et Y dans le cadre d'un seul résultat.


[11:53] '''Andrew Hellershanks'''  : Vincent, il ne faut pas grand-chose pour faire ça.
== Découverte d'un bogue et correction à tester ==
[11:57] '''Ubit Umarov'''  : mais je vois un bogue là.


[11:53] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Dans le même esprit, si on arrive à comprendre ce qui se passe en interne, on peut changer une couleur 60 fois par seconde sans trop de charge.
[11:58] '''Jagga Meredith''' : uh oh


= Script : erreur out of heap =
[11:58] '''Ubit Umarov''' :  
* Moteur de scripts Xengine : http://opensimulator.org/wiki/Xengine/fr
    double rx = (lm.RegionHandle >> 32) - World.RegionInfo.WorldLocX + (double)lm.Position.X;
* Moteur de scripts Yengine : http://opensimulator.org/wiki/YEngine/fr
    double ry = (lm.RegionHandle & 0xffffffff) - World.RegionInfo.WorldLocY + (double)lm.Position.Y;
* Tas : En informatique, un tas1 (ou monceau au Canada2, heap en anglais) est une structure de données de type arbre qui permet de retrouver directement l'élément que l'on veut traiter en priorité. [https://fr.wikipedia.org/wiki/Tas_(informatique)]
    SL_Vector region = new LSL_Vector(rx, ry, lm.Position.Z);
* Pile : En informatique, une pile (en anglais stack) est une structure de données fondée sur le principe « dernier arrivé, premier sorti » (en anglais LIFO pour last in, first out), ce qui veut dire qu'en général, le dernier élément ajouté à la pile est le premier à en sortir1. [https://fr.wikipedia.org/wiki/Pile_(informatique)]
* Fichiers ini : http://opensimulator.org/wiki/Configuring_Scripting/fr#Fichiers_ini_importants
* opensimdefaults.ini  : <dossier du simulateur>bin/opensimdefaults.ini


[11:54] '''Andrew Hellershanks'''  : J'ai aidé des gens à faire des tests de compatibilité entre les moteurs X et Y la semaine dernière. Leurs scripts déclenchent une exception dans YEngine pendant la compilation. Je ne suis pas sûr de la cause de ce problème. Au moment de l'exécution, j'obtenais une exception out of heap.
[11:58] '''Ubit Umarov'''  : c'est mieux comme ça.


[11:55] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : lol ouch
[11:58] '''Ubit Umarov''' : je testerai plus tard


[11:55] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Cela demande de sérieux efforts.
[11:58] '''Jagga Meredith''' : ok


[11:55] '''Andrew Hellershanks''' : En regardant le code du système d'exploitation, j'ai trouvé des paramètres ini pour changer la taille du tas et cela a résolu le problème du tas.
[11:58] '''Object''' : Script en cours d'exécution


[11:55] '''Andrew Hellershanks''' : Toujours aucune idée sur l'erreur de compilation.
[11:58] '''Object''': <18446744073709400000.000000, 11437119952138600.000000, 37.792831>


[11:55] '''Ubit Umarov'''  : ohh vraiment ?
[11:59] '''Ubit Umarov'''  : bien sur lbsa X est aussi étrange


[11:55] '''Ubit Umarov'''  : la prochaine fois RTFM [https://fr.wikipedia.org/wiki/RTFM_(expression)]?
[11:59] '''Ubit Umarov'''  : très :)


[11:55] '''Ubit Umarov'''  : peut-être... :p
[11:59] '''Ubit Umarov'''  : et désolé d'élaborer quoi ?


[11:56] '''Andrew Hellershanks'''  : Ubit, oui. Il y a des paramètres ini pour définir la taille de la pile et du tas dans YEngine mais ils ne sont pas listés dans le fichier ini.
[12:00] '''Andrew Hellershanks'''  : Nous sommes au début de l'heure. Des sujets de dernière minute pour aujourd'hui ?


[11:56] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Les erreurs du compilateur sont généralement très explicites, sauf si on a cassé quelque chose en interne.
[12:00] '''Ubit Umarov''' : un handle de région est une chose de 64bit avec 2 choses de 32bit encodées.


[11:56] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Idéalement, on ne devrait pas avoir besoin d'ajuster le heap du tout.
[12:00] '''Jagga Meredith''' : J'ai fini.


[11:56] '''Kayaker Magic'''  : Si les gens utilisent les anciens paramètres de OpenSim.ini pour les tailles de heap de YEngine, cela peut causer le problème que tu décris.
[12:00] '''Kayaker Magic'''  : Explique pourquoi la formule pour x devrait être différente de celle pour y. Tout ce que tu as dit c'est "supposé être".


[11:56] '''Andrew Hellershanks'''  : L'erreur est une erreur générique -> NullReferenceException : La référence de l'objet n'est pas définie sur une instance d'un objet.
[12:00] '''Andrew Hellershanks'''  : Jagga, ok.


[11:57] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je pense aussi que la dernière version devrait calculer correctement la taille du tas, il y avait un bug à ce sujet auparavant.
[12:00] '''Ubit Umarov''' : X sur les 32 bits supérieurs


[11:57] '''Ubit Umarov''' : http://opensimulator.org/wiki/YEngine
[12:00] '''Ubit Umarov''' : ok ?


[11:57] '''Ubit Umarov'''  : "Contrôle de l'utilisation du tas de mémoire et de la pile" très clair ici.
[12:01] '''Andrew Hellershanks'''  : Kayaker, je sais. Je n'aime pas le problème d'incohérence apparente.


[11:57] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Toujours tester avec le code de la version ou du master
[12:01] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : 12314530233958400 C'est un identifiant de région.


[11:58] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je serais curieux de voir ce script et de comprendre où il génère tout ce tas de données.
[12:01] '''Kayaker Magic''' : En interne, il a été stocké comme un entier 64bit ? Je n'ai jamais entendu parler de ce type de données dans OpenSim.


[11:58] '''Andrew Hellershanks''' : YEngine accepte les paramètres ini pour définir la taille de la pile et du tas mais ces paramètres ne sont pas dans les fichiers ini existants.
[12:01] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : L'emplacement réel du handle de cette région est : 2867200 2867200


[11:58] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Aucun script n'a encore atteint ces limites.
[12:01] '''Ubit Umarov''' : on l'appelle aussi un long


[11:58] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Eh bien, en dehors de l'essai pour cela spécifiquement
[12:02] '''Kayaker Magic''' : Je veux dire que je n'ai jamais entendu parler de coordonnées stockées comme des entiers 64 bits entiers.


[11:58] '''Andrew Hellershanks'''  : Je ne suis pas aussi préoccupé par le problème du tas que par l'exception lors de la tentative de compilation du code.
[12:02] '''Ubit Umarov'''  : depuis toujours...


[11:59] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oui, il faut avoir un débogueur[https://fr.wikipedia.org/wiki/D%C3%A9bogueur] connecté, je suppose.
[12:02] '''Ubit Umarov''' : handle de région


[11:59] '''Andrew Hellershanks'''  : J'ai trouvé que YEngine a quelques paramètres pour les modes de débogage mais ceux qui sont censés sauvegarder le script original et sauvegarder le fichier IL ne semblent pas fonctionner (ou le fichier a été sauvegardé ailleurs que prévu).
[12:02] '''Andrew Hellershanks'''  : Kayaker, handles de région.


[12:00] '''Ubit Umarov'''  : ils sont dans opensimdefaults.ini
[12:02] '''Ubit Umarov'''  : le truc de la région et du viewer.


[12:00] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Pour que Visual Studio[https://fr.wikipedia.org/wiki/Microsoft_Visual_Studio] permet de voir directement où le code se bloque.
[12:03] '''Ubit Umarov''' : mais ce code est confus.


[12:00] '''Andrew Hellershanks'''  : Vincent, oui, c'est ce que j'avais prévu de faire. Je pourrais ajouter du code de débogage supplémentaire car le backtrace[https://fr.wikipedia.org/wiki/Trace_d%27appels]  me dit où il s'arrête.
[12:03] '''Ubit Umarov'''  : il semble retourner à une distance depuis l'angle de la région actuelle.


[12:01] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si tu arrives à le faire, n'hésite pas à le publier pour que d'autres puissent le tester aussi, plus il y a de cerveaux, mieux c'est pour comprendre des choses mystérieuses comme ça.
[12:03] '''Kayaker Magic''' : OH, j'ai vu LL faire des trucs bizarres avant, ça explique tout.


[12:01] '''Ubit Umarov''' : oui, lire le IL vous aidera beaucoup :p
[12:04] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : C'est ce qu'il est censé retourner


[12:01] '''Andrew Hellershanks'''  : Je n'ai pas écrit les deux scripts en question. L'un d'eux fait presque 4600 lignes.
[12:04] '''Ubit Umarov'''  : selel (lm.RegionHandle & 0xfffffff) semble manquer ici


[12:02] '''Andrew Hellershanks''' : Ubit, je sais. J'espérais juste trouver quelque chose qui pourrait aider à préciser ce qui déclenche l'exception.
[12:04] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : C'est un vrai décalage entre la région où on se trouve et la position du point de repère dans l'autre région.


[12:02] '''Andrew Hellershanks'''  : Un débogueur ou l'ajout de messages de débogage supplémentaires pourrait être ma meilleure option.
[12:05] '''Ubit Umarov'''  : Landmark (vecteur) Les données vectorielles reçues par dataserver sont un décalage de <0,0,0> de la région actuelle. Pour obtenir la position globale d'un point de repère, ajoutez llGetRegionCorner()[https://wiki.secondlife.com/wiki/LlGetRegionCorner/fr].


[12:02] '''Ubit Umarov''' : X n'avait aucun contrôle sur l'utilisation de la mémoire.
[12:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si tu l'appliquais globalement en te tenant sur <0,0,0> sur la région actuelle, tu te retrouverais sur les coordonnées exactes....


[12:03] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si elles sont aussi longues, peut-être que ce que tu vois est l'échec de l'allocation du tas lui-même.
[12:05] '''Ubit Umarov''' : ouais c'est la position lm dans les coordonnées locales de la région actuelle.


[12:03] '''Ubit Umarov'''  : il est donc normal que certains scripts essaient de manger toute la mémoire.
[12:05] '''Ubit Umarov'''  : peut être < 0 etc...


[12:03] '''Andrew Hellershanks'''  : Il y avait un paramètre de taille de pile de 256k dans l'ini mais c'est à peu près tout.
[12:05] '''Andrew Hellershanks'''  : Si le code récupère un handle de région, alors le masque semble manquer à ry.


[12:03] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Tu as presque autant de malchance que moi avec les bugs lol
[12:06] '''Ubit Umarov''' : je viens de le dire deux fois :p


[12:03] '''Ubit Umarov'''  : Y contrôle la pile et le tas
[12:06] '''Andrew Hellershanks'''  : Je suis d'accord avec toi.


[12:04] '''Andrew Hellershanks''' : Vincent, c'est ce que je pense. Il aurait été plus intéressant de le dire dès le départ et de ne pas se contenter de dire pas de référence à l'objet.
[12:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Aujourd'hui nous sommes tous en surchauffe lol


[12:04] '''Andrew Hellershanks'''  : Vincent, seulement quand ce n'est pas mon code.
[12:07] '''Andrew Hellershanks'''  : Vincent, apparemment oui.


[12:04] '''Ubit Umarov'''  : et oui, dans les mêmes cas, les gens ont besoin de l'augmenter pour exécuter les vieux scripts X.
[12:07] '''Ubit Umarov'''  : :)


[12:04] '''Selby.Evans @grid.kitely.com:8002'''  : au revoir tout le monde.
[12:08] '''Andrew Hellershanks'''  : Rien d'autre pour aujourd'hui ? Je dois partir sous peu. Mon chat me réclame un temps de jeu (ou de l'attention) depuis environ 15 minutes.


[12:04] '''Andrew Hellershanks'''  : Ceci fait partie d'un test de compatibilité pour voir quels changements (s'il y en a) doivent être faits au script pour qu'il fonctionne dans YEngine.
[12:08] '''Ubit Umarov'''  : L'ancienne version 0.8 avait une autre forme du bug.


[12:05] '''Ubit Umarov''' : en supposant qu'il ait échoué à cause d'un débordement de pile contrôlé par Yengine.
[12:08] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : On pourrait probablement construire une fonction ossl pour les données de landmark pour retourner une liste des différents paramètres du lm, je ne sais pas trop pourquoi, mais il y a aussi un tas d'autres paramètres.


[12:05] '''Kayaker Magic'''  : Au revoir Selby !
[12:09] '''Jagga Meredith'''  : oui, s'il vous plaît.


[12:05] '''Ubit Umarov'''  : cya Selby.Evans
[12:09] '''Ubit Umarov''' : Dans OpenSim-9.2.1/OpenSim/Framework/AssetLandmark.cs Ligne 33
  public class AssetLandmark : AssetBase
    {
        public Vector3 Position;
        public ulong RegionHandle;
        public UUID RegionID;
        public string Gatekeeper = string.Empty;
        public int Version;


[12:05] '''Andrew Hellershanks'''  : Selby, ok. Merci d'être venu.
[12:09] '''Ubit Umarov'''  : pas beaucoup :)


[12:05] '''Ubit Umarov''' : il se peut qu'il ait crashé à cause d'un débordement de pile natif :)
[12:10] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La position réelle pourrait être utile et uuid je suppose.


[12:05] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Je pense qu'avec des scripts aussi longs, il y a probablement quelque chose qui n'est pas conforme à la norme LSL et qui est rejeté par le système. J'ai vu beaucoup de vieux scripts écrits sous X fonctionner mal parce qu'ils utilisaient de mauvais ajouts de listes et d'autres choses du genre. En les corrigeant et en écrivant dans la norme LSL appropriée, on obtient des performances et moins de problèmes de consommation de mémoire.
[12:10] '''Jagga Meredith''' : yup


[12:05] '''Ubit Umarov'''  : bon quand ubode fait ça, c'est très visible :)
[12:10] '''Ubit Umarov'''  : ok je sais pourquoi le grand nombre


[12:06] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Réécrire un script aussi grand n'est pas si facile bien sûr, peut-être mieux de juste '''lint'''(?) un peu.
[12:10] '''Ubit Umarov''' : je pense


[12:07] '''Andrew Hellershanks'''  : Vincent, c'est une partie de ma question. Est-ce que c'est une erreur dans le script ou quelque chose dans le code YEngine. Je ne m'attendais pas à une exception pendant ce que je pense être juste la phase de compilation.
[12:11] '''Ubit Umarov'''  : c'est une chose négative lol


[12:08] '''Ubit Umarov'''  : cela dépend de ce que tu appelles exception.
[12:11] '''Jagga Meredith'''  : Je me posais la question.


[12:08] '''Ubit Umarov''' : "exception" peut être beaucoup de choses
[12:12] '''Ubit Umarov''' :  
        double rx = (double)(lm.RegionHandle >> 32) - (double)World.RegionInfo.WorldLocX + (double)lm.Position.X;
        double ry = (double)(lm.RegionHandle & 0xffffffff) - (double)World.RegionInfo.WorldLocY + (double)lm.Position.Y;


[12:08] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ligne 2547 probablement et peut-être list append à la ligne 574, cela nécessite de voir le script pour vraiment savoir.
[12:12] '''Ubit Umarov''' : ça devrait le faire.


[12:08] '''Andrew Hellershanks''' : Ce que j'appelle une exception est ce qui est rapporté par YEngine comme ...Exception dans le message d'erreur.
[12:12] '''Andrew Hellershanks''' : Est-ce que le fait d'isoler un paquet de handle de région fonctionnera correctement avec une valeur négative ?


[12:09] '''Ubit Umarov'''  : il en dit généralement plus.
[12:12] '''Kayaker Magic'''  : Ah, quand on enlève la moitié inférieure, il faut signer l'extension.


[12:10] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Eh bien les erreurs de référence nulle sont quelque chose qu'on voit sur des parties de code qui essaient d'obtenir des propriétés ou d'itérer par exemple. Cela indique qu'une référence est manquante, ce qui signifie que le code qui essaie d'interagir avec un objet a changé de format, par exemple. Ce n'est qu'une des façons dont cela peut se produire. Étant donné qu'il n'y a plus de tas, peut-être que les structures internes comme les tailles des listes sont dépassées lorsqu'il leur alloue de l'espace et que la référence à chaque élément disparaît.
[12:12] '''Jagga Meredith''' : kewl


[12:10] '''Andrew Hellershanks'''  : Bien sûr. Il y a un backtrace.
[12:12] '''Ubit Umarov'''  : nopes


[12:11] '''Ubit Umarov'''  : c'est sur la compilation que ça n'a rien à faire avec les paramètres de mémoire du script.
[12:13] '''Ubit Umarov'''  : handler et worldloc sont des uints.


[12:11] '''Ubit Umarov'''  : si c'est le cas...
[12:13] '''Ubit Umarov'''  : bon ulong et uint


[12:11] '''Kayaker Magic'''  : Andrew : Je viens de regarder les tailles de pile et de tas de YEngine, les valeurs recommandées sont 2048 et 1024, Cela a changé à un moment donné, il semble bien que les anciennes valeurs étaient plus petites.
[12:13] '''Jagga Meredith'''  : mais est-ce que tu veux y mettre quelque chose de plus gros ?


[12:11] '''Ubit Umarov''' : Grrr
[12:13] '''Ubit Umarov''' : non.


[12:11] '''Ubit Umarov'''  : il dit maintenant que c'est sur la compilation...
[12:13] '''Kayaker Magic'''  : Pourquoi ne pas convertir le regionHandle en 32bit int avant de le convertir en double ?


[12:12] '''Ubit Umarov'''  : il faut juste lire le message...
[12:14] '''Ubit Umarov'''  : c'est le cas.


[12:12] '''Andrew Hellershanks'''  : La première erreur à laquelle j'ai été confronté était l'exception qui est apparue lorsque j'ai dit au viewer que je voulais compiler les scripts. Une fois que j'ai reçu une version mise à jour du code, je n'ai eu que l'erreur HeapException.
[12:14] '''Ubit Umarov'''  : le compilateur fun dit que le (double) n'est pas nécessaire :)


[12:12] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : ... nous sommes en train de fouiller dans l'obscurité, sans script et sans logs (journaux) , si on ne peut pas le comprendre cette semaine, il suffit de le mettre sur la Mantis [http://opensimulator.org/mantis/my_view_page.php] :)
[12:15] '''Andrew Hellershanks''' : :)


[12:12] '''Ubit Umarov'''  : bien sûr, certains sont encore critiques...
[12:15] '''Ubit Umarov'''  : bien, je vais le tester et le valider.


[12:13] '''Objet''' : Script en cours d'exécution
[12:15] '''Kayaker Magic''' : Bien vu Jagga ! Merci d'avoir attiré l'attention d'Ubit sur ce problème !


[12:13] '''Andrew Hellershanks'''  : Maintenant que j'ai doublé la taille du tas, je vais essayer de compiler à nouveau les scripts sur la version originale du code au cas où l'exception "no ref to object" serait également liée au tas.
[12:15] '''Andrew Hellershanks'''  : C'est toujours agréable de voir un rapport de bogue suivi d'une correction rapide.


[12:14] '''Ubit Umarov'''  : pas de référence à l'objet est une chose plus grave.
[12:16] '''Jagga Meredith'''  : Merci.


[12:14] '''Ubit Umarov'''  : il suffit d'avoir l'erreur complète.
[12:17] '''Ubit Umarov'''  : c'est mieux que le lm soit pour une région de la même grille aussi :P


[12:15] '''Andrew Hellershanks'''  : J'en discuterais bien dans le canal IRC[http://opensimulator.org/wiki/IRC/fr] mais je ne peux toujours pas joindre le canal depuis la panne nationale d'Internet de vendredi.
= Conclusion =
 
[12:17] '''Andrew Hellershanks'''  : Sur ce, je vais conclure la réunion d'aujourd'hui. Je pense que mon chat a déjà renoncé à moi, mais je vais quand même aller la voir pour savoir si elle veut encore jouer.
[12:15] '''Ubit Umarov''' : oh?
 
[12:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Il suffit d'utiliser Mantis si vous n'arrivez à rien cette semaine ou une solution de ce type, il vaut mieux que d'autres cerveaux y jettent un coup d'œil et j'ai nettoyé la mantis du mieux que je pouvais, alors n'hésitez pas à ajouter des choses lol
 
[12:16] '''Andrew Hellershanks'''  : oui. Un important fournisseur d'accès Internet et de téléphonie mobile a subi une panne vendredi à partir de 5 heures du matin. Je n'ai récupéré Internet que vers 22h30. On s'attendait à ce que certaines personnes soient privées d'Internet pendant 3 jours.
 
[12:16] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : encore BGP[https://fr.wikipedia.org/wiki/Border_Gateway_Protocol], dit-on
 
[12:16] '''Ubit Umarov'''  : dans ce cas, une mantis sans le script à partager est un problème.


[12:17] '''Ubit Umarov'''  : et fournir le script, spécialement un grand, peut être un problème.
[12:17] '''Andrew Hellershanks'''  : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.


[12:17] '''Andrew Hellershanks'''  : Vincent, bien sûr. Mes notes indiquent que même avec une taille de tas plus importante, une exception est toujours émise lorsque je demande la compilation des scripts.
[12:17] '''Selby.Evans @grid.kitely.com:8002'''  : au revoir à tous.


[12:17] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Script et logs, bien les étapes à reproduire et les logs dans la plupart des cas.
[12:17] '''Andrew Hellershanks'''  : Au revoir, Selby.
 
[12:17] '''Ubit Umarov''' : ohh
 
[12:17] '''Andrew Hellershanks'''  : Si je suis autorisé à fournir le script, je le marquerai comme privé.
 
[12:18] '''Ubit Umarov'''  : c'est peut-être juste un script manquant.
 
[12:18] '''Kayaker Magic'''  : Trouver un petit script pour reproduire une erreur est souvent difficile.
 
[12:18] '''Ubit Umarov'''  : cela peut donner une erreur de référence nulle.
 
[12:18] '''Andrew Hellershanks'''  : Pour reproduire le problème il suffit de faire un clic droit sur l'objet, plus, plus, scripts, compiler (Mono).
 
[12:18] '''Ubit Umarov'''  : oui, cela ressemble à un script manquant.
 
[12:18] '''Ubit Umarov'''  : lisez le message d'erreur.
 
[12:19] '''Andrew Hellershanks''' : at OpenSim.Region.ScriptEngine.Yengine.XMRInstance.PostEvent (OpenSim.Region.ScriptEngine.Shared.EventParams evt) [0x0001f] in XMRInstRun.cs:69
 
[12:19] '''Andrew Hellershanks''' : at (wrapper remoting-invoke-with-check) OpenSim.Region.ScriptEngine.Yengine.XMRInstance.PostEvent(OpenSim.Region.ScriptEngine.Shared.EventParams)
 
[12:19] '''Andrew Hellershanks''' : etc...
 
[12:19] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Le problème le plus évident était la taille trop petite des paquets de la base de données pour stocker l'asset.
 
[12:19] '''Andrew Hellershanks'''  : Je vais voir si je peux apprendre quelque chose de plus à ce sujet et sur mantis.
 
[12:20] '''Ubit Umarov'''  : sur un post événement ?
 
[12:20] '''Ubit Umarov'''  : étrange.
 
[12:20] '''Andrew Hellershanks'''  : hm... c'est une idée intéressante, Vincent.
 
[12:20] '''Ubit Umarov'''  : Je ne peux pas deviner.
 
[12:20] '''Ubit Umarov'''  : et c'est ce qui le fait fonctionner.
 
[12:20] '''Andrew Hellershanks'''  : Le texte du script tel qu'il se trouve sur mon ordinateur fait 211772 octets.
 
[12:21] '''Ubit Umarov'''  : ou en cours d'exécution.
 
[12:21] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : La taille maximale des paquets était de 16 Mo sur les anciennes versions de mysql. Depuis, elle a été augmentée ; la valeur par défaut devrait être beaucoup plus élevée maintenant, comme 1G même sur certaines versions.
 
[12:22] '''Ubit Umarov'''  : les scripts avaient une limite de 64k bytes sur les sources.
 
[12:22] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : C'était un gros défaut sur les assets de HG [http://opensimulator.org/wiki/Hypergrid/fr] à l'époque
 
[12:22] '''Andrew Hellershanks'''  : Ubit, il semble que ce soit un problème après le début de l'exécution du script. Quelque chose à voir avec llMessageLinked[https://wiki.secondlife.com/wiki/LlMessageLinked/fr]. Je pense ajouter du code supplémentaire dans LSL_Api.cs pour imprimer ce que la fonction reçoit.
 
[12:23] '''Ubit Umarov'''  : mais cela semble nécessiter un débogage plus détaillé.
 
[12:23] '''Andrew Hellershanks'''  : Le moteur meurt et ne laisse aucune information utile sur la ligne du script qu'il essayait d'exécuter au moment où il est mort.
 
[12:23] '''Ubit Umarov'''  : ce n'est pas sur lsl_api.
 
[12:23] '''Andrew Hellershanks'''  : J'espérais que l'un des paramètres de débogage pourrait aider.
 
[12:23] '''Andrew Hellershanks'''  : llMessageLinked n'est pas dans LSL_Api.cs ? ?
 
[12:23] '''Ubit Umarov'''  : et c'est celui-là ?
 
[12:24] '''Andrew Hellershanks'''  : Cette fonction est mentionnée plus bas dans le backtrace.
 
[12:24] '''Ubit Umarov'''  : Je ne peux pas deviner ce que vous n'avez pas dit :p
 
[12:24] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : C'est comme une chasse au renard avec un renard invisible.
 
[12:25] '''Ubit Umarov'''  : nahh juste un très mauvais rapport de problème
 
[12:25] '''Ubit Umarov'''  : :p
 
[12:26] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Si tu n'arrives pas à déboguer, mets-le sur mantis, s'ils ne veulent pas le partager, mets-le sur privé pour qu'au moins Ubit puisse y jeter un œil.
 
[12:26] '''Andrew Hellershanks'''  : Oui, le script doit être considéré comme privé.
 
[12:27] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : De sombres secrets lol
 
[12:27] '''Andrew Hellershanks'''  : Un code propriétaire qui fait partie d'un système plus large.
 
[12:28] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : J'espère qu'il ne s'agit pas d'une animation à plusieurs poses, je n'en ai pas encore vu une seule écrite correctement, elles sont toutes massivement trop compliquées et mal écrites au point de consommer une tonne de ressources.
 
[12:28] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Certains ne fonctionnent même plus sous Y.
 
[12:29] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ou utiliser les fonctions ossl qui doivent être mises à true.
 
[12:29] '''Andrew Hellershanks'''  : Vincent, c'est intéressant de voir que certaines ne fonctionnent pas en Y (en supposant que ce n'est pas seulement les perms).
 
[12:29] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Ils se plantent sur les listes qu'ils génèrent ou sur les typages.
 
[12:29] '''Andrew Hellershanks'''  : Ce n'est probablement pas très surprenant.
 
[12:30] '''Andrew Hellershanks'''  : oh, c'est vrai. Probablement ceux qui utilisent le " truc pour sauver la mémoire ".
 
[12:30] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Aussi les premiers suspects pour le truc "les scripts ont cessé de fonctionner" que j'ai mentionné plus tôt.
 
[12:30] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Oh oui, lorsque cela se produit, les choses comme llSetText[https://wiki.secondlife.com/wiki/LlSetText] ne sont pas non plus mises à jour, ce qui permet de savoir de quelle file il s'agit.
 
[12:31] '''Vincent.Sylvester @hg.zetaworlds.com:8002''' : Mais oui, si vous n'arrivez à rien, créez simplement un ticket mantis privé pour cela.
 
[12:32] '''Ubit Umarov'''  : yeha, je suppose que cela va demander un débogage plus profond.
 
[12:33] '''Misterblue Waves'''  : je dois y aller... à bientôt !
 
[12:33] '''Ubit Umarov''' : cya
 
[12:34] '''Andrew Hellershanks'''  : Tant que je peux encore accéder à la mantis. Je ne sais pas pourquoi je ne peux toujours pas accéder aux canaux IRC.
 
[12:34] '''Ubit Umarov'''  : mais cela signifie qu'il y a plus de scripts.
 
[12:34] '''Andrew Hellershanks'''  : ok, Misterblue.
 
[12:34] '''Ubit Umarov'''  : sur l'objet lié.
 
[12:35] '''Ubit Umarov'''  : donc je suppose que l'objet entier sera nécessaire pour déboguer.
 
= Conclusion =
[12:34] '''Andrew Hellershanks'''  : Nous sommes maintenant à l'heure et demie. Sauf s'il y a des questions de dernière minute, je vais conclure la réunion.


[12:37] '''Andrew Hellershanks'''  : ok, je vais dire que cette réunion est terminée :)  Merci à tous d'être venus. On se revoit la semaine prochaine.
[12:17] '''Ubit Umarov'''  : cya

Dernière version du 30 novembre 2024 à 10:41

Source : http://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2022-07-19

Introduction

[11:12] Ubit.Umarov @hg.osgrid.org:80 : il a 2022 à tester

[11:12] Andrew Hellershanks  : Bonjour à tous.

[11:12] Ubit.Umarov @hg.osgrid.org:80 : cela devrait aussi fonctionner parfaitement.

[11:12] Ubit.Umarov @hg.osgrid.org:80 : Bonjour Andrew, humide et gelé.

[11:12] Andrew Hellershanks  : J'ai oublié quel jour on était et j'ai un peu somnolé après le déjeuner.

[11:12] Vincent Sylvester : hehehe

[11:13] Ubit.Umarov @hg.osgrid.org:80: "

[11:13] Ubit.Umarov @hg.osgrid.org:80 : * Tampa jette un seau d'eau sur Plugh

  • Tampa jette des glaçons sur Plugh

[11:13] Ubit.Umarov @hg.osgrid.org:80: "

[11:13] Ubit.Umarov @hg.osgrid.org:80: ( at irc)

Changements de la semaine

[11:13] Vincent Sylvester  : Pas beaucoup de changements cette semaine, quelques corrections de fsassets et une autre chose mineure dans libomv[1] en essayant de comprendre pourquoi ça pouvait planter.

[11:14] Vincent Sylvester  : Jusqu'à présent, je n'ai pas entendu parler d'autres plantages après le retour de mono[2] à la version 122[3] et les journaux sont vides également.

[11:16] Andrew Hellershanks  : Bonjour, Kayaker.

[11:17] Vincent Sylvester  : En parcourant l'api[4] lsl [5] pour ajouter plus de try catch[6] j'ai trouvé quelques petites choses pour lesquelles je pourrais préparer des patches si je peux me rappeler où elles étaient exactement.

[11:17] Kayaker Magic  : Bonjour à tous. Est-ce que j'ai manqué beaucoup de choses dans le premier quart d'heure ?

[11:17] Andrew Hellershanks  : Kayaker, non, tu n'as rien manqué.

[11:20] Andrew Hellershanks  : En ce qui concerne un autre élément de la semaine dernière [7], j'ai résolu les causes des exceptions que j'avais la semaine dernière avec un objet scriptés.

[11:20] Andrew Hellershanks  : Le problème de la référence nulle pendant la compilation a été résolu en mettant à jour le code de la grille vers 0.9.2.1.[8]

[11:22] Andrew Hellershanks  : L'erreur HeapException a été résolue en faisant glisser l'objet de l'inventaire vers le sol, en recompilant les scripts, puis en ramenant l'objet dans l'inventaire. Après cela, je n'ai plus eu d'exception de tas [9] en faisant glisser l'objet vers le sol.

[11:23] Andrew Hellershanks  : Quand je creusais encore dans le code de la grille pour déterminer la cause du problème de référence nulle, j'ai vu une incohérence dans la vérification du tas qui me laisse encore perplexe.

[11:24] Andrew Hellershanks  : Pour le test local pour voir s'il y a encore du tas disponible, un usage est ajouté avant le texte mais pour le ArraysHeap, il n'y en a pas.

[11:24] Ubit.Umarov @hg.osgrid.org:80 : as-tu regardé le code actuel ?

[11:25] Vincent Sylvester  : Je ne me souviens pas exactement quand, mais il y a eu des changements assez récents dans le calcul du tas après qu'un rapport de mantis ait signalé qu'il était erroné.

[11:25] Vincent Sylvester  : Cela fait peut-être deux mois.

[11:27] Ubit.Umarov @hg.osgrid.org:80 : Oui.

[11:27] Andrew Hellershanks  : Je pensais l'avoir fait, mais je vais devoir regarder à nouveau. Je dois regarder le code sur une autre machine pour me rappeler quel fichier contient les routines qui font le contrôle d'utilisation.

[11:28] Vincent Sylvester  : Essaie le dernier master dev pour voir les résultats que tu obtiens avec ça, ça peut être déjà corrigé, sinon, yay plus de corrections sur le chemin

[11:28] Andrew Hellershanks  : Vincent, le problème est déjà résolu depuis la 0.9.2.1, il n'est donc pas nécessaire que je vérifie le master.

Script : llSetPrimitiveParams avec PRIM_POINT_LIGHT

[11:29] Andrew Hellershanks  : C'est l'heure des questions-réponses. :) Jagga, tu as quelques questions.

[11:29] Jagga Meredith  : Je fais une zone de cours sur Aviworlds [10]. Je fais un tutoriel sur le scripting.

[11:30] Selby.Evans @grid.kitely.com:8002 est entré dans la distance de dessin (25,44 m).

[11:30] Selby.Evans @grid.kitely.com:8002 est entré dans la région (25.44 m).

[11:30] Jagga Meredith  : Si cela vous intéresse de jeter un coup d'œil, voici l'olandmark

[11:30] Selby.Evans @grid.kitely.com:8002 est entré dans la zone de chat (10.81 m).

[11:30] Jagga Meredith  : deux problèmes à résoudre.

[11:30] Ubit Umarov  : bienvenue selby.Evans

[11:30] Selby.Evans @grid.kitely.com:8002  : bonjour à tous.

Problèmes avec les paramètres

Voir également les pages du wiki en anglais qui sont plus souvent mises à jour.

  • llRequestInventoryData [11] : Demande des informations sur des objets de l'inventaire. Quand la donnée est disponible, l'évènement dataserver est déclenché.
  • INVENTORY_LANDMARK [12]: Utilisé avec les fonctions d'inventaire et spécifie les éléments d'inventaire de type LANDMARK qui seront récupérés par la fonction.
  • Dataserver[13] : évènement déclenché lorsque le script reçoit des données asynchrones.
  • llSetPrimitiveParams [14] : Permet de modifier les paramétres de la prim en appliquant les règles indiquées.
  • PRIM POINT LIGHT [15] : PRIM_POINT_LIGHT est utilisé pour paramètrer les effets de lumière des prims.

[11:30] Jagga Meredith :

   requestid = llRequestInventoryData( llGetInventoryName( INVENTORY_LANDMARK, 0 ) );
   dataserver(key id, string data)
   {
       if (id == requestid)
       {    llSay(0,(data);

[09:57] dataserver demo 1 : LOOKING UP Orientation

[09:57] dataserver demo 1 : <122.368202, 1316115418448010.000000, 30.213690>

[11:30] Andrew Hellershanks : Bonjour, Selby.

[11:31] Jagga Meredith murmure : la deuxième valeur est bancale.

[11:31] Andrew Hellershanks  : C'est certainement le cas.

[11:31] Jagga Meredith  : Orientation de l'île, Orientation de l'île (122, 136, 30)

[11:32] Jagga Meredith  : aussi...

11:32] Jagga Meredith :

 {// [integer boolean,vector couleur,float intensity,float rayon,float falloff]
   llSetPrimitiveParams([PRIM_POINT_LIGHT, toggle, colour, intensity, size, falloff]);

[11:32] Jagga Meredith  : la taille ne semble pas avoir d'effet.

[11:33] Andrew Hellershanks Je pense que quelqu'un joue avec les paramètres de windlight (https://wiki.firestormviewer.org/fs_windlight_fr?s[]=windlight][16].

[11:33] Andrew Hellershanks  : Jagga, as-tu déposé une mantis pour ce premier problème ?

[11:33] Jagga Meredith  : non, il y a une prim en face de vous.

[11:33] Jagga Meredith  : non.

[11:33] Jagga Meredith  : Je viens de le découvrir.

[11:35] Andrew Hellershanks  : L'autre question est de savoir quelle version du code Aviworlds utilise. Il est possible qu'ils aient modifié quelque chose qui a entraîné cette erreur. Il devrait être assez facile de tester le comportement dans le master.

[11:35] Jagga Meredith  : j'ai essayé ici.

[11:35] Jagga Meredith  : même problème.

[11:35] Andrew Hellershanks  : ok, bon à savoir.

[11:35] Ubit Umarov  : où est le point prim ?

[11:36] Jagga Meredith  : dans une sphère.

[11:36] Ubit Umarov  : Je veux dire ici.

[11:36] Ubit Umarov  : je suis trop paresseux pour faire mon propre test :p

[11:37] Andrew Hellershanks  : hehe

[11:37] Ubit Umarov  : je l'aime bien.

[11:37] Jagga Meredith  : je te l'ai donné.

[11:37] Jagga Meredith  : ou bien tu peux t'en procurer un exemplaire.

[11:37] Ubit Umarov  : ou obtenir des pouvoirs divins

[11:37] Jagga Meredith  : heh

[11:38] Jagga Meredith  : tu dois être propriétaire pour que le menu fonctionne.

[11:38] Vincent.Sylvester @hg.zetaworlds.com:8002 : Le dataserver affiche deux réponses comme ça, quel est exactement le problème ?

[11:38] Jagga Meredith  : c'est une démonstration de l'utilisation de la fonction.

[11:39] Jagga Meredith  : le paramètre size ne semble rien faire.

[11:39] Jagga Meredith  : ou je l'utilise mal.

[11:39] Ubit Umarov  : float big = 75.0 ;

[11:39] Ubit Umarov  : max est 20

[11:39] Jagga Meredith  : ah

[11:39] Ubit Umarov  : https://wiki.secondlife.com/wiki/PRIM_POINT_LIGHT

[11:40] Jagga Meredith  : merci.

[11:40] Ubit Umarov  : float small = 30.0 ;

[11:40] Jagga Meredith  : ça va le faire.

[11:40] Ubit Umarov  : aussi faux

[11:41] Ubit Umarov  : maintenant je vois 15 sur big

[11:41] Ubit Umarov  : oups c'est parti lol

[11:41] Jagga Meredith  : je vais le corriger.

[11:42] Jagga Meredith  : Erreur RTFM[17]

[11:42] Ubit Umarov  : mais c'était le problème.

[11:42] Ubit Umarov  : valeurs hors limites

[11:42] Ubit Umarov  : non le lm (landmark : repère)

[11:42] Ubit Umarov  : pas sûr qu'on puisse le lire comme ça.

[11:42] Ubit Umarov  : mais qui sait :)

Documentation LSL et OSSL

[11:42] Jagga Meredith  : c'est ce que dit le Wiki, mais le Wiki est horriblement dépassé et seuls les Linden peuvent le mettre à jour apparemment.

[11:43] Jagga Meredith  : avons-nous notre propre wiki ?

[11:43] Ubit Umarov  : seulement avec ossl.

[11:43] Kayaker Magic  : Quelqu'un a une copie de l'ancien wiki de LSL.

[11:43] Andrew Hellershanks  : Jagga, oui mais pas pour des informations sur les fonctions de LSL autres que celles qui ont été implémentées.

[11:43] Jagga Meredith  : ok.

[11:43] Kayaker Magic  : Donc nous aurons quelque chose quand LL supprimera les leurs.

[11:43] Jagga Meredith  : oui.

[11:43] Ubit Umarov  : Digi en a un.

[11:44] Ubit Umarov  : le vieux wiki de Sl.

[11:44] Ubit Umarov  : une copie de celui-ci

[11:44] Andrew Hellershanks  : Il y avait un autre wiki sur les fonctions LSL autre que celui de LL mais je ne sais pas s'il existe encore.

[11:44] Kayaker Magic  : Oui, il n'est plus à jour mais c'est mieux que rien.

[11:44] Jagga Meredith  : beaucoup d'exemples douteux, orthographe/grammaire, trucs cassés.

[11:45] Ubit Umarov : http://opensimulator.org/wiki/Scripting_Documentation

[11:45] Ubit Umarov  : le nôtre avec ossl

[11:46] Ubit Umarov : http://opensimulator.org/wiki/OSSL_Implemented

[11:46] Jagga Meredith  : yup - on l'utilise beaucoup.

[11:46] Ubit Umarov : http://opensimulator.org/wiki/YEngine

[11:46] Vincent.Sylvester @hg.zetaworlds.com:8002 : La première réponse de dataserver est l'événement réel qui a été déclenché, la seconde est les données qui ont été retournées.

[11:47] Andrew Hellershanks : bbiba

[11:47] Object : Script en cours d'exécution

[11:48] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ou quelle est la question sur le code du dataserver ?

[11:48] Object : Script en cours d'exécution

Deuxième question : deuxième valeur bancale

[11:49] Jagga Meredith  : pourquoi la deuxième valeur est bancale ?

[11:49] Vincent.Sylvester @hg.zetaworlds.com:8002 : Parce que c'est la coordonnée totale de la région où on se trouve.

[11:49] Jagga Meredith  : Orientation Island, Orientation Island (122, 136, 30)

[11:49] Object : Script en cours d'exécution

[11:49] Object: <18446744073709400000.000000, 11437119952138600.000000, 37.792831>

[11:50] Jagga Meredith : [09:57] dataserver demo 1 : <122.368202, 1316115418448010.000000, 30.213690>

[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002 : Le vecteur[18] de région est celui de cette même région.

[11:50] Ubit Umarov  : ouais, de belles valeurs lol

[11:50] Andrew Hellershanks  : Je suis de retour.

[11:50] Kayaker Magic : RegionCorner+region locale ?

[11:50] Kayaker Magic : Regioncorner*256+region locale ?

[11:50] Ubit Umarov  : je ne me souviens pas de ce qu'ils utilisent.

[11:50] Vincent.Sylvester @hg.zetaworlds.com:8002 : La description du vecteur retourné dans l'événement dataserver ci-dessus implique que la valeur est une coordonnée de région ; elle représente en fait la distance en mètres de l'emplacement du point de repère par rapport à <0,0,0> dans la région dans laquelle le script s'exécute. Pour un point de repère pointant vers un emplacement dans la région actuelle, c'est la même chose qu'une coordonnée de région ; cependant, lorsqu'il est utilisé avec un point de repère pointant vers une région différente, les valeurs x et y du vecteur peuvent être assez grandes (et/ou négatives). Le vecteur peut être utilisé pour calculer une coordonnée globale (comme ci-dessus) ou la distance d'un point de repère par rapport à l'objet contenant le script dans la région actuelle ou sur toute la grille.

[11:50] Ubit Umarov  : il est possible que ce soit global, oui.

[11:51] Vincent.Sylvester @hg.zetaworlds.com:8002 : Ne pas oublier la section avertissements  :)

[11:51] Ubit Umarov  : oui, cela ressemble à des coordonnées globales.

[11:51] Andrew Hellershanks  : C'est ce que je pensais aussi.

[11:52] Ubit Umarov : Pour lbsa[19], x est 10402

[11:52] Ubit Umarov  : nahh ne correspondra pas lol

[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il s'agit d'une valeur relative entre le point de départ et le point d'arrivée, et non de la coordonnée de la région globale, donc cela vous indique simplement la distance à l'autre région en x et y.

[11:52] Vincent.Sylvester @hg.zetaworlds.com:8002 : Vous devez récupérer les coins de la région pour calculer les coordonnées globales.

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : région actuelle + coordonnées du point de repère (landmark)

[11:53] Vincent.Sylvester @hg.zetaworlds.com:8002 : Il y a un script d'exemple sur le wiki LSL pour cela.

[11:53] Jagga Meredith  : ok

[11:53] Ubit Umarov : c'est 2,667,520 m

[11:54] Jagga Meredith  : toujours étrange que peu importe où je l'essaie, c'est toujours la deuxième valeur qui est bizarre.

[11:54] Jagga Meredith  : les deux autres valeurs sont correctes.

[11:55] Jagga Meredith  : je vais essayer de faire fonctionner Visual Studio[20] et de le trouver par moi-même.

[11:55] Ubit Umarov : ligne 5033 de LSL_Api.cs dans le code source de OpenSim-0.9.2.1

     if(lm != null)
        {
           double rx = (lm.RegionHandle >> 32) - World.RegionInfo.WorldLocX + (double)lm.Position.X;
           double ry = lm.RegionHandle - World.RegionInfo.WorldLocY + (double)lm.Position.Y;
           LSL_Vector region = new LSL_Vector(rx, ry, lm.Position.Z);
           reply = region.ToString();
        }

[11:56] Ubit Umarov : errr

[11:56] Andrew Hellershanks  : Pourquoi ce code ne fait pas le >> 32 bit pour ry ?

[11:56] Ubit Umarov  : parce qu'il n'est pas censé le faire :p

[11:56] Jagga Meredith  : *gloussements*

[11:56] Andrew Hellershanks  : alors pourquoi le fait-il pour rx ?

[11:57] Ubit Umarov  : parce qu'il est censé le faire.

[11:57] Ubit Umarov  : :p

[11:57] Kayaker Magic  : Précise.

[11:57] Andrew Hellershanks  : Cela ne semble pas avoir de sens qu'il produise des types de valeurs complètement différents pour X et Y dans le cadre d'un seul résultat.

Découverte d'un bogue et correction à tester

[11:57] Ubit Umarov  : mais je vois un bogue là.

[11:58] Jagga Meredith  : uh oh

[11:58] Ubit Umarov :

    double rx = (lm.RegionHandle >> 32) - World.RegionInfo.WorldLocX + (double)lm.Position.X;
    double ry = (lm.RegionHandle & 0xffffffff) - World.RegionInfo.WorldLocY + (double)lm.Position.Y;
    SL_Vector region = new LSL_Vector(rx, ry, lm.Position.Z);

[11:58] Ubit Umarov  : c'est mieux comme ça.

[11:58] Ubit Umarov  : je testerai plus tard

[11:58] Jagga Meredith  : ok

[11:58] Object : Script en cours d'exécution

[11:58] Object: <18446744073709400000.000000, 11437119952138600.000000, 37.792831>

[11:59] Ubit Umarov  : bien sur lbsa X est aussi étrange

[11:59] Ubit Umarov  : très :)

[11:59] Ubit Umarov  : et désolé d'élaborer quoi ?

[12:00] Andrew Hellershanks  : Nous sommes au début de l'heure. Des sujets de dernière minute pour aujourd'hui ?

[12:00] Ubit Umarov  : un handle de région est une chose de 64bit avec 2 choses de 32bit encodées.

[12:00] Jagga Meredith  : J'ai fini.

[12:00] Kayaker Magic  : Explique pourquoi la formule pour x devrait être différente de celle pour y. Tout ce que tu as dit c'est "supposé être".

[12:00] Andrew Hellershanks  : Jagga, ok.

[12:00] Ubit Umarov  : X sur les 32 bits supérieurs

[12:00] Ubit Umarov  : ok ?

[12:01] Andrew Hellershanks  : Kayaker, je sais. Je n'aime pas le problème d'incohérence apparente.

[12:01] Vincent.Sylvester @hg.zetaworlds.com:8002 : 12314530233958400 C'est un identifiant de région.

[12:01] Kayaker Magic  : En interne, il a été stocké comme un entier 64bit ? Je n'ai jamais entendu parler de ce type de données dans OpenSim.

[12:01] Vincent.Sylvester @hg.zetaworlds.com:8002 : L'emplacement réel du handle de cette région est : 2867200 2867200

[12:01] Ubit Umarov  : on l'appelle aussi un long

[12:02] Kayaker Magic  : Je veux dire que je n'ai jamais entendu parler de coordonnées stockées comme des entiers 64 bits entiers.

[12:02] Ubit Umarov  : depuis toujours...

[12:02] Ubit Umarov  : handle de région

[12:02] Andrew Hellershanks  : Kayaker, handles de région.

[12:02] Ubit Umarov  : le truc de la région et du viewer.

[12:03] Ubit Umarov  : mais ce code est confus.

[12:03] Ubit Umarov  : il semble retourner à une distance depuis l'angle de la région actuelle.

[12:03] Kayaker Magic  : OH, j'ai vu LL faire des trucs bizarres avant, ça explique tout.

[12:04] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est ce qu'il est censé retourner

[12:04] Ubit Umarov  : selel (lm.RegionHandle & 0xfffffff) semble manquer ici

[12:04] Vincent.Sylvester @hg.zetaworlds.com:8002 : C'est un vrai décalage entre la région où on se trouve et la position du point de repère dans l'autre région.

[12:05] Ubit Umarov  : Landmark (vecteur) Les données vectorielles reçues par dataserver sont un décalage de <0,0,0> de la région actuelle. Pour obtenir la position globale d'un point de repère, ajoutez llGetRegionCorner()[21].

[12:05] Vincent.Sylvester @hg.zetaworlds.com:8002 : Si tu l'appliquais globalement en te tenant sur <0,0,0> sur la région actuelle, tu te retrouverais sur les coordonnées exactes....

[12:05] Ubit Umarov  : ouais c'est la position lm dans les coordonnées locales de la région actuelle.

[12:05] Ubit Umarov  : peut être < 0 etc...

[12:05] Andrew Hellershanks  : Si le code récupère un handle de région, alors le masque semble manquer à ry.

[12:06] Ubit Umarov  : je viens de le dire deux fois :p

[12:06] Andrew Hellershanks  : Je suis d'accord avec toi.

[12:06] Vincent.Sylvester @hg.zetaworlds.com:8002 : Aujourd'hui nous sommes tous en surchauffe lol

[12:07] Andrew Hellershanks  : Vincent, apparemment oui.

[12:07] Ubit Umarov  : :)

[12:08] Andrew Hellershanks  : Rien d'autre pour aujourd'hui ? Je dois partir sous peu. Mon chat me réclame un temps de jeu (ou de l'attention) depuis environ 15 minutes.

[12:08] Ubit Umarov  : L'ancienne version 0.8 avait une autre forme du bug.

[12:08] Vincent.Sylvester @hg.zetaworlds.com:8002 : On pourrait probablement construire une fonction ossl pour les données de landmark pour retourner une liste des différents paramètres du lm, je ne sais pas trop pourquoi, mais il y a aussi un tas d'autres paramètres.

[12:09] Jagga Meredith  : oui, s'il vous plaît.

[12:09] Ubit Umarov : Dans OpenSim-9.2.1/OpenSim/Framework/AssetLandmark.cs Ligne 33

  public class AssetLandmark : AssetBase
   {
       public Vector3 Position;
       public ulong RegionHandle;
       public UUID RegionID;
       public string Gatekeeper = string.Empty;
       public int Version;

[12:09] Ubit Umarov  : pas beaucoup :)

[12:10] Vincent.Sylvester @hg.zetaworlds.com:8002 : La position réelle pourrait être utile et uuid je suppose.

[12:10] Jagga Meredith  : yup

[12:10] Ubit Umarov  : ok je sais pourquoi le grand nombre

[12:10] Ubit Umarov  : je pense

[12:11] Ubit Umarov  : c'est une chose négative lol

[12:11] Jagga Meredith  : Je me posais la question.

[12:12] Ubit Umarov :

        double rx = (double)(lm.RegionHandle >> 32) - (double)World.RegionInfo.WorldLocX + (double)lm.Position.X;
        double ry = (double)(lm.RegionHandle & 0xffffffff) - (double)World.RegionInfo.WorldLocY + (double)lm.Position.Y;

[12:12] Ubit Umarov  : ça devrait le faire.

[12:12] Andrew Hellershanks : Est-ce que le fait d'isoler un paquet de handle de région fonctionnera correctement avec une valeur négative ?

[12:12] Kayaker Magic  : Ah, quand on enlève la moitié inférieure, il faut signer l'extension.

[12:12] Jagga Meredith  : kewl

[12:12] Ubit Umarov  : nopes

[12:13] Ubit Umarov  : handler et worldloc sont des uints.

[12:13] Ubit Umarov  : bon ulong et uint

[12:13] Jagga Meredith  : mais est-ce que tu veux y mettre quelque chose de plus gros ?

[12:13] Ubit Umarov  : non.

[12:13] Kayaker Magic  : Pourquoi ne pas convertir le regionHandle en 32bit int avant de le convertir en double ?

[12:14] Ubit Umarov  : c'est le cas.

[12:14] Ubit Umarov  : le compilateur fun dit que le (double) n'est pas nécessaire :)

[12:15] Andrew Hellershanks : :)

[12:15] Ubit Umarov  : bien, je vais le tester et le valider.

[12:15] Kayaker Magic  : Bien vu Jagga ! Merci d'avoir attiré l'attention d'Ubit sur ce problème !

[12:15] Andrew Hellershanks  : C'est toujours agréable de voir un rapport de bogue suivi d'une correction rapide.

[12:16] Jagga Meredith  : Merci.

[12:17] Ubit Umarov  : c'est mieux que le lm soit pour une région de la même grille aussi :P

Conclusion

[12:17] Andrew Hellershanks  : Sur ce, je vais conclure la réunion d'aujourd'hui. Je pense que mon chat a déjà renoncé à moi, mais je vais quand même aller la voir pour savoir si elle veut encore jouer.

[12:17] Andrew Hellershanks  : Merci à tous d'être venus. Nous nous reverrons la semaine prochaine.

[12:17] Selby.Evans @grid.kitely.com:8002  : au revoir à tous.

[12:17] Andrew Hellershanks  : Au revoir, Selby.

[12:17] Ubit Umarov  : cya