<p dir="ltr">Thanks Again Zadark</p>
<p dir="ltr">This should be easy to fix, I need to change the type validation system just little so the syntax tree can be built with these types of implicit conversion present.</p>
<p dir="ltr">The code generator can then be made to generate the cast when necessary, since it will pass syntax checking.</p>
<p dir="ltr">I think I am going to implement it as a compatibility option in the compiler that you can turn on or off, depending on if you want the linden compilers more strict type checking behavior.</p>
<p dir="ltr">I should also probably make order of evaluation correction on binary operations something you can disable if needed, since I can see that causing compatibility problems somewhere too.</p>
<p dir="ltr">Side Note: I have not tested on Mac yet, but I plan to do so today if I can get time to, sorry.<br>
</p>
<div class="gmail_quote">On Nov 7, 2015 7:42 AM, "Zadark Portal" <<a href="mailto:zadarkportal@gmail.com">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">Hello Eric,<div><br><div>Very useful, thankyou.</div><div><br></div><div>Caveat </div><div>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 </div><div><br></div><div>Some popular scripts freely available to OpenSim use this feature:</div><div>For instance:<br></div><div>llListFindList takes 2 parameters of the type List, when in fact the existing compiler permits any type (as far as we have tested).</div><div><br></div><div>example... integer bah = llListFindList( blah1, llList2String(blah2, blah3)); // compiles and kind of works.</div><div><br></div><div>This of course fails when compiled with LSLcc, the explanation is clear and precise so easy to fix (enable compile) with a local cast.</div><div><br></div><div>Z</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 5 November 2015 at 12:52, 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>
yes I can confirm now that it does open and compile correctly in
VS C# 2010 express now. Thank you.<br>
<br>
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.<br>
<br>
kind regards<span><font color="#888888"><br>
Jak</font></span><div><div><br>
<br>
<br>
<br>
On 04/11/2015 06:10, Eric Blundell wrote:<br>
</div></div></div><div><div>
<blockquote type="cite">
<div dir="ltr">Let me just make a slight correction to my last
message, and add some info...
<div><br>
</div>
<div>After removing the
"<LangVersion>5</LangVersion>" stuff from the
non-editor related .csproj files,</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>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</div>
<div>"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.</div>
<div><br>
</div>
<div><br>
</div>
<div>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</div>
<div>works, then put some info in the README.md about what IDE's
the Editor portion of the project can be built in.</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Nov 3, 2015 at 11:53 PM, 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"></a><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>
</blockquote>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<br>
<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></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">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>