Mono Beta Refresh 4

The Mono regions on the beta grid were updated with new binaries today that resolve the following issues:

*SVC-1712 Sim crash
*SVC-1379 8 or more functions/event handlers failure
*SVC-1720 Equality test of 2 keys causes exception
*SVC-1690 if (llSubStringIndex != -1)
*SVC-1448 (reopened) list operations have side effects
*SVC-1402 typecasting string to int/float with non-numerical chars
*SVC-1350 list length hack no longer works
*SVC-1365 Run_time_perms prevents listens
*SVC-1346 string to integer casting difference
*SVC-1530 System.OverflowException with integer outside range
*SVC-1376 Does not support hexfloats for floats

This update includes some changes that are incompatible with some existing Mono scripts. If you see runtime errors produced by Mono scripts compiled before this refresh, try recompiling the script to resolve the issue.

We hope to see you at the office hours in Sandbox Goguen MONO on the beta grid on Wednesdays at 8AM and Fridays at 3PM.

Thank you again for the great response to the Mono beta and for your continued support.

About babbagelinden

Software Engineer at Linden Lab
This entry was posted in Preview Grid, Scripting. Bookmark the permalink.

21 Responses to Mono Beta Refresh 4

  1. DR Dahlgren says:

    I am a bit confused. I would truly like to do some script testing using MONO, however, I can not seem to find a MONO enabled viewer. The

    Wiki says:
    Download a Mono viewer: beta viewers
    Edit the object and open the script.
    You will see a new checkbox for compiling this script to Mono instead of LSL. Check the box for Mono, then save.
    If you fail to see the checkbox, you are not running a Mono viewer.

    The latest Beta Viewer is: 1.18.6.77968 which does not seem to have MONO, and there is no mention of MONO under the Test Software or Beta Grid page.

    Obviously I am missing something here. Could someone clue me in please?

    DRD

  2. Danball Tureaud says:

    The latest BETA viewer connects to all the sims in the BETA grid, which is Havok 4 and Mono.

  3. DR Dahlgren says:

    Well, I do not get the MONO checkbox and I was definately in a MONO region, so as I said, I am confused.

    DRD

  4. Creem says:

    It seems that scripts compiled with an older version of Mono get the following error on rez:
    System.Security.VerificationException: A system exception has occurred.

    Is this normal?

  5. Gregory McLeod says:

    I have retried the MONO BETA Refresh 4 and find it causes even more problems than earlier versions.
    Specifically after recompiling the object’s scripts and taking into inventory then re-rezzing a touching it the follwoing errors occurred.
    [Quote]
    ChinChek Board 182 MONO: Script run-time error
    ChinChek Board 182 MONO: System.InvalidProgramException: Invalid IL code in LSL_6674d4f3_9fa4_623d_4cb4_2841a3fb468d:defaulttouch_start (int): IL_007f: stfld 0x04000016
    [/Quote]
    I report it here as the JIRA is non functioonal at this time.

    at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[])
    at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000]

  6. Argent Stonecutter says:

    I think that it might be worthwhile for Linden Labs to modify the Mono compiler to insert code to store the line number in a global variable before each statement and dump that variable in the error message.

  7. DR Dahlgren says:

    Okay, I am standing in Beta Grid Sandbox Goguen MONO right now. Here is my About details:

    Second Life 1.18.3 (70780) Sep 28 2007 14:42:57 (Second Life Beta Havok)

    You are at 255641.6, 255399.9, 21.1 in Sandbox Goguen MONO located at sim3000.aditi.lindenlab.com (8.2.33.226:12035)
    Mono 1.19.0.81638

    Nowhere do I get a Compile in MONO checkbox, not under TOOLS, not anywhere on the script editor… I am truly at a loss. What I read in the Wiki does not jive at all with what I am seeing.

    Again, any info would be appreciated.

    DRD

  8. DR Dahlgren says:

    Never mind. I found it. For some reason the download page was still giving me 1.18.3 when it should be 1.18.6. I found an outside link that took me to what looks like the download page, but a different version is there.

    DRD

  9. Blinders Off says:

    It amazes me with all this effort being put into Mono, they’re not taking steps at the same time to improve the syntax and logic of the language.

    Cory himself stated LsL sux bigtime. So what… we designed a bad automobile last year.. let’s use the same design this year and make it bigger?

    Blah.

  10. Evo Common says:

    You should not be surprised. Mono is an enabler, they already have a simple scripting language that a lot of people have gotten used too. Changing it would be completely foolish on their part. LSL bugs the crap out of me but I would have to *slap* LL with a very large trout for changing it.

    Ok back to the enabler part. LL may do a lot more with Mono after LSL is implemented, such as other languages, binary ups, etc. This is way more ideal then starting with LSL and breaking pre-existing code while attempting to fix it or make it better. That would help no one.

    Overall the LSL syntax isnt that bad. It makes it exceptionally easy to do quite a lot in complex environment such as SL ala events.

  11. Very Keynes says:

    I do see both sides of this @9 and @11, but my take is that seeing as for an undisclosed length of time, both the old LSL VM and the MONO VM will be running on the simulators, and that the only reason to recompile to NONO is to future proof your new scripts, why not at least get rid of some of the quirks and bugs in LSL at the same time? After all, we do have to recompile to MONO, it is not automatic, so it would be the perfect opportunity to rewrite and optimise the old scripts at the same time. As it is People will make a fortune offering old scripts recompiled to MONO as “Latest Version – Fully mono compatible, only twice the price of the current version”. OK I am being sarcastic, real scripters wont do that, but many scammers will.
    Personally I intend to rewrite anything aimed at MONO and would love to do so in an environment that has less quirks to work around.
    At this point though, I am just happy that MONO is coming at last, so LL do what you want I will happily fit in ๐Ÿ™‚

  12. Creem says:

    @5 Gregory McLeod: that error message looks like SVC-1707 (evaluation of a key comparison fails)

  13. Sedary Raymaker says:

    It’s just a bad idea to change too many things at once. It makes debugging a nightmare. Better to get the Mono implementation working the same as current LSL, *then* start modifying the behavior once everyone is switched over. Or, better yet, allow other scripting languages altogether. I’d love to do Ruby in SL. ๐Ÿ™‚

  14. Phantom Ninetails says:

    I see Kart 1.0 still doesn’t work.. “Unable to upload [path snipped] due to the following reason: UThread injection failed. Please try again later.” – Most vehicles fail with this, the rest fail when trying to sit on them.

    I’m glad the database got refreshed so I could at least go and discover this though. ๐Ÿ™‚

    (Also noticed llInstantMessage was fixed, before this upgrade I was getting an error about the wrong key being passed to it, I was only using llGetOwner()..)

  15. shockwave yareach says:

    I think that a good solution is to have both the old and the new version selectable by the script itself. Scripts automatically run the old version of LSL unless the script starts with a special line.

    #pragma MONOVer1

    This will also allow you to move to different languages entirely in years to come without breaking anything already in existance. Let the script itself announce what type of compiler it needs.

  16. max says:

    its truth!

  17. Bucky Barkley says:

    @16

    I like the idea of a flag… even would work

    Or the *nix convention:
    #!/usr/local/prim/MonoLSL

    ๐Ÿ™‚

  18. Bucky Barkley says:

    argh.. @18 is just the php script enclosure syntax.. sorry that did not show up..

  19. Argos Hawks says:

    Will you please release an anticipated timetable for the Mono release? I know it’s a ways off, and it would all change, but it would be really great to get an idea of when LL hopes to get Mono out to the grid. I’m very eager to get my sim on the Mono early adopter program, and would love to know when this may be possible.

  20. Thanks for the update, Babbage! I’ve added two bug reports of two scripts that utterly crash (when freshly recompiled under Mono) with a lot of Mono debug messages. I wish I could be a little more specific, but all that I can do is attach the object and the debug log, and hope it helps to track the problem…

Comments are closed.