Hello Eric, Very useful, thankyou.
Caveat XEngine appears to cast library function parameters to the relevant type, though I can see this handy for novice scriptwriters it does encourage some less than elegant techniques Some popular scripts freely available to OpenSim use this feature: For instance: llListFindList takes 2 parameters of the type List, when in fact the existing compiler permits any type (as far as we have tested). example... integer bah = llListFindList( blah1, llList2String(blah2, blah3)); // compiles and kind of works. This of course fails when compiled with LSLcc, the explanation is clear and precise so easy to fix (enable compile) with a local cast. Z On 5 November 2015 at 12:52, Jak Daniels <[email protected]> wrote: > Hi Eric, > > yes I can confirm now that it does open and compile correctly in VS C# > 2010 express now. Thank you. > > I'm now installing VS2015 in a win10 virtual machine so I don't clobber my > SSD, so I can compile and play with the LSL editor. > > kind regards > Jak > > > > > On 04/11/2015 06:10, Eric Blundell wrote: > > Let me just make a slight correction to my last message, and add some > info... > > After removing the "<LangVersion>5</LangVersion>" stuff from the > non-editor related .csproj files, > > I found that VS2010 is actually able to open the > "MonoDevelop-LibLSLCC.sln" solution file in the source tree and build it > without any problems. > > I'm going to be pushing the changes I made to the .csproj files shortly, > I will probably rename "MonoDevelop-LibLSLCC.sln" to something like > "LibLSLCC-No-Editor.sln" and update the build instructions in the > README.md to specify that solution as the solution to use for building the > library on Mono. > > > I have not tested that the editor build is working with anything other > than vs2015, but I will test with the prior versions vs2012+ to see what > all > works, then put some info in the README.md about what IDE's the Editor > portion of the project can be built in. > > > > On Tue, Nov 3, 2015 at 11:53 PM, Eric Blundell <[email protected]> > wrote: > >> Thanks for letting me know about this problem Jak. (See the bottom for >> TLDR :P) >> >> >> I am using vs2015 and WiX 3.10.1, it does indeed seem to be a problem >> with vs2010 C#. >> >> I was unable to find an updated download for vs2010 C# to test with, only >> an SP1 ISO I found on stackoverflow: >> >> >> http://stackoverflow.com/questions/6871865/url-for-visual-studio-2010-express-iso >> >> http://go.microsoft.com/?linkid=9709969 >> >> >> I tried installing vs2010, however this version will not attempt to open >> my solution files at all as it says they are incompatible. >> >> I can however, load the .csproj files for certain projects in my build. >> >> I cannot get it to update from SP1, I am unsure if updates are still >> available to download for vs2010. >> >> When I try to update, it just directs me to use windows update which does >> not seem to find any updates related to it. >> >> >> === Why it's not loading === >> >> >> With vs2010 SP1, I was only able to load: LibLSLCC.csproj, >> lslcc_cmd.csproj and DemoArea.csproj. >> >> LibraryDataScrapingTools was incompatible because it was building against >> .NET 4.5. >> >> 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. >> I then made some code changes to make it compatible with .NET 4.0. >> >> I will be committing the changes to LibraryDataScrapingTools tonight, as >> this project is supposed to be .NET 4.0 compatible. >> >> >> >> The LSLCCEditor related projects I am pretty sure are incompatible at the >> moment due to the .NET framework level they require as well. >> >> The code base for LSLCCEditor requires a minimum of .NET 4.5 to compile, >> and the code changes required to make the editor projects >> compatible with .NET 4.0 are not as trivial as the changes I made to the >> LibraryDataScrapingTools project. >> >> 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 >> only WPF application, and that sort of compatibility profile is not >> necessary. >> >> >> >> 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. >> I do not think the latest version of WiX installer framework supports >> vs2010 anymore. >> >> >> === How I got LibLSLCC, LibraryDataScrapingTools, lslcc_cmd and DemoArea >> to build. === >> >> >> >> After the code changes to LibraryDataScrapingTools and downgrading the >> .NET Framework level... >> >> I created a new vs2010 project and added (LibLSLCC, >> LibraryDataScrapingTools, lslcc_cmd and DemoArea) as existing projects. >> >> When trying to build these projects I got the message "Error 1 Invalid >> option '5' for /langversion; must be ISO-1, ISO-2, 3 or Default" >> for all of the projects except 'DemoArea' >> >> I resolved this by manually editing the .csproj file for each >> non-building project in a text editor, removing the occurrences of: >> >> <LangVersion>5</LangVersion> >> >> >> 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. >> >> After that, LibLSLCC, LibraryDataScrapingTools, lslcc_cmd and DemoArea >> were all able to build under vs2010. >> >> === >> >> That all being said, I will be adding a vs2010 compatible solution file >> to the repository that contains Projects: >> >> * LibLSLCC, >> * lslcc_cmd >> * LibraryDataScrapingTools >> * DemoArea >> >> So that you can at-least build the library, command line compiler, >> library data scraper and demo project with vs2010. >> >> >> Unfortunately making LSLCCEditor build in vs2010 would require some non >> trivial code changes, a new method of triggering the WiX installer build, >> and a downgrade from .NET 4.5 to .NET 4.0 for the editor related projects. >> >> 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. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Tue, Nov 3, 2015 at 10:05 AM, Jak Daniels < <[email protected]> >> [email protected]> wrote: >> >>> Hi Eric, >>> >>> Thank you for posting up your work to this group. This all looks very >>> promising, and I was intrigued to give it a try. >>> 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. >>> >>> Is this a VS 2010 problem do you think? >>> >>> 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? >>> >>> Thanks >>> Jak >>> >>> >>> On 02/11/2015 19:24, Eric Blundell wrote: >>> >>> Hello all. >>> >>> 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 >>> a new (BSD Licensed) Compilation/Code Generation framework for LSL, >>> tailored towards usage with OpenSim. I thought I should share it >>> at this point of its development. >>> >>> >>> This is pretty much a "full" or "true" compiler front end. >>> >>> It's built on-top of ANTLR4 and ANTLR4's CSharp target. >>> ANTLR4 however has been completely abstracted and the library provides >>> its own Rich LSL Syntax Tree for users to deal with. >>> >>> My library includes an OpenSim code generation target which I have >>> integrated into my OpenSim fork on GitHub, it's implemented as an >>> optional compiler that you can enable in your OpenSim.ini. >>> >>> >>> The Code validation step my library performs when building a syntax tree >>> implements full front end syntax checking, dead code detection, the works. >>> It also emits extended warning information that is standard to most >>> compilers now days. >>> >>> >>> The OpenSim code generator I have written and included with the library >>> drastically improves compatibility with scripts written for SecondLife. >>> Order of evaluation in generated code is correct for LSL (Right to Left) >>> among many other things. >>> >>> 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. >>> >>> >>> The README.md for the project goes into a bit more detail on what all >>> the library can do. >>> >>> >>> My library LibLSLCC is on GitHub here: >>> >>> <https://github.com/EriHoss/LibLSLCC>https://github.com/EriHoss/LibLSLCC >>> >>> >>> The project includes an LSL Editor (Windows Only, I used AvalonEdit) >>> with the project that features code completion and syntax highlighting. >>> >>> 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 >>> OpenSim server with C# scripting enabled. >>> >>> 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 >>> mono with monodevelop/xbuild. >>> >>> >>> === >>> >>> >>> The OpenSim fork that integrates my compiler is here: >>> >>> <https://github.com/EriHoss/OpenSim_With_LibLSLCC> >>> https://github.com/EriHoss/OpenSim_With_LibLSLCC >>> >>> >>> It includes a few minor bug fixes to XEngine and Runtime Script >>> functions. >>> >>> Such as the 'IdleTimeout' setting not being honored properly. >>> >>> And llParseString2List using culture specific comparisons, causing it to >>> misbehave when comparing Unicode characters on Mono. >>> >>> >>> >>> I have added new attributes to OpenSim's script module >>> constants/functions and also to ScriptBaseClass. >>> This is so LibLSLCC can de-serialize the classes into library data >>> that's consumable by its code validator and code generator. >>> >>> I have also made some slight changes to IScriptModuleComms and >>> ScriptModuleCommsModule. >>> >>> The old compiler in my fork works as it did before, so you can switch >>> back and forth from LibLSLCC to the old compiler >>> if you want without any problems. >>> >>> There are more details on the changes I have made in the README.md. >>> >>> >>> == >>> >>> I started working on this sometime early last year when I broke my wrist >>> and was unable to do much for a while, and >>> 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, >>> 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. >>> >>> Hopefully this will be useful, any feedback is appreciated :) >>> >>> >>> >>> _______________________________________________ >>> Opensim-dev mailing >>> [email protected]http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev >>> >>> >>> >>> _______________________________________________ >>> Opensim-dev mailing list >>> [email protected] >>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev >>> >>> >> > > > _______________________________________________ > Opensim-dev mailing > [email protected]http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev > > > > _______________________________________________ > Opensim-dev mailing list > [email protected] > http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev > >
_______________________________________________ Opensim-dev mailing list [email protected] http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
