Chat log from the meeting on 2022-07-19

 [11:12] Ubit.Umarov @hg.osgrid.org:80: have 2022 to test [11:12] Andrew Hellershanks: Hello, everyone. [11:12] Ubit.Umarov @hg.osgrid.org:80: should work just fine also [11:12] Ubit.Umarov @hg.osgrid.org:80: hi wet and frozen andrew [11:12] Andrew Hellershanks: I forgot what day it was and was having a bit of a doze after lunch. [11:12] Vincent Sylvester: hehehe [11:13] Ubit.Umarov @hg.osgrid.org:80: " [11:13] Ubit.Umarov @hg.osgrid.org:80: * Tampa throws a bucket of water onto Plugh [11:13] Ubit.Umarov @hg.osgrid.org:80: " [11:13] Ubit.Umarov @hg.osgrid.org:80: ( at irc) [11:13] Vincent Sylvester: Not many changes this week, some fsassets fixes and another minor thing in libomv attempting to figure out why that might be crashing. [11:14] Vincent Sylvester: So far I have not heard of further crashes after rolling mono back to the 122 release and logs are empty as well [11:16] Andrew Hellershanks: Hello, Kayaker. [11:17] Vincent Sylvester: In going through the lsl api to add more try catch I found some minor things I might prep some patches for if I can remember where they were exactly [11:17] Kayaker Magic: Hello all. Have I missed much in the first quarter hour? [11:17] Andrew Hellershanks: Kayaker, no, you haven't. [11:20] Andrew Hellershanks: Regarding another item from last week I have solved the causes the Exceptions I was having last week with a scripted object. [11:20] Andrew Hellershanks: The problem with the null reference issue during compile was solved by updating the grid code to 0.9.2.1. [11:22] Andrew Hellershanks: The HeapException error was solved by dragging the object from inventory to the ground, recompiling the scripts, then taking the object back to inventory. After that I got no more heap exceptions when dragging the object to ground after that. [11:23] Andrew Hellershanks: When I was still digging in to the grid code to determine the cause of the null reference issue I saw some inconsistency in the heap check that still puzzles me. [11:24] Andrew Hellershanks: For the local test to see if there is still heap avaialble it adds in some usage before the text but for the ArraysHeap it doesn't. [11:24] Ubit.Umarov @hg.osgrid.org:80: did u look to current code? [11:25] Vincent Sylvester: I do not recall exactly when, but there were quite recent changes to heap calculations after a mantis report pointed at it being wrong [11:25] Vincent Sylvester: Might have been a couple months [11:27] Ubit.Umarov @hg.osgrid.org:80: yeah [11:27] Andrew Hellershanks: I thought I did but I will have to look again. I need to look at the code on another machine to remember which file had the routines that did the usage check. [11:28] Vincent Sylvester: Try latest master dev see what results you get with that, might be already fixed, if not, yay more fixes on the way [11:28] Andrew Hellershanks: Vincent, it is already solved as of 0.9.2.1 so no need for me to check master. [11:29] Andrew Hellershanks: Time for the Q&A. :) Jagga, you have a couple of questions. [11:29] Jagga Meredith: I'm doing a training area over on Aviworlds.  Doing a sscripting tutorial. [11:30] Selby.Evans @grid.kitely.com:8002 entered draw distance (25.44 m). [11:30] Selby.Evans @grid.kitely.com:8002 entered the region (25.44 m). [11:30] Jagga Meredith: If you're interewsted in taking a look, there's the olandmark [11:30] Selby.Evans @grid.kitely.com:8002 entered chat range (10.81 m). [11:30] Jagga Meredith: fojund two issues [11:30] Ubit Umarov: wc selby.Evans [11:30] Selby.Evans @grid.kitely.com:8002: hi everyone [11:30] Jagga Meredith: requestid = llRequestInventoryData( llGetInventoryName( INVENTORY_LANDMARK, 0 ) );
 * Tampa throws ice cubes at Plugh

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: Hello, Selby. [11:31] Jagga Meredith whispers: the sedcobnd value is wonky [11:31] Andrew Hellershanks: It certainly is. [11:31] Jagga Meredith: Orientation Island, Orientation Island (122, 136, 30) [11:32] Jagga Meredith: also... [11:32] Jagga Meredith: {// [integer boolean,vector color,float intensity,float radius,float falloff] llSetPrimitiveParams([PRIM_POINT_LIGHT, toggle, colour, intensity, size, falloff]); [11:32] Jagga Meredith: size doesn't seem to do anyhgting [11:33] Andrew Hellershanks thinks someone is playing with windlight settings. [11:33] Andrew Hellershanks: Jagga, have you filed a mantis for that first sisue? [11:33] Jagga Meredith: no, there's a prim in front of you [11:33] Jagga Meredith: no [11:33] Jagga Meredith: just discovered it [11:35] Andrew Hellershanks: The other question is what version of code Aviworlds is using. Possibly they have modified something that resulted in that error. Should be easy enough to test the behaviour in master. [11:35] Jagga Meredith: tried it here [11:35] Jagga Meredith: same issue [11:35] Andrew Hellershanks: ok, good to know. [11:35] Ubit Umarov: where is the point prim? [11:36] Jagga Meredith: in a sphere [11:36] Ubit Umarov: i mean here [11:36] Ubit Umarov: im 2 lazy to mk my own test :p [11:37] Andrew Hellershanks: hehe [11:37] Ubit Umarov: fond it [11:37] Jagga Meredith: gave it to you [11:37] Jagga Meredith: or grab a copy [11:37] Ubit Umarov: or get god powers [11:37] Jagga Meredith: heh [11:38] Jagga Meredith: you need to be owner for the menu to work [11:38] Vincent.Sylvester @hg.zetaworlds.com:8002: The dataserver will post two replies like that, what exactly is the issue there? [11:38] Jagga Meredith: it's a demonstrator for how to use the funcrtion [11:39] Jagga Meredith: the size parameter doesn't seem to do anyhyting [11:39] Jagga Meredith: or I'm using it wrong [11:39] Ubit Umarov: float big = 75.0; [11:39] Ubit Umarov: max is 20 [11:39] Jagga Meredith: ah [11:39] Ubit Umarov: https://wiki.secondlife.com/wiki/PRIM_POINT_LIGHT [11:40] Jagga Meredith: thanks [11:40] Ubit Umarov: float small = 30.0; [11:40] Jagga Meredith: that'll do it [11:40] Ubit Umarov: laso wrong [11:41] Ubit Umarov: now i do see 15 on big [11:41] Ubit Umarov: oops gone lol [11:41] Jagga Meredith: i'll fix it [11:42] Jagga Meredith: RTFM error [11:42] Ubit Umarov: but that was the issue [11:42] Ubit Umarov: values out of range [11:42] Ubit Umarov: no the lm [11:42] Ubit Umarov: not sure you can read it like that [11:42] Ubit Umarov: but who knows :) [11:42] Jagga Meredith: it's what Wikoi says, however Wiki is horribly out of date and only Linden's can update it apparentoly [11:43] Jagga Meredith: do we have our own wiki? [11:43] Ubit Umarov: only with ossl [11:43] Kayaker Magic: Someone has a copy of the old LSL wiki [11:43] Andrew Hellershanks: Jagga, yes but not for information about LSL functions other than if they have been impliemented. [11:43] Jagga Meredith: ok [11:43] Kayaker Magic: So we will have something when LL takes theirs away. [11:43] Jagga Meredith: yup [11:43] Ubit Umarov: digi does have one [11:44] Ubit Umarov: the old sl wiki [11:44] Ubit Umarov: a copy of it [11:44] Andrew Hellershanks: There used to be one other wiki about LSL functions other than the LL one but I don't know if it still exists. [11:44] Kayaker Magic: Yeah, it is out of date but better than nothing. [11:44] Jagga Meredith: lots of questionable examples, spelling/grammar, broken stuff [11:45] Ubit Umarov: http://opensimulator.org/wiki/Scripting_Documentation [11:45] Ubit Umarov: ours with ossl [11:46] Ubit Umarov: http://opensimulator.org/wiki/OSSL_Implemented [11:46] Jagga Meredith: yup - usse it a lot [11:46] Ubit Umarov: http://opensimulator.org/wiki/YEngine [11:46] Vincent.Sylvester @hg.zetaworlds.com:8002: The first reply from dataserver is the actual event that was fired, the second is the data that was returned [11:47] Andrew Hellershanks: bbiba [11:47] Object: Script running [11:48] Vincent.Sylvester @hg.zetaworlds.com:8002: Or what is the question about that dataserver code? [11:48] Object: Script running [11:49] Jagga Meredith: why is second vallue wonky? [11:49] Vincent.Sylvester @hg.zetaworlds.com:8002: Because it's total coordinate from the region you are on [11:49] Jagga Meredith: Orientation Island, Orientation Island (122, 136, 30) [11:49] Object: Script running [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: As in it's the vector to the region from this one [11:50] Ubit Umarov: yeah nice values lol [11:50] Andrew Hellershanks: I'm back. [11:50] Kayaker Magic: RegionCorner+region local? [11:50] Kayaker Magic: Regioncorner*256+region local? [11:50] Ubit Umarov: don't remember what they have [11:50] Vincent.Sylvester @hg.zetaworlds.com:8002: The description of the vector returned in the dataserver event above implies the value is a region coordinate; it in fact represents the distance in meters of the landmark's location relative to <0,0,0> in the region in which the script is running. For a landmark pointing to a location in the current region, that's the same as a region coordinate; however, when used with a landmark pointing to a different region the vector's x and y values can be quite large (and/or negative). The vector is suitable for use in calculating a global coordinate (as above) or a landmark's distance from the object containing the script in the current region or across the entire grid. [11:50] Ubit Umarov: possible its is global yes [11:51] Vincent.Sylvester @hg.zetaworlds.com:8002: Don't skip caveats section :) [11:51] Ubit Umarov: yeah looks like global coors [11:51] Andrew Hellershanks: I was thinking that too [11:52] Ubit Umarov: lbsa x is 10402 [11:52] Ubit Umarov: nahh will not match lol [11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: It's a relative from this to the destination actually not the global region coordinate, so it just tells you the distance to the other region in x and y [11:52] Vincent.Sylvester @hg.zetaworlds.com:8002: You need to fetch the region corners to work out global coordinates [11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: current region + landmark coordinate [11:53] Vincent.Sylvester @hg.zetaworlds.com:8002: There is an example script on the LSL wiki for this [11:53] Jagga Meredith: ok [11:53] Ubit Umarov: that is 2,667,520 m [11:54] Jagga Meredith: still strange that no matteer where I try it, it's always the second value that's weird [11:54] Jagga Meredith: the other two are fine [11:55] Jagga Meredith: going to try to get visual studio working, find it for myself [11:55] Ubit Umarov: 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: Why is that code not doing the >> 32 bit for ry? [11:56] Ubit Umarov: bc it not suposed to do it :p [11:56] Jagga Meredith: *giggles* [11:56] Andrew Hellershanks: then why is it doing it for rx? [11:57] Ubit Umarov: bc it is supposed to do it [11:57] Ubit Umarov: :p [11:57] Kayaker Magic: Please elaborate. [11:57] Andrew Hellershanks: That doesn't seem to make sense for it to produce completely different types of values for X and Y as part of one result. [11:57] Ubit Umarov: but i see a bug there [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;                                LSL_Vector region = new LSL_Vector(rx, ry, lm.Position.Z); [11:58] Ubit Umarov: looks better [11:58] Ubit Umarov: ill test later [11:58] Jagga Meredith: ok [11:58] Object: Script running [11:58] Object: <18446744073709400000.000000, 11437119952138600.000000, 37.792831> [11:59] Ubit Umarov: well on lbsa X is also strange [11:59] Ubit Umarov: very :) [11:59] Ubit Umarov: nad sorry elaborate what? [12:00] Andrew Hellershanks: We are at the top of the hour. Any last minute topics for today? [12:00] Ubit Umarov: a region handle is a 64bit thing that has 2 32bit things encoded [12:00] Jagga Meredith: I'm done [12:00] Kayaker Magic: Elaborate why the formula for x should be different for y. All you said was "supposed to be" [12:00] Andrew Hellershanks: Jagga, ok. [12:00] Ubit Umarov: X on the high 32 bits [12:00] Ubit Umarov: ok? [12:01] Andrew Hellershanks: Kayaker, I know. I don't like the apparent inconsistency issue. [12:01] Vincent.Sylvester @hg.zetaworlds.com:8002: 12314530233958400 That's a region handle [12:01] Kayaker Magic: Internally it was stored as a 64bit integer? I've never heard of that data type in OpenSim [12:01] Vincent.Sylvester @hg.zetaworlds.com:8002: The true location of that region handle is: 2867200   2867200 [12:01] Ubit Umarov: it is also called a long [12:02] Kayaker Magic: I mean I never heard of co-ords stored as packed 64 bit integers. [12:02] Ubit Umarov: since ever.. [12:02] Ubit Umarov: region handle [12:02] Andrew Hellershanks: Kayaker, region handles. [12:02] Ubit Umarov: region/viewer thing [12:03] Ubit Umarov: but this code is confusing [12:03] Ubit Umarov: seems to return a distance from current region corner [12:03] Kayaker Magic: OH, I've seen LL do weird bit packing sh*t before, that explains everything. [12:04] Vincent.Sylvester @hg.zetaworlds.com:8002: That's what it is supposed to return [12:04] Ubit Umarov: selel (lm.RegionHandle & 0xfffffff) seems missing there [12:04] Vincent.Sylvester @hg.zetaworlds.com:8002: It's a true offset from the region you are on to the position of the landmark on the other region [12:05] Ubit Umarov: Landmark   (vector)    The vector data received by dataserver is an offset from <0,0,0> of the current region. To obtain the global position of a landmark add llGetRegionCorner. [12:05] Vincent.Sylvester @hg.zetaworlds.com:8002: If you applied it globally while standing at <0,0,0> on the current region you'd end up on the exact coordinate [12:05] Ubit Umarov: yeah it is the lm position in current region local coords [12:05] Ubit Umarov: can be < 0 etc [12:05] Andrew Hellershanks: If the code is unpacking a region handle then the mask does appear to be missing from ry. [12:06] Ubit Umarov: y just told that twice :p [12:06] Andrew Hellershanks: i was agreeing with you. [12:06] Vincent.Sylvester @hg.zetaworlds.com:8002: Today we all overheating lol [12:07] Andrew Hellershanks: Vincent, apparently so. [12:07] Ubit Umarov: :) [12:08] Andrew Hellershanks: Anything else for today? I need to go shortly. My cat has been after me for play time (or attention) for the last 15 or so minutes. [12:08] Ubit Umarov: old 0.8 had other form of the bug lol [12:08] Vincent.Sylvester @hg.zetaworlds.com:8002: Could probably build a ossl function for landmark data to return a list of the various parameters of the lm, not sure what for, but it has a bunch more parameters as well [12:09] Jagga Meredith: yes please [12:09] Ubit Umarov: 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: not many :) [12:10] Vincent.Sylvester @hg.zetaworlds.com:8002: Actual Position might be useful and uuid I suppose [12:10] Jagga Meredith: yup [12:10] Ubit Umarov: ok i know why the big number [12:10] Ubit Umarov: i think [12:11] Ubit Umarov: its a negative thing lol [12:11] Jagga Meredith: was wondering about that [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: sould do it [12:12] Andrew Hellershanks: Is that pulling apart of a region handle packing going to work properly with a negative value? [12:12] Kayaker Magic: Ah, when you hack out the lower half, you have to sign extend it. [12:12] Jagga Meredith: kewl [12:12] Ubit Umarov: nopes [12:13] Ubit Umarov: handler and worldloc are uints [12:13] Ubit Umarov: well ulong and uint [12:13] Jagga Meredith: but are you trying to stuff something bigger in them? [12:13] Ubit Umarov: no [12:13] Kayaker Magic: How about converting the regionHandle to a 32bit int before converting it to double? [12:14] Ubit Umarov: it is there [12:14] Ubit Umarov: fun compliler tells the (double) is not needed :) [12:15] Andrew Hellershanks: :) [12:15] Ubit Umarov: well ill test this and commit [12:15] Kayaker Magic: Good catch Jagga! Thanks for bringing this to Ubit's attentioin! [12:15] Andrew Hellershanks: Always nice seeing a bug report followed by a quick fix. [12:16] Jagga Meredith: ty [12:17] Andrew Hellershanks: With that I'll wrap up todays meeting. I think my cat has already given up on me but I'll go see her anyway to see if she still wants to play. [12:17] Ubit Umarov: better that the lm is for a region n same grid also :P [12:17] Andrew Hellershanks: Thank you all for coming. See you again next week. [12:17] Selby.Evans @grid.kitely.com:8002: bye all [12:17] Andrew Hellershanks: Bye, Selby. [12:17] Ubit Umarov: cya