<p dir="ltr">The open sim fork builds and runs fine on mono, it should be no different than the standard open sim build.  LibLSLCC and the ANTLR runtime are distributed as binaries with the OpenSim fork so there is no build step required for them.</p>
<p dir="ltr">I have tested the OpenSim build on Linux (Lubuntu 15.04) with mono (3.2.8) and it runs fine with no issues so far.</p>
<p dir="ltr">I will have to test how it runs on mac with LibLSLCC integrated,  but I am pretty certain it will build with mono on mac, and run just as well as a normal OpenSim would.</p>
<p dir="ltr">(If OpenSim currently works on mac with mono in its base state that is, I have never built/ran it unmodified on mac so I am not certain)</p>
<p dir="ltr">===</p>
<p dir="ltr">The LibLSLCC project however requires you to use the LibLSLCC-NoEditor.sln solution file from the source tree to build the library on mono, because the editor projects are windows only.  The editor depends on WPF and NET 4.5.</p>
<p dir="ltr">That particular project file excludes the windows only portion of the project from the build entirely.</p>
<p dir="ltr">The LibLSLCC library, lslcc command, library data scraping tools, and demo area project included in the LibLSLCC-NoEditor.sln solution will all build and run under mono, and have been tested on Linux (Lubuntu 15.04 with mono 3.2.8).</p>
<p dir="ltr">LibLSLCC-NoEditor.sln from the LibLSLCC source tree can be opened directly with monodevelop or built from the command line using the xbuild command provided with mono.</p>
<p dir="ltr">I have provided instructions for building LibLSLCC on *nix platforms with mono in the BUILD.md file, and also near the bottom of the README.md file in the LibLSLCC source tree.<br></p>
<p dir="ltr">As for how LibLSLCC builds/preforms on mac I will have to test.  There is not really anything I can think of in my library that's screaming to me at the moment as something that would cause a mac incompatibility on mono.</p>
<p dir="ltr">Unless somehow the antlr runtime or parser generator behaves differently.  Or the latest mono/xbuild on mac does not like the msbuild project files.</p>
<p dir="ltr">Just to make sure you have java installed and that its in your path,  so the ANTLR parser generation tool can run during the build, and you should be good to go.</p>
<p dir="ltr">==</p>
<p dir="ltr">I am going to setup a Mac VM and try everything out,  I will post back and update my projects if needed when I find out for sure.</p>
<div class="gmail_quote">On Nov 4, 2015 7:59 PM, "Michael Emory Cerquoni" <<a href="mailto:nebadon2025@gmail.com">nebadon2025@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">will this run and compile with mono in linux and mac too?</p>
<div class="gmail_quote">On Nov 4, 2015 5:55 PM, "Eric Blundell" <<a href="mailto:eblundell800@gmail.com" target="_blank">eblundell800@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">I also just recently (tonight) adjusted code generation to support script resets in code generated on the server, and also to support script state persistence.</p>
<p dir="ltr">Previously globals were not being reset when the script reset because they were generated in a container class during server side compilation, and assigned to a single field in the generated class all together in one object.</p>
<p dir="ltr">This was not friendly to the way XEngine script resets occur since the current script base class code requires all global variables be a declared member of the generated script class that derives from it.  </p>
<p dir="ltr">The base class collects the initial values of the generated script global fields so it can reset them later, and also has an API for manipulating them dynamically that I had not considered before.</p>
<p dir="ltr">===</p>
<p dir="ltr">I moved the generated global variable initialization into the constructor of the actual script class, and declared the fields in the script class itself to make script resets/state persistence work;  while still maintaining the ability for global variables to reference previously defined globals in their declaration.<br><br><br><br></p>
<div class="gmail_quote">On Nov 4, 2015 7:30 PM, "Zadark Portal" <<a href="mailto:zadarkportal@gmail.com" target="_blank">zadarkportal@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thank you for the update Eric<div><br><div>Over the next few days we will extend the tests hopefully provide you with additional validation.</div><div>In the meantime should you wish for any specifics to be considered please shout.</div><div><br></div><div>Z</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 4 November 2015 at 07:56, Eric Blundell <span dir="ltr"><<a href="mailto:eblundell800@gmail.com" target="_blank">eblundell800@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks Zadark, that's also good to know.<div><br></div><div><br></div><div>The OpenSim fork should indeed build without problems in every version of visual studio that OpenSim is already stated to support.</div><div>I have pre-built my library for that repository and stuck it in the 'bin' folder with its ANTLR 4 dependency. </div><div>Then updated prebuild.xml for the places I needed to reference it. </div><div><br></div><div>It does not affect the build OpenSim build very much since they are just binary files.</div><div>prebuild.exe is still used to generate the new OpenSim project that houses the compiler addon, so everything new is friendly to the existing build system.</div><div><br></div><div><br></div><div>You're right, I should probably remove the pre-configuration though.  </div><div>I had it there so whenever I pulled the repository down onto a new machine I was testing I would not have to re-configure after building.</div><div><br></div><div>Having it there is not inline with how the OpenSim project actually does things.</div><div><br></div><div>==</div><div><br></div><div><br></div><div>Jak was talking about the actual LibLSLCC library over here: <font color="#1155cc"><span style="font-size:12.8px"><u><a href="https://github.com/EriHoss/LibLSLCC" target="_blank">https://github.com/EriHoss/LibLSLCC</a></u></span></font></div><div><font color="#1155cc"><span style="font-size:12.8px"><u><br></u></span></font></div><div><font color="#1155cc"><span style="font-size:12.8px"><u><br></u></span></font></div><div>It has an LSL editor included in it that will not build in vs2010 due to .NET 4.5 compatibility issues.</div><div><br></div><div>I provide several .sln files in the source tree of that project however,  I just got done fixing the "LibLSLCC-NoEditor.sln" project file so</div><div>that it should build in VS2010 and up.</div><div><br></div><div>That solution file of course excludes the editor, and just builds the projects related to the library itself, which I made sure so far will</div><div>build with at least VS2010.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 4, 2015 at 12:27 AM, Zadark Portal <span dir="ltr"><<a href="mailto:zadarkportal@gmail.com" target="_blank">zadarkportal@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">FWIW<div>The project builds and runs when using VS2012 with no modification other than networks adjustments to the various ini files. As these adjustments would be required by most test environments I would however suggest that opensim.ini and *common.ini files be omitted from the git repository.</div><div><br></div><div>Great project all the same, </div><span><font color="#888888"><div>Z</div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 4 November 2015 at 05:53, Eric Blundell <span dir="ltr"><<a href="mailto:eblundell800@gmail.com" target="_blank">eblundell800@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Thanks for letting me know about this problem Jak.   (See the bottom for TLDR :P)</div><div><br></div><div><br></div>I am using vs2015 and WiX 3.10.1, it does indeed seem to be a problem with vs2010 C#.<div><br></div><div>I was unable to find an updated download for vs2010 C# to test with, only an SP1 ISO I found on stackoverflow:</div><div><br></div><div><a href="http://stackoverflow.com/questions/6871865/url-for-visual-studio-2010-express-iso" target="_blank">http://stackoverflow.com/questions/6871865/url-for-visual-studio-2010-express-iso</a><br></div><div><br></div><div><a href="http://go.microsoft.com/?linkid=9709969" target="_blank">http://go.microsoft.com/?linkid=9709969</a><br></div><div><br></div><div><br></div><div>I tried installing vs2010, however this version will not attempt to open my solution files at all as it says they are incompatible.</div><div><br></div><div>I can however, load the .csproj files for certain projects in my build.</div><div><br></div><div>I cannot get it to update from SP1, I am unsure if updates are still available to download for vs2010.</div><div><br></div><div>When I try to update, it just directs me to use windows update which does not seem to find any updates related to it.</div><div><br></div><div><br></div><div>=== Why it's not loading ===</div><div><br></div><div><br></div><div>With vs2010 SP1,  I was only able to load: LibLSLCC.csproj, lslcc_cmd.csproj and DemoArea.csproj.</div><div><br></div><div>LibraryDataScrapingTools was incompatible because it was building against .NET 4.5.</div><div><br></div><div>I downgraded LibraryDataScrapingTools to .NET 4.0  and re-installed the 'System.Data.Sqlite.Core' package from nuget using vs2015 in order to make it load in vs2010.</div><div>I then made some code changes to make it compatible with .NET 4.0.</div><div><br></div><div>I will be committing the changes to LibraryDataScrapingTools tonight, as this project is supposed to be .NET 4.0 compatible.</div><div><br></div><div><br></div><div><br></div><div>The LSLCCEditor related projects I am pretty sure are incompatible at the moment due to the .NET framework level they require as well.  </div><div><br></div><div>The code base for LSLCCEditor requires a minimum of .NET 4.5 to compile, and the code changes required to make the editor projects</div><div>compatible with .NET 4.0 are not as trivial as the changes I made to the LibraryDataScrapingTools project.</div><div><br></div><div>I am not sure if I want to limit the LSLCCEditor part of the project to a  .NET 4.0 at the moment, as it is a Windows</div><div>only WPF application, and that sort of compatibility profile is not necessary.</div><div><br></div><div><br></div><div><br></div><div><div>I also noticed when installing WiX v3.10.1 on a Virtual Machine with vs2010 installed that It does not try to register itself with vs2010 as a project type.</div><div>I do not think the latest version of WiX installer framework supports vs2010 anymore.</div></div><div><br></div><div><br></div><div>=== How I got LibLSLCC, LibraryDataScrapingTools, lslcc_cmd and DemoArea  to build.  ===</div><div><br></div><div><br></div><div><br></div><div>After the code changes to LibraryDataScrapingTools and downgrading the .NET Framework level...</div><div><br></div><div>I created a new vs2010 project and added (LibLSLCC, LibraryDataScrapingTools, lslcc_cmd and DemoArea) as existing projects.</div><div><br></div><div>When trying to build these projects I got the message "Error<span style="white-space:pre-wrap"> </span>1<span style="white-space:pre-wrap"> </span>Invalid option '5' for /langversion; must be ISO-1, ISO-2, 3 or Default<span style="white-space:pre-wrap">"</span></div><div><span style="white-space:pre-wrap">for all of the projects except 'DemoArea'</span></div><div><br></div><div><span style="white-space:pre-wrap">I resolved this by manually editing the .csproj file for each non-building project in a text editor, removing the occurrences of:</span></div><div><br></div><div><LangVersion>5</LangVersion></div><div><br></div><div><br></div><div>That particular MSBuild setting is not necessary for vs2015 or Mono to build the library anyway, so I am going to remove it and commit the changes.</div><div><br></div><div>After that, LibLSLCC, LibraryDataScrapingTools, lslcc_cmd and DemoArea were all able to build under vs2010.</div><div><br></div><div>===</div><div><br></div><div>That all being said,  I will be adding a vs2010 compatible solution file to the repository that contains Projects:</div><div><br></div><div>* LibLSLCC, </div><div>* lslcc_cmd<br></div><div>* LibraryDataScrapingTools</div><div>* DemoArea</div><div><br></div><div>So that you can at-least build the library, command line compiler, library data scraper and demo project with vs2010.</div><div><br></div><div><br></div><div>Unfortunately making LSLCCEditor build in vs2010 would require some non trivial code changes, a new method of triggering the WiX installer build, </div><div>and a downgrade from .NET 4.5 to .NET 4.0 for the editor related projects.</div><div><br></div><div>I'm not sure if I want to make these changes to the Editor portion of the project just for the sake of being compatible with older versions of Visual Studio.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 3, 2015 at 10:05 AM, Jak Daniels <span dir="ltr"><<a href="mailto:jak@ateb.co.uk" target="_blank">jak@ateb.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hi Eric,<br>
      <br>
      Thank you for posting up your work to this group. This all looks
      very promising, and I was intrigued to give it a try.<br>
      I checked out the source from github and I tried building in VS C#
      2010 express... but only 3 of the projects will load. 
      LibraryDataScrapingTools, LSLCCEditor, LSLCCEditor.CompletionUI
      all say (incompatible) and LSLCCEditorInstaller says (unavailable)
      even though I have WIX 3.10.1 installed.<br>
      <br>
      Is this a VS 2010 problem do you think?<br>
      <br>
      I'm a bit loathed to install VS2015 as the last time I installed
      VS2013 it just dumped everything onto my SSD c: drive and filled
      it up, with no option to put things on drive D: my large
      harddrive. It also left a mess behind (more than 50% of itself
      including MSSQL server stuff) when I tried to uninstall it. VS2015
      might be better now in this respect, but knowing MS products
      probably not! I also found VS2013 to be way, way slower loading up
      large projects like OpenSimulator than VS2010. So before I take
      the possibly irreversible path of installing VS2015, is there
      something I can do to make it load in VS2010 express?<br>
      <br>
      Thanks <br>
      Jak<div><div><br>
      <br>
      On 02/11/2015 19:24, Eric Blundell wrote:<br>
    </div></div></div>
    <blockquote type="cite"><div><div>
      <div dir="ltr">
        <div>Hello all.</div>
        <div><br>
        </div>
        <div>I am a bit new to OpenSim development (well at-least
          sharing stuff I have made..) but for a quite a while now I
          have been working on</div>
        <div>a new (BSD Licensed) Compilation/Code Generation framework
          for LSL, tailored towards usage with OpenSim.  I thought I
          should share it </div>
        <div>at this point of its development.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>This is pretty much a "full" or "true" compiler front end.</div>
        <div><br>
        </div>
        <div>It's built on-top of ANTLR4 and ANTLR4's CSharp target.</div>
        <div>ANTLR4 however has been completely abstracted and the
          library provides its own Rich LSL Syntax Tree for users to
          deal with.</div>
        <div><br>
        </div>
        <div>My library includes an OpenSim code generation target which
          I have integrated into my OpenSim fork on GitHub, it's
          implemented as an </div>
        <div>optional compiler that you can enable in your OpenSim.ini.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The Code validation step my library performs when building
          a syntax tree implements full front end syntax checking, dead
          code detection, the works.</div>
        <div>It also emits extended warning information that is standard
          to most compilers now days. </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The OpenSim code generator I have written and included with
          the library drastically improves compatibility with scripts
          written for SecondLife.</div>
        <div>Order of evaluation in generated code is correct for LSL
          (Right to Left) among many other things.</div>
        <div><br>
        </div>
        <div>As an example, all of the encryption scripts you can find
          on the LSL wiki will compile correctly and execute with
          correct behavior using my compiler.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The README.md for the project goes into a bit more detail
          on what all the library can do.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>My library LibLSLCC is on GitHub here:</div>
        <div><br>
        </div>
        <div><span style="white-space:pre-wrap">  </span><a href="https://github.com/EriHoss/LibLSLCC" target="_blank"></a><a href="https://github.com/EriHoss/LibLSLCC" target="_blank">https://github.com/EriHoss/LibLSLCC</a></div>
        <div><span style="white-space:pre-wrap">  </span></div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The project includes an LSL Editor (Windows Only, I used
          AvalonEdit) with the project that features code completion and
          syntax highlighting.</div>
        <div><br>
        </div>
        <div>It can be used to test CSharp code generation for OpenSim
          by compiling LSL into C# using LibLSLCC, which can then be
          uploaded to an</div>
        <div>OpenSim server with C# scripting enabled.</div>
        <div><br>
        </div>
        <div>The library itself is cross-platform, but the editor and
          editor installer are not.  There's a separate project file for
          building the library on</div>
        <div>mono with monodevelop/xbuild.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>===</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>The OpenSim fork that integrates my compiler is here:</div>
        <div><br>
        </div>
        <div><span style="white-space:pre-wrap">  </span><a href="https://github.com/EriHoss/OpenSim_With_LibLSLCC" target="_blank"></a><a href="https://github.com/EriHoss/OpenSim_With_LibLSLCC" target="_blank">https://github.com/EriHoss/OpenSim_With_LibLSLCC</a></div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>It includes a few minor bug fixes to XEngine and Runtime
          Script functions. </div>
        <div><br>
        </div>
        <div>Such as the 'IdleTimeout' setting not being honored
          properly.</div>
        <div><br>
        </div>
        <div>And llParseString2List using culture specific comparisons,
          causing it to misbehave when comparing Unicode characters on
          Mono.</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>I have added new attributes to OpenSim's script module
          constants/functions and also to ScriptBaseClass.  </div>
        <div>This is so LibLSLCC can de-serialize the classes into
          library data that's consumable by its code validator and code
          generator.</div>
        <div><br>
        </div>
        <div>I have also made some slight changes to IScriptModuleComms
          and ScriptModuleCommsModule.</div>
        <div><br>
        </div>
        <div>The old compiler in my fork works as it did before, so you
          can switch back and forth from LibLSLCC to the old compiler</div>
        <div>if you want without any problems.</div>
        <div><br>
        </div>
        <div>There are more details on the changes I have made in the
          README.md.<br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>==</div>
        <div><br>
        </div>
        <div><span style="white-space:pre-wrap">  </span></div>
        <div>I started working on this sometime early last year when I
          broke my wrist and was unable to do much for a while, and</div>
        <div>I have only recently moved the code from my Git server up
          to GitHub.  I'm going to continue improving this in my spare
          time,</div>
        <div>right now I am doing rolling releases versioned by date
          anywhere from once every few days to a few times a day.  I am
          also keeping my OpenSim fork synced with the latest OpenSim
          commits.</div>
        <div><br>
        </div>
        <div>Hopefully this will be useful, any feedback is appreciated
          :)</div>
        <div><br>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      </div></div><pre>_______________________________________________
Opensim-dev mailing list
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a>
</pre>
    </blockquote>
    <br>
  </div>

<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org" target="_blank">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div>
<br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" rel="noreferrer" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div>