Mono Beta Refresh 8

The Mono regions on the beta grid were updated with new binaries yesterday that resolve SVC-1421, but more importantly merge the Mono changes with Havok 4. There are now very few open issues remaining, so if you haven’t already, please recompile your scripts to Mono on the beta grid and test them. If you find any problems, please file them as JIRA issues here, or tell us about them at the Mono office hours held in Sandbox Goguen MONO on the beta grid on Wednesdays at 8AM and Fridays at 3PM.

The video above shows Blueman Steele’s LSL version of Conway’s Game of Life running side by side on the LSL and Mono virtual machines. The LSL version running on the left was recompiled to produce the Mono version on the right without making any changes to the LSL source code. Not only does the Mono virtual machine run the cellular automaton over 4 times faster than the LSL virtual machine, but it also uses less than 25% of the CPU time consumed by the LSL version. If you have any other good demonstrations of Mono in Second Life, please let me know.

Thanks again for your continued support throughout the Mono beta process.

About babbagelinden

Software Engineer at Linden Lab
This entry was posted in Bugs & Fixes, Games, Movies & Machinima, Preview Grid, Scripting and tagged . Bookmark the permalink.

39 Responses to Mono Beta Refresh 8

  1. This is way cool!!!!

  2. Kristian says:

    This is awesome stuff, guys, but could you perhaps tell us how your work towards a more robust and reliable asset server and user database clusters is coming? Speedy simulators are useless when the objects won’t rez.

  3. Kristian says:

    And Babbage, I know that’s not your bag. I want you to know I have nothing but appreciation for you getting this long-overdue improvement to us at least.

  4. Zen Zeddmore says:


  5. ac14 Hutson says:

    wow over 4 times faster? does this mean that the 16kb of memory for each script will be upgraded also?

  6. hugsalot says:

    oh upgraded from little mice in hamster wheels, to real hamsters! woot!

  7. shockwave yareach says:

    I’m looking forward to this. But you may want to tell us scripters who aren’t in the Beta test groups (the main grid is buggy enough, thanks) what we need to know to recompile scripts for Mono. Is there a #pragma we should include at the beginning of the script or something like that?

  8. Havok 4 has broken some content.

    Can you estimate what percentage of scripts will break with Mono?

    I am looking forward to this advancement and making new scripted items πŸ™‚

  9. AO says:

    Where can we get this MONO viewer (to support the compiling of scripts into MONO rather than LSL) from, it is not linked to from any LL download page?

  10. @7 – Shockwave yareach

    Just a simple checkbox.. click “mono” and save!

  11. Masuyo Aabye says:

    AO – MONO is all server side and it’s currently testing on the beta grid, so grab the viewer to connect to the beta grid.

  12. AO says:

    @11 Last I checked (and even right now) there is *no* MONO viewer for download, and hasn’t been for quite some time. The *only* one for download is the old Havak4 beta based on

    Hence why I am asking. (And to answer a question before you ask, no, any other viewer does *not* have the MONO check box πŸ˜‰

  13. shaq Merlin says:


    Yea… This one movie was even good !!!

    Best Regards,

  14. mikeD Streeter says:

    I get “this video is no longer available” ;(

  15. Phantom Ninetails says:

    12 AO, Viewer from the beta preview download page has Mono support built in.

    Note that Havok4 was never client side and never needed a special viewer. There never was a Havok4-specific viewer, except perhaps newer release candidate viewers that have the extra build height unlocked. Though all Mono needs in the viewer is the checkbox that tells the server to compile in Mono instead.

  16. AO says:

    @15 *REALLY*???? Where did you download it from (not the beta download page, at least not recently, maybe they replaced the MONO viewer with this?).
    And of course I know a viewer wasn’t *needed* (I mainly went in with the main viewer, RC or Windlight) for Havok4, but that is what LL called it. Probably for good reason too, you and I may know all the command line options like grid, loginuri, loginpage, …, but why should everyone?

    To repeat my question.
    Does anyone know where the *MONO* viewer can be downloaded?

  17. Luciftias says:

    I wanna test this on my ecosystems…shame I can’t haul them off to the beta grid.

  18. Blinders Off says:

    @ 5. Yes, one of the main benefits of MONO is that it will grant code space of 64k instead of 16k. Which frankly… is what, 3 decades out of touch? Let’s all go back to Apple II and TRS-80 Model IIIs, shall we?

  19. Monalisa Robbiani says:

    I would like to test a new project, a TV gameshow setup, in Mono. How is it possible to move the object to my beta inventory?

  20. Phantom Ninetails says:

    AO, yes, really, that download on the beta page I linked to is the Mono viewer, that is where you get it. I do not understand why you are still asking.

  21. Ahab Schmo says:

    @8 Garth FairChang
    Mono is fully backwards compatible as LSL is still running. You can chose either.

  22. Dekka Raymaker says:

    What video?

  23. Zena Juran says:

    I do think that Havok 4 should be “fully” functional before any testing with Mono is done. I will have no way to tell if my problems are still Havok 4 or MONO.

  24. aSwede says:

    @18, Blinders Off

    Now you surprise me. In the less flattering way.

    Adding more heap space (I’m guessing thats close enough to how things work here) per script also means that more memory has to be marshalled/serialized when you teleport or cross into another sim adding more work to an already costly and error-prone process.

    Assuming you’re equipped like some kind of average avatar with scripted hair, scripted jewelry, scripted clothes, bling and HUDs it quickly turns into a (very) costly operation.

    Furthermore, adding more heap space, in itself, isn’t a way to improve quality. You might make it possible to build/script new things but that’s it.

    If you’re in the mood for some fingerpointing I’d suggest pointing at the lack of nested lists and other such shortcomings in the scripting language. Perhaps MONO will help with that too…

  25. Buckaroo Mu says:

    24 aSwede: It’s not quite that simple. MONO scripts will only allocate as much memory as is needed for the script, whereas the LSL2 VM would allocate 16kb for ANY script, no matter the size. Since the vast majority of scripts (of the “bling on” type, grr) will be a fraction of the size. Unfortunately, LL will NOT be automatically recompiling older scripts for MONO, meaning that any scripter not willing to recompile for MONO will still be running in the LSL2 VM. Expect to see a great many scripters offering upgrades once MONO reaches the main grid – anything that’s scripted will see the benefits of it.

  26. shockwave yareach says:


    Not everything requires huge amounts of memory. Every joint in the SSRMS at the Nuetral Bouyancy Lab has a 16 bit computer in it with only 32K of flash. The software running the control laws takes up not even half of that. And since the OS and interfacing for SL isn’t taking up any code space, 64K should be fine for most apps.

  27. AO says:

    @20 Phantom Ninetails, ok, so you don’t believe me that it is *not* a MONO viewer, that’s fine, but at least have the manners to *try* the version that we are talking about (in a MONO region, of course), before you keep claiming it is the MONO viewer.
    IF you truly do not understand why I am still asking, try version the only one currently on the Beta Test page.

    *IF* you decide to actually try it, you will notice a very glaring lack of something, something *vital*.

    I am not mean, so I will recommend that you keep a backup of your current install, after all you *will* be wanting to go back to it, assuming you really are trying MONO. πŸ˜‰

  28. Urantia Jewell says:

    @27 AO,

    The only way to re-compile a script to Mono is to rez the object (with the script you want to see operate) on the Beta (aka; aditi) grid. Then open the script from the contents tab in Edit; you will see the Mono checkbox here. Scripts that you open from Inventory will not have the Mono chackbox. Hope this helps… tried it out myself. πŸ™‚

  29. AO says:

    @28 Thank you, Urantia Jewell I will have a look at that later, and I hope you are right (at least in terms of testing MONO).
    If it is, then it is a strange way of doing things, and one that could have some nasty surprises in store (if even only part of what I have thought of just now could be done) if it hits the main grid like this (not to mention confusion).

  30. aSwede says:

    @25 Buckaroo Mu

    So, if a list or string grows, a proper call to the kernel will be done to (re)allocate more memory? Sounds … ineffective. Preallocating a heap-like memory area per script would speed things up even more, unless I’m misunderstanding you or something else. Who knows, perhaps the script runtime keeps its own heap…

    Or are strings and lists preallocated at declaration time to some max size? Then it’s instead a matter of lugging around structures that on average waste half of the allocated memory.

    Or is it some kind of mixed stack/pseudoheap allocation scheme?

    But no matter the allocation scheme, letting scripts allocate more memory will let people use more memory (d’uh) per script turning teleports and sim border crossings into more work which was my point.

    I haven’t participated in the beta work with MONO but I’m looking forward to see what happens to my hacks when it’s rolled out.

  31. Zena Juran says:

    Okies, I’m on the beta grid. Is this still a snapshot from last year or something. How can I test my newer products?

  32. toric says:

    Zena, if your avatar’s inventory hasn’t been refreshed for a while, that does make it tough with the objects. But you can still test the scripts by copying and pasting your LSL code around, if you don’t mind building perhaps simplified versions of your newer objects on beta.

  33. FireFox Bancroft says:

    Can’t even login to the beta grid, I keep getting that stupid “incorrect login name or password” even though I’ve sextuple-checked everything. I can login to the main viewer fine however.

  34. FireFox Bancroft says:

    @ AO

    Make a new shortcut to the current client, name it whatever you want then open up the shortcuts properties and paste this line in the Target field replaceing C:\ with whatever drive you have SL installed on:

    “C:\Program Files\SecondLifeADITI\SecondLifePreview.exe” –aditi -helperuri -settings settings_beta.xml -set SystemLanguage en-us

    Worked for me and I can compile my scripts in Mono, the checkbox is there.

  35. AO says:

    Thanks to Urantia above, I have managed to get MONO to work.
    Note: The viewer has *NO* indication that it supports MONO, other than in one hidden location. The only time it is mentioned is in relation to the server in the release notes.

    The secret (after following the normal methods for installing a beta viewer), is:
    – First, pay no attention to what the viewer claims.
    – Second, MONO is *NOT* supported in the location that you would expect (the script window).
    – Third, MONO seems to only be supported when a script is *already* in a rezed object, and *then* you edit the script. At that point you can select MONO (Thanks Urantia).

    Handy hint: If you have complex or fast scripts that do something (for example die/move/change shape/etc), it is useful to find a no-script parcel to put the scripts into an object/rez an object, and then go into the object, set everything to not running (the menu bar seems to only work sometimes), and then take it back into your inv. After that you can rez it and access the scripts in a MONO region, before the scripts do their own thing.

  36. Periapse Linden says:

    Garth — We don’t plan on eliminating the LSL2 runtime, so it will not be necessary to port scripts over to Mono. In some cases it will be impossible, as some old scripts are No Modify and the scripter has left SL. I started this wiki page:

    for scripters to share notes and ask questions about compatibility quirks they discover.

    AO — The Mono UI is documented on the wiki:

  37. Kyder Ling says:

    Sweet upgrade, LL. I say it is about time that we get Havok and Mono. Now we can have both decent scripts and simulators without sweating bullets. Keep up the good work.

  38. Chorazin Allen says:

    Any chance of the db snapshot that aditi is running being refreshed? January is a long time ago in the life of a scripter πŸ˜‰

  39. Laser Pascal says:

    Nice to see that Mono is so much faster.

    Though, I was curious about the very slow speed of this game of life simulator, even in Mono… So I built my own, which runs on the standard SL grid.

    It is also 10×10 (the last line still has a boundary condition bug that I haven’t bothered to solve yet), but uses a single script and runs at roughly twice the speed of the Mono version displayed in this video.

    I feel like I’m bragging, and might be a bit, but it’s good to know that efficient scripters will still be in demand.

Comments are closed.