Jump to content

Script in object changing from mono to LSL?


Profaitchikenz Haiku
 Share

You are about to reply to a thread that has been inactive for 670 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

This is a very recent observation but an annoying and slightly inexplicable one.

In all my viewers I have the options set to "save scripts as mono instead of LSL"

I very rarely set a script in an object to LSL unless it is doing a very trivial task.

Three times in the past few days I have found a script I'm running inworld as part of a test out of memory, and when opening it have found the box for mono unchecked.

I certainly wouldn't have set any of the current range of scripts to be LSL, so I'm puzzled as to how they could have had this setting change? 

Anybody else seeing this?

  • Thanks 1
Link to comment
Share on other sites

Yeah, I suspect it's something like that. In Firestorm, there's an option to "Save scripts edited from inventory as Mono" (under the "Firestorm" / "Build 2" tab). I'm not sure what the default setting for that might be—I only use that viewer under extreme duress—but other viewers may have their own default behaviors for that.

  • Thanks 1
Link to comment
Share on other sites

I'll shamelessly double Rolig and Qie. In my experience (using primarily Kokua), scripts created in inventory have neither box checked after being dragged into a prim; if the boxes aren't right next to each other in your GUI layout, I could see it being easy to forget to check the mono box.

Script permissions though. . . I swear there's a naughty gremlin about.

Link to comment
Share on other sites

OK, a brief test seems to support Rolig:

I created a script in my inventory, saved it, dragged it to a prim. 

It arrived as LSL

I edited it, saved it in the prim, checked it, still LSL

I dragged it back to inventoory, dragged it to a fresh prim, still LSL

I edited it, changed it to momo, dragged it back to Inventory, dragged it to a fresh prim, now Mono.

SO the "new" viewer I've been using for a few weeks is doing something my old" viewer didn't seem to?

I may have to ask the devs what is the point of their checkbox "Save scripts in inventory as mono instead of LSL" ?

More testing required. Let me dust off Singularity

 

ETA

Trouble is, I'm now terrified of trying to relog after being forcibly ejected from all and every world recently

 

 

Edited by Profaitchikenz Haiku
Link to comment
Share on other sites

Okaaaaaaay

When I run Singularity, and create a script in my inventory, then drag it into a prim and edit it, the mono box is already checked for me

When I run catznip, and create a script in my inventory, then drag it into a prim and edit it, the mono box is unchecked. I have to check it, and drag the script back to inventory.

Both viewers have the option to "save scripts in inventory a mono instead of LSL " checked.

So after several days testing spoiled because of scripts running out of memory overnight, I think I'm reverting to my old habits, V1 rules, OK?. Colour me recidivist.

ETA,Singularity, Firestom and ColVlViewer all do the same, after selecting this option, a script you create in your main inventory and edit then save back arrives in a fresh prim as a mono script.

My brief experiment with the V3-style viewers is drawing to a close.

 

Edited by Profaitchikenz Haiku
Link to comment
Share on other sites

Thanks for some confirmation, I can take my analyst off danger-money for the time being now.

The official viewer creates scripts in the inventory as LSL by default, this shows when the script is dragged into an inworld object. It can then be set to Mono, and when dragged back into main inventory, will remain set to mono. But there is no preferences setting to make the default behaviour anything else.

As mentioned above, Singularity, Firestorm and CoolVlViewer have a preferences setting that does create new scripts in main inventory as Mono when the option is checked.

What I don't know, because I usually use the LL viewer just for verifying things, is whether there has been up till now a change and scripts wre created by default in mono and had to be explicitly changed to LSL in an inworld object then saved back to inventory.

Catznip behaves as the official viewer, scripts start out as LSL, regardless of the checkbox setting. But I've forgiven them, how can you be cross with anything that has Cat in the name? (I did give them a report via the feedback button on this but as yet it hasn't arrived in their Atlassian list of things to do or not do).

Edited by Profaitchikenz Haiku
  • Like 3
Link to comment
Share on other sites

On 12/15/2021 at 5:54 PM, Quistess Alpha said:

I'll shamelessly double Rolig and Qie. In my experience (using primarily Kokua), scripts created in inventory have neither box checked after being dragged into a prim; if the boxes aren't right next to each other in your GUI layout, I could see it being easy to forget to check the mono box.

Script permissions though. . . I swear there's a naughty gremlin about.

I didn't do it!!

  • Haha 2
Link to comment
Share on other sites

  • 6 months later...
On 12/21/2021 at 3:49 PM, Profaitchikenz Haiku said:

The official viewer creates scripts in the inventory as LSL by default [...] But there is no preferences setting to make the default behaviour anything else.

Thank you! I was getting insane trying to figure out what had changed, because all of a sudden, tons of scripts I had created in inventory (loading them from an external editor) were being saved as LSL. Urgh! I thought that the default was supposed to be Mono — and that was a decade ago!

However, the truth is that I spend way too much time on Firestorm (and my own OpenSim grid...), where I had checked that box for 'saving scripts as Mono...' a decade ago and then silently forgot all about that. Most likely, the official SL viewer had never changed that 'default' behaviour since Mono was introduced.

The irony is that I've been searching on the LSL Wiki as well as on the Jira to see if any of this is mentioned. Aye, sure, there are more than a handful of 'requests' (made around 2010-2012) to add a checkbox, or a preference, or something like that — but all those Jira tickets, besides pointing to each other (sometimes it's circular!), never point to a 'fix'.

Well, actually, I'm not being honest. There is an obscure reference to the days when LL was working on their Project Snowstorm viewer where supposedly this ticket had been 'fixed' and the chosen behaviour (Mono or LSL by default) could be selected 'under preferences'. I tried to figure out exactly where this used to be, but I couldn't. The Jira tickets from Project Snowstorm were merged with the 'regular' tickets (once Snowstorm became the official viewer, for all purposes), but they were given completely different numbers, and sort of mixed up between duplicates and so forth.

What seemed to be an issue was that, in order to get the viewer to store inventory-created scripting assets as Mono-compiled bytecode, the viewer developer team at LL required some input/help/assistance from the server developer team. This doesn't seem to make any sense whatsoever until you consider that LSL complies to LSO bytecode in the viewer, but to Mono bytecode in the server (allegedly on the region where our avatar is at that moment). Thus, when saving a script in inventory, the viewer can automatically compile it to LSO bytecode, and store both; while getting a Mono bytecode compilation requires the server to do some work and report back to the viewer. This makes sense to me.

However...

  • Project Snowstorm is supposed to have fixed this issue by adding a 'preference' somewhere. Where is it, and where has it been placed on the current viewer? If it's not there — the question is why not? What happened during the merger of Snowstorm into the 'main' viewer code? My guess is that some bits were left over, or forgotten, or so terribly mislabeled that the developers thought they had fixed this pending issue, but actually nothing had been done.
  • As mentioned, practically any third-party viewer out there supports compiling to Mono by default, and that has been the norm for many, many years.

My guess is that the viewer team had requested some 'assistance' from the server team (as one can read on the Jira), who promptly made the necessary changes, and the viewer team proceeded to implement it on Snowstorm; this code was then forked and re-used on all 3rd party viewers since then. However, once LL merged Snowstorm into the mainline viewer, for some obscure reason, this change was not implemented at all, but rather just silently ignored in their internal workflow, with all interested parties checking this off on a list of support tickets; but, a the end of the day, the change was never implemented, LL just thinks it was!

/me *sighs*

Anyway, as said, thanks for your very helpful comment. I only wish I had read it several hours ago... instead of scorching the 'net in search of an answer that simply is not there.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 670 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...