[Opensim-dev] My new LSL compiler project
Jak Daniels
jak at ateb.co.uk
Thu Nov 5 12:52:54 UTC 2015
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 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 <e800 at gmail.com
> <mailto:e800 at gmail.com>> 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
> "Error1Invalid 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 <jak at ateb.co.uk
> <mailto:jak at ateb.co.uk>> 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 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
>>
>>
>> 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
>>
>>
>> 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 list
>> Opensim-dev at opensimulator.org
>> <mailto:Opensim-dev at opensimulator.org>
>> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at opensimulator.org
> <mailto:Opensim-dev at opensimulator.org>
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
>
>
>
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at opensimulator.org
> http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20151105/a9c7f3e1/attachment-0001.html>
More information about the Opensim-dev
mailing list