Closed kjnilsson closed 10 years ago
@kjnilsson Does the UI hang? There are upstream changes in MD causing this regression.
No it doesn't hang it just throws that exception in the logs and each line with the symbol on is blanked out. Was going to take a screen cast but QT wasn't my friend last night.
Ah also just remembered I had a compiler error in Parameters.fs as GetDefineSymbols was not overridable. Not sure if relevant as I get the same above issue with the currently released fsb as well.
I think thats a change that MD 4.3 introduces, its patched in master but probably not on the release channels yet. I wish there was a saner way of resolving the MD references needed for the F# addin.
Could you pull latest master and try again. Make sure you run configure.bat/sh and build+install the latest.
@dsyme I just tried to do a highlight usages with the version from the alpha channel and it hangs the UI.
Maybe you want to try with monodevelop 'fsharp' branch (instead of master)?
@dsyme I still get the compiler error: rrors:
/Users/karlnilsson/code/github/fsharpbinding/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.mac-linux.fsproj (default targets) -> /Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/Microsoft.FSharp.Targets (CoreCompile target) ->
/Users/karlnilsson/code/github/fsharpbinding/monodevelop/MonoDevelop.FSharpBinding/Services/Parameters.fs(63,14): error FS0855: No abstract or interface member was found that corresponds to this override
At the moment the addin is built assuming installed references rather than built against MD sources
@knocte If you use the fsharp branch of MD, you would have to use the vnext branch of the addin.
@kjnilsson Im using 4.2.4 build 32 and I can build ok.
Hmm it might be building against some old MD version I have got installed and not against the XS binaries.
Running ./configure would recreate the references based on the 'found' version of XS.
here is the output from configure: oryx:monodevelop karlnilsson$ ./configure.sh Configuring...
MonoDevelop binaries found at: /usr/local/lib/monodevelop Detected version: 4.2 Getting nuget packages...
Isn't this the problem I had in the discussion at #397 ? I just had to comment that override out to build against 4.2.3. I'm surprised if they broke the interface in a minor revision like that. @7sharp9 I thought that change was in 4.3.x?
yes that is how I got it to build in the end. Don added some compiler directives that should have worked but I suspect I have issues getting the right MD dependencies on my machine. I renamed my monodevelop source folder (as it was in the configure search path) and it now detected the correct verison (4.2.4). However, fsb now fails with:
/Users/karlnilsson/code/github/fsharpbinding/monodevelop/MonoDevelop.FSharpBinding/MonoDevelop.FSharp.mac-linux.fsproj (default targets) -> /Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/Microsoft.FSharp.Targets (CoreCompile target) ->
/Users/karlnilsson/code/github/fsharpbinding/monodevelop/MonoDevelop.FSharpBinding/FSharpHighlightUsagesExtension.fs(66,19): error FS0366: No implementation was given for 'ISymbol.ToReference() : ISymbolReference'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'.
@kjnilsson Yes, it prefers a local install of monodevelop, see configure.fsx.
If you have time, please submit a PR for configure.fsx that reports a warning if multiple MD/XS installation points are found, and accepts a parameter indicating which to use.
@kjnilsson Could you list the full command line used to invoke fsc by xbuild/msbuild? Still feels like an unholy mix of MD/XS assemblies are being referenced (the error you are getting is symptomatic of MD/XS 4.3.x DLLs being referenced as part of the build)
certainly: reCompile: Tool /Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/fsc.exe execution started with arguments: -o:obj/Debug/FSharpBinding.dll -g --debug:full --noframework --define:TRACE --define:DEBUG --define:MDVERSION_4_2_4 --optimize- --tailcalls- --resource:obj/Debug/icons.fsharp-icon-32.png --resource:obj/Debug/icons.fsharp-script-32.png --resource:obj/Debug/icons.fsharp-file-icon.png --resource:obj/Debug/icons.fsharp-project-icon.png --resource:obj/Debug/icons.fsharp-script-icon.png --resource:obj/Debug/FSharpBinding.addin.xml -r:../dependencies/gtk-sharp-2.0/pango-sharp.dll -r:../dependencies/gtk-sharp-2.0/atk-sharp.dll -r:../dependencies/gtk-sharp-2.0/gdk-sharp.dll -r:../dependencies/gtk-sharp-2.0/gtk-sharp.dll -r:../dependencies/gtk-sharp-2.0/glib-sharp.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/System.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/System.Xml.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/System.Xml.Linq.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/System.Xaml.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/mscorlib.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/Mono.Cairo.dll -r:/usr/local/lib/monodevelop/bin/Mono.Addins.dll -r:/usr/local/lib/monodevelop/bin/Xwt.dll -r:/usr/local/lib/monodevelop/bin/Xwt.Gtk.dll -r:/usr/local/lib/monodevelop/bin/Mono.TextEditor.dll -r:/usr/local/lib/monodevelop/bin/MonoDevelop.Core.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/monodoc.dll -r:/usr/local/lib/monodevelop/bin/MonoDevelop.Ide.dll -r:/usr/local/lib/monodevelop/bin/ICSharpCode.NRefactory.dll -r:/usr/local/lib/monodevelop/AddIns/DisplayBindings/SourceEditor/MonoDevelop.SourceEditor2.dll -r:/usr/local/lib/monodevelop/AddIns/MonoDevelop.Refactoring/MonoDevelop.Refactoring.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/FSharp.Core.dll -r:packages/FSharp.Compiler.Service.0.0.36/lib/net40/FSharp.Compiler.Service.dll -r:/Library/Frameworks/Mono.framework/Versions/3.2.6/lib/mono/4.0/System.Core.dll -r:/Users/karlnilsson/code/github/fsharpbinding/FSharp.CompilerBinding/bin/Debug//FSharp.CompilerBinding.dll -r:/Users/karlnilsson/code/github/fsharpbinding/monodevelop/bin/Debug//FSharpBinding.Gui.dll --target:library --warn:3 --warnaserror:76 --fullpaths --flaterrors --highentropyva- PowerPack/CodeDomVisitor.fs PowerPack/CodeDomGenerator.fs PowerPack/CodeProvider.fs Services/Parameters.fs Services/CompilerArguments.fs Services/TooltipHelpers.fs Services/LanguageService.fs Services/CompilerService.fs Services/InteractiveSession.fs FSharpInteractivePad.fs FSharpOptionsPanels.fs FSharpLanguageBinding.fs FSharpResourceIdBuilder.fs FSharpParser.fs FSharpTextEditorCompletion.fs FSharpProjectServiceExtension.fs FSharpProjectFileNodeExtension.fs FSharpHighlightUsagesExtension.fs FSharpResolverProvider.fs FSharpReferenceFinderExtension.fs
@dsyme wrt to your #if
, I wonder if it makes sense to just insert the
major/minor version i.e. MD_VERSION_4_2
to prevent having to update this
every time.
There exists the --prefix
option to configure.fsx which can be used to
override the monodevelop to compile against.
On Fri, Mar 21, 2014 at 11:22 AM, Don Syme notifications@github.com wrote:
@kjnilsson https://github.com/kjnilsson Could you list the full command line used to invoke fsc by xbuild/msbuild?
Reply to this email directly or view it on GitHubhttps://github.com/fsharp/fsharpbinding/issues/412#issuecomment-38267371 .
I remember we spent a long time trying to get rid of the #if version stuff in the past. Also remember the alpha channel of XS is mainly for iOS designer support and doesn't necessary have the same patches as beta.
@rneatherway I don't know what version the change is in, just that is was in MD master. I think we should be tracking MD master pretty closely, the main issue is resolving the reference assemblies properly in the config script.
We should probably cherry pick this from vnext to ensure the version is read correctly.
https://github.com/fsharp/fsharpbinding/commit/6c799b8cc48ad57cf83f5171f36690283bc516b9
I added the missing implementation (most likely incorrectly) and after manually installing the plugin I too get an XS 'hang', possibly of the same kind as @7sharp9
@kjnilsson I rebuilt and reinstalled and I don't get the 'hang'.
from master or vnext? did you have to implement the new member of ISymbol in FSharpHighlightUsagesExtension.fs?
Nope, master, Im using 4.2.4 (build 32), that change is not present there.
yep once I hacked to to use the correct md path it all works! nice. Should I still take up Don's suggestion to update configure.fsx or will the change you mentioned in vnext be sufficient?
Right well this is now fixed so closing issue. Thanks all.
@kjnilsson The change I mentioned was just the version detect changing in vnext.
My preference would be to only support builds against MonoDevelop master, and older versions supported in a branch if necessary. Im not sure on how many people build from source to be honest.
you mean maybe trimming this list of search paths?: https://github.com/fsharp/fsharpbinding/blob/master/monodevelop/configure.fsx#L17
perhaps as Don suggested we let the user choose if more than one option is available?
Perhaps a simple override for the path would be all thats needed e.g. ./configure --Path=blah
And update the read me to detail that option.
yeah - that plus a warning +exit if no path is set and multiple options are found
On 21 March 2014 15:48, Dave Thomas notifications@github.com wrote:
Perhaps a simple override for the path would be all thats needed e.g. ./configure --Path=blah
Reply to this email directly or view it on GitHubhttps://github.com/fsharp/fsharpbinding/issues/412#issuecomment-38289684 .
Karl Nilsson twitter: @kjnilsson blog: coderkarl.wordpress.com
I previously added --prefix
with which you can currently override the path. This is documented in the README.
I also think that we should probably only include the major/minor version of monodevelop in the define symbols otherwise we will have to update it every five minutes.
I believe we should support build+install against the currently active Stable/Beta/Alpha versions of XS (currently 4.2.3, 4.2.4 and 4.3.4), as well as the internal head branch used by Xamarin, assuming someone on this team has active to that. This isn't too hard to do. We need that to be able to release new versions of the binding in any case.
Agreed with @rneatherway that we should only use major/minor version in the #define.
@kjnilsson I agree we should warn and exit if zero or 2+ paths are found, and suggest use of --prefix
Agreed. I'll take a look at that then.
On Friday, 21 March 2014, Robin Neatherway notifications@github.com wrote:
@kjnilsson https://github.com/kjnilsson I agree we should warn and exit if zero or 2+ paths are found, and suggest use of --prefix
Reply to this email directly or view it on GitHubhttps://github.com/fsharp/fsharpbinding/issues/412#issuecomment-38295155 .
Karl Nilsson twitter: @kjnilsson blog: coderkarl.wordpress.com
@dsyme do we want to put anything in the configure script to warn if no binaries for the currently supported versions are found? if so does anyone know then Xamarin internal head branch version?
@kjnilsson I think that's probably a bit rigid and it will be hard to keep that list up-to-date as Xamarin release new versions
Xamarin typically release a new build for the designer on Alpha every week.
agreed - let's not. :)
On 25 March 2014 11:15, Dave Thomas notifications@github.com wrote:
Xamarin typically release a new build for the designer on Alpha every week.
Reply to this email directly or view it on GitHubhttps://github.com/fsharp/fsharpbinding/issues/412#issuecomment-38552645 .
Karl Nilsson twitter: @kjnilsson blog: coderkarl.wordpress.com
XS 4.2.4, mono 3.2.6, latest fsharpbindings code built from source (happens with latest available release as well). Causes all lines including the reference to 'disappear'.
upport/XamarinStudio-4.0/LocalInstall/Addins/MonoDevelop.FSharpBinding.3.2.28/FSharpBinding.dll Missing method Mono.TextEditor.TextViewMargin.System.MissingMethodException: Method not found: 'Mono.TextEditor.TextViewMargin.LayoutWrapper.get_Layout'. at MonoDevelop.FSharp.UsageMarker.getFromTo (Mono.TextEditor.TextEditor editor, Mono.TextEditor.LineMetrics metrics, Int32 markerStart, Int32 markerEnd) [0x00000] in:0
at MonoDevelop.FSharp.UsageMarker.DrawBackground (Mono.TextEditor.TextEditor editor, Cairo.Context context, Double y, Mono.TextEditor.LineMetrics linemetrics) [0x00000] in :0
at Mono.TextEditor.TextViewMargin.DrawLinePart (Cairo.Context cr, Mono.TextEditor.DocumentLine line, Int32 lineNumber, Int32 logicalRulerColumn, Int32 offset, Int32 length, System.Double& position, System.Boolean& isSelectionDrawn, Double y, Double maxX, Double _lineHeight) [0x002dd] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs:1610
at Mono.TextEditor.TextViewMargin.Draw (Cairo.Context cr, Rectangle area, Mono.TextEditor.DocumentLine line, Int32 lineNr, Double x, Double y, Double _lineHeight) [0x00566] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs:2748
at Mono.TextEditor.TextArea.RenderMargins (Cairo.Context cr, Cairo.Context textViewCr, Rectangle cairoRectangle) [0x00183] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextArea.cs:1784
System.MissingMethodException: Method not found: 'Mono.TextEditor.TextViewMargin.LayoutWrapper.get_Layout'.
at MonoDevelop.FSharp.UsageMarker.getFromTo (Mono.TextEditor.TextEditor editor, Mono.TextEditor.LineMetrics metrics, Int32 markerStart, Int32 markerEnd) [0x00000] in :0
at MonoDevelop.FSharp.UsageMarker.DrawBackground (Mono.TextEditor.TextEditor editor, Cairo.Context context, Double y, Mono.TextEditor.LineMetrics linemetrics) [0x00000] in :0
at Mono.TextEditor.TextViewMargin.DrawLinePart (Cairo.Context cr, Mono.TextEditor.DocumentLine line, Int32 lineNumber, Int32 logicalRulerColumn, Int32 offset, Int32 length, System.Double& position, System.Boolean& isSelectionDrawn, Double y, Double maxX, Double _lineHeight) [0x002dd] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs:1610
at Mono.TextEditor.TextViewMargin.Draw (Cairo.Context cr, Rectangle area, Mono.TextEditor.DocumentLine line, Int32 lineNr, Double x, Double y, Double _lineHeight) [0x00566] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextViewMargin.cs:2748
at Mono.TextEditor.TextArea.RenderMargins (Cairo.Context cr, Cairo.Context textViewCr, Rectangle cairoRectangle) [0x00183] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-4.2.4-branch/a160c35d/source/monodevelop/main/src/core/Mono.Texteditor/Mono.TextEditor/Gui/TextArea.cs:1784