MonoDevelop Addin: Working on Mac with MonoDevelop 2.8

281 views
Skip to first unread message

Scott Stephens

unread,
Apr 28, 2012, 3:56:24 PM4/28/12
to fsharp-o...@googlegroups.com
As some of you may have gathered from previous posts, I've been working on getting the MonoDevelop F# addin working with the latest stable MonoDevelop (2.8 series) and compiling nicely on a Mac.  My effort is now ready for public consumption.

If you're interested in these things, please check out https://github.com/scott00/fsharpbinding.

This branch depends on having recent copies of the relevant software:
- Mono new enough that F# is included (2.10.8 is what I've tested with).  It's important that you have the official distribution, because the public key of the F# DLLs is hardcoded into the source. The version that I tested with also installed all the F# DLLs into the GAC, which is important to the way I've handled the dependencies.
- MonoDevelop 2.8 series (I tested with 2.8.8.4)

I haven't tried it on linux, but I think it should probably work there too.  But since I haven't tested it, that's probably wishful thinking. (I do have a linux machine, so I'll be trying it out soon.) I have no idea what effect what I've done may have on Windows.

If you test things out, please leave a note here to let me know if things are working or not, and what your platform looks like.

Next on my list:
- Test/fix linux support
- Merge F# library project type from https://github.com/karthikvishnu/fsharpbinding

Scott Stephens

unread,
Apr 28, 2012, 11:58:00 PM4/28/12
to fsharp-o...@googlegroups.com
I tried my code out on linux, it doesn't work.  I now understand some of the cross-platform issues a little better.  Here are the differences between Mac and linux that I discovered.

Mac Set-up
- OS 10.6 (not relevant, as far as I know, but included for reference)
- Mono from binary on website (2.10.9)
- MonoDevelop from binary on website (2.8.8.4)
- Key executable files:
  * Mono: /usr/bin/mono, 
  * MonoDevelop: /Applications/MonoDevelop.app/Contents/MacOS/monodevelop
  * MD Tool: /Applications/MonoDevelop.app/Contents/MacOS/mdtool
  * F# Compiler: /usr/bin/fsc
  * F# Interpreter: /usr/bin/fsi
- Key Assemblies:
  * Mono assemblies: /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0
  * F# assemblies: /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.0 
- F# assemblies are added to GAC, signed with b03f5f7f11d50a3a, both 2.0 and 4.0 runtime versions

Linux Set-up
- Ubuntu 12.04
- mono-complete package installed (gives mono 2.10.8.1)
- monodevelop package installed (gives monodevelop 2.8.6.3)
- F# is not included in mono with the Ubuntu packages (or even when building from source from the MonoDevelop website... weird)

F# on Linux Set-up A
- FSharp installed from here: http://fsxplat.codeplex.com/releases/view/55463 (using the .deb package)
- Comes with a licence restricting commercial redistribution
- Key executable files:
  * Mono: /usr/bin/mono
  * MonoDevelop: /usr/bin/monodevelop
  * MD Tool: /usr/bin/mdtool
  * F# Compiler: /usr/bin/fsharpc
  * F# Interpreter: /usr/bin/fsharpi
- Key Assemblies:
  * Mono assemblies: /usr/lib/mono/4.0
  * F# assemblies: /usr/lib/fsharp
- F# assemblies are added to GAC, signed with a19089b1c74d0809, just 2.0 version

F# on Linux Set-up B
- F# obtained from here: www.microsoft.com/en-us/download/details.aspx?id=18706 (using zip)
- Comes with an apache license
- All the installation script does is add FSharp.Core.dll (2.0 runtime only) to the GAC, signed with b03f5f7f11d50a3a
- The zip contains 4.0 runtime versions as well; all the assemblies are originally signed with the a19089b1c74d0809 key, but the key for the one assembly is changed as a part of the install process
- The additional tools and scripts file provides some additional install functionality, adding other DLLs to the GAC (but not changing their keys), and installing the fsharpc and fsharpi commands to access the compiler and interpreter

So the big ticket item here is that installation of F# on linux (never mind the MD addin) sucks.  A lot.  I think the first order of business is to get a reasonable install procedure in place.  To my mind reasonable includes:
(1) Having compiler and interpreter accessible on the PATH.  Ideally with the names fsc and fsi... any thoughts on why the linux version seems to want to call these things fsharpc and fsharpi?
(2) Have both 2.0 and 4.0 runtime versions of all of the F# assemblies added to the GAC with the b03f5f7f11d50a3a key

Once a reasonable install procedure is followed, I think adapting my code to make the linux install work too will be straightforward (it will probably come close to working without any changes). The barriers to creating such a procedure are:
(1) Source A contains all of the needed data/files, but the license doesn't permit the kind of distribution we would want to make it generally available.
(2) Source B has a permissible license, but no 4.0 runtime versions.

I'd appreciate any perspective anybody might have on why the linux install situation is the way it is, where the MonoDevelop packagers are getting the files they're distributing with the Mac version, and how we might improve the linux install experience.

-- Scott

Gábor Bakos

unread,
Apr 29, 2012, 4:47:45 AM4/29/12
to fsharp-o...@googlegroups.com
On Sunday, April 29, 2012 5:58:00 AM UTC+2, Scott Stephens wrote:
So the big ticket item here is that installation of F# on linux (never mind the MD addin) sucks.  A lot.  I think the first order of business is to get a reasonable install procedure in place.  To my mind reasonable includes:

(1) Having compiler and interpreter accessible on the PATH.  Ideally with the names fsc and fsi... any thoughts on why the linux version seems to want to call these things fsharpc and fsharpi?
Sure: https://groups.google.com/d/topic/fsharp-opensource/SzAFPDyyEdI/discussion
Fast Scala Compiler was sooner part of the distribution.
For the rest, sorry, I have no idea.

Robin Neatherway

unread,
Apr 29, 2012, 5:21:56 AM4/29/12
to fsharp-o...@googlegroups.com
Hi Scott,

I recommend using the fsharp distribution from github. It installs a 4.0 version and I believe is signed with the b0... key. I don't know why fsharp isn't included in some mono packages, I have the same problem on fedora. Something I would say is that the current addin allows for fsharp to not be installed in the GAC by using the FSHARP_COMPILER_BIN environment variable. This is important if you dont have root access and want to avoid recompiling the whole of mono.

Robin
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-o...@googlegroups.com
> To unsubscribe from this group, send email to
> fsharp-opensou...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/fsharp-opensource?hl=en
>

Sega Able

unread,
Apr 29, 2012, 9:52:50 AM4/29/12
to fsharp-o...@googlegroups.com
F# isn`t included in mono packages because some features aren`t work. In order to include addin it must be updated.

2012/4/29 Robin Neatherway <neath...@gmail.com>

Robin Neatherway

unread,
Apr 29, 2012, 10:00:54 AM4/29/12
to fsharp-o...@googlegroups.com
We're discussing the F# distribution itself, which should be bundled
with mono, rather than the F# addin which hopefully will soon be
bundled with monodevelop.

Scott Stephens

unread,
Apr 29, 2012, 2:49:26 PM4/29/12
to fsharp-o...@googlegroups.com
Thanks for the info Robin and Gabor.

I tried out the github F# distribution (http://github.com/fsharp/fsharp) and it worked quite nicely.  I think it might make sense to start publicising that as the way to install F# for linux.  Stuff that shows up in google searches (Stack Overflow, functional-variations.net, various blog posts) don't mention this option.  They're probably just a little out of date.  However even the README.html file in the distribution itself warns you away from using it if you just want to install F#.  Is there a reason it might not be ready for general use?

The naming weirdness now makes sense, and I think with a little work I can adapt my code to work on linux as well, as long as F# can be installed into the GAC.  Getting it to work without that will take a little research, I'm not sure at this point how tough it would be.


On Sunday, April 29, 2012 4:21:56 AM UTC-5, Robin Neatherway wrote:
Hi Scott,

I recommend using the fsharp distribution from github. It installs a 4.0 version and I believe is signed with the b0... key. I don't know why fsharp isn't included in some mono packages, I have the same problem on fedora. Something I would say is that the current addin allows for fsharp to not be installed in the GAC by using the FSHARP_COMPILER_BIN environment variable. This is important if you dont have root access and want to avoid recompiling the whole of mono.

Robin

> To post to this group, send email to fsharp-opensource@googlegroups.com

> To unsubscribe from this group, send email to
> fsharp-opensource+unsubscribe@googlegroups.com

Robin Neatherway

unread,
Apr 30, 2012, 11:08:53 AM4/30/12
to fsharp-o...@googlegroups.com
Hi Scott,

I don't know about the github repository, I know that it can take a
while for changes to be merged in from the official releases, but I
always found it much easier to install from the github repository.

I'll test your changes on Fedora when you're ready, and try to help
with loading F# from locations other than the GAC.

Robin
>> > To post to this group, send email to fsharp-o...@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > fsharp-opensou...@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-o...@googlegroups.com
> To unsubscribe from this group, send email to
> fsharp-opensou...@googlegroups.com

Andreia Gaita

unread,
Apr 30, 2012, 12:42:47 PM4/30/12
to fsharp-o...@googlegroups.com
Hi,

On Sun, Apr 29, 2012 at 19:49, Scott Stephens <steph...@gmail.com> wrote:
Thanks for the info Robin and Gabor.

I tried out the github F# distribution (http://github.com/fsharp/fsharp) and it worked quite nicely.  I think it might make sense to start publicising that as the way to install F# for linux.  Stuff that shows up in google searches (Stack Overflow, functional-variations.net, various blog posts) don't mention this option.  They're probably just a little out of date.  However even the README.html file in the distribution itself warns you away from using it if you just want to install F#.  Is there a reason it might not be ready for general use?

Oh, the README.html in the repo is a copy of the original distributed with F# from codeplex, and not actually a reflection of the current state of F# on Linux. I can see where that can be confusing :/ That should probably be renamed so it's clear that it's just a reference to the original files and not actually relevant to the mono fsharp repo itself.
 
The naming weirdness now makes sense, and I think with a little work I can adapt my code to work on linux as well, as long as F# can be installed into the GAC.  Getting it to work without that will take a little research, I'm not sure at this point how tough it would be.

F# isn't in the mono packages because all the work happened right about the time when the entire team was laid off from Novell, which basically made things into a bit of a mess. There's no particular reason why they shouldn't be included, except perhaps for some finishing touches to the dist tarball and installation.


 
To post to this group, send email to fsharp-o...@googlegroups.com

To unsubscribe from this group, send email to

Scott Stephens

unread,
May 2, 2012, 8:13:06 PM5/2/12
to fsharp-o...@googlegroups.com
I've significantly reworked the code for finding the compiler and interactive console (and fixed a few bugs).  You can find the new code at http://github.com/scott00/fsharpbinding.

I think this should go a long way towards getting the plugin working on a lot of machines with minimal hacking.  The two major conceptual changes are:
(1) We look for both fsharp[ci] and fs[ci] (in that order), in paths guessed from the runtimes that have been added to MonoDevelop, and also on the PATH.
(2) The settings pane for the F# Addin now lets you configure both a interactive console location and a compiler location, so that if the tool can't be found via step 1, you can just tell MD where to look.  These now take executable locations, rather than assembly locations (seemed appropriate because it's much easier to look on the PATH for stuff than to try to look on the PATH and then parse the script to try to find assembly locations, which is what was happening before).

I've tested this on both Mac and Linux.  If anybody has a chance, please try it out and help me find the bugs that are likely lurking.

Still haven't tackled the case where we don't have DLLs installed to the GAC; I'm hoping this can be handled simply by setting the MONO_PATH environment variable (http://www.mono-project.com/Assemblies_and_the_GAC), and maybe codeBase tags if we're running on real .NET (http://support.microsoft.com/kb/837908, method 2).  But I haven't tested this yet.  If anybody wants to try this, that'd be great, as this is not really a use case that matters much to me personally.

-- Scott



On Monday, April 30, 2012 10:08:53 AM UTC-5, Robin Neatherway wrote:
Hi Scott,

I don't know about the github repository, I know that it can take a
while for changes to be merged in from the official releases, but I
always found it much easier to install from the github repository.

I'll test your changes on Fedora when you're ready, and try to help
with loading F# from locations other than the GAC.

Robin

>> > To post to this group, send email to fsharp-opensource@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-opensource@googlegroups.com
> To unsubscribe from this group, send email to

Robert Jeppesen

unread,
May 4, 2012, 8:40:04 AM5/4/12
to fsharp-o...@googlegroups.com
Nice work, Scott! 

Tried it on my Mac. Worked like a charm with no hacking at all. 
With MD installed:
./configure.sh
make
make install

Done! 

Sega Able

unread,
May 4, 2012, 10:27:18 AM5/4/12
to fsharp-o...@googlegroups.com
Indeed :) 
However, when I did 'make' I got 2 errors saying that there are no such iterface members 'AddDefineSymbol' and 'RemoveDefineSymbol' in the /src/Services/Parameters.fs so that I have commented some lines of code. 
After that, I had error 'command fsc not found'.To solve this I changed the line "FSC=INSERT_FSHARP_COMPILER" to "FSC=$(FSBIN)/fsc.exe" in the Makefile.orig. At this step 'make' was successful and I did 'make install'.
But I have an error[1] everytime I click on 'Start new solution' button or trying to create new project. 

Tested in MonoDevelop 2.6.0.



2012/5/4 Robert Jeppesen <roj...@gmail.com>
To post to this group, send email to fsharp-o...@googlegroups.com

To unsubscribe from this group, send email to

Tomas Petricek

unread,
May 4, 2012, 12:09:05 PM5/4/12
to fsharp-o...@googlegroups.com

>> After that, I had error 'command fsc not found'.To solve this I changed the line "FSC=INSERT_FSHARP_COMPILER" to "FSC=$(FSBIN)/fsc.exe" in the Makefile.orig.

 

This doesn’t sound right – the "configure.sh" script replaces the "INSERT_FSHARP_COMPILER" symbol with the actual path of the F# compiler that it finds. This way, you can run "configure.sh" and specify your own (specific) path to the F# compiler if you wish. The "configure.sh" script then generates the actual Makefile to use...

 

T.

Scott Stephens

unread,
May 4, 2012, 3:04:52 PM5/4/12
to fsharp-o...@googlegroups.com
As Tomas mentioned, if your F# compiler is not found by default, the configure script allows you to specify it.  Like this, for example,
./configure.sh --f fsharpc
which is what I would expect most people would need on linux with my version of the configure script.

I would also recommend upgrading to MonoDevelop 2.8; that's what I've tested with.


On Friday, May 4, 2012 11:09:05 AM UTC-5, Tomas Petricek wrote:

>> After that, I had error 'command fsc not found'.To solve this I changed the line "FSC=INSERT_FSHARP_COMPILER" to "FSC=$(FSBIN)/fsc.exe" in the Makefile.orig.

 

This doesn’t sound right – the "configure.sh" script replaces the "INSERT_FSHARP_COMPILER" symbol with the actual path of the F# compiler that it finds. This way, you can run "configure.sh" and specify your own (specific) path to the F# compiler if you wish. The "configure.sh" script then generates the actual Makefile to use...

 

T.

 

From: fsharp-opensource@googlegroups.com [mailto:fsharp-opensource@googlegroups.com] On Behalf Of Sega Able
Sent: Friday, May 04, 2012 3:27 PM
To: fsharp-opensource@googlegroups.com
Subject: Re: MonoDevelop Addin: Working on Mac with MonoDevelop 2.8

 

Indeed :) 

However, when I did 'make' I got 2 errors saying that there are no such iterface members 'AddDefineSymbol' and 'RemoveDefineSymbol' in the /src/Services/Parameters.fs so that I have commented some lines of code. 

After that, I had error 'command fsc not found'.To solve this I changed the line "FSC=INSERT_FSHARP_COMPILER" to "FSC=$(FSBIN)/fsc.exe" in the Makefile.orig. At this step 'make' was successful and I did 'make install'.

But I have an error[1] everytime I click on 'Start new solution' button or trying to create new project. 

 

Tested in MonoDevelop 2.6.0.

 

 

 

2012/5/4 Robert Jeppesen

Nice work, Scott! 

>> > To post to this group, send email to fsharp-opensource@googlegroups.com

>> > To unsubscribe from this group, send email to

>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.

> To post to this group, send email to fsharp-opensource@googlegroups.com

> To unsubscribe from this group, send email to

> For more options, visit this group at
> http://groups.google.com/group/fsharp-opensource?hl=en

--
You received this message because you are subscribed to the Google
Groups "FSharp Open Source Community" group.

To post to this group, send email to fsharp-opensource@googlegroups.com


To unsubscribe from this group, send email to


For more options, visit this group at
http://groups.google.com/group/fsharp-opensource?hl=en

--
You received this message because you are subscribed to the Google
Groups "FSharp Open Source Community" group.

To post to this group, send email to fsharp-opensource@googlegroups.com


To unsubscribe from this group, send email to

7sharp9

unread,
May 4, 2012, 5:12:54 PM5/4/12
to fsharp-o...@googlegroups.com
Works well for me too!
Mac 10.7.3
Mono Dev 2.8.8.4

Im not sure what F# dlls I have, where do I check on the Mac?

Scott Stephens

unread,
May 4, 2012, 5:53:25 PM5/4/12
to fsharp-o...@googlegroups.com
If you installed Mono using the dmg from the website, you'll probably find the F# DLLs in here:
/Library/Frameworks/Mono.Framework/Versions/Current/lib/mono/2.0
/Library/Frameworks/Mono.Framework/Versions/Current/lib/mono/4.0

They're probably also installed into the gac, which can be demonstrated like this:
gacutil -l | grep FSharp

The gac itself is likely /Library/Frameworks/Mono.Framework/Versions/Current/lib/mono/gac (but never mess with anything in here by hand, just use gacutil).

Scott Stephens

unread,
May 6, 2012, 1:17:28 PM5/6/12
to fsharp-o...@googlegroups.com
I was feeling annoyed by the zeros in my git user name, so I just changed it.  You can now find the repo here:


Haven't really heard any bad things about the latest version, but I don't think I've heard from any linux or Windows testers either.  Any committers have thoughts on what needs to be done before we merge this into the trunk?

Robin Neatherway

unread,
May 6, 2012, 1:39:19 PM5/6/12
to fsharp-o...@googlegroups.com
I'll be testing this tomorrow on Fedora (my work machine).
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-o...@googlegroups.com
> To unsubscribe from this group, send email to
> fsharp-opensou...@googlegroups.com

Don Syme

unread,
May 8, 2012, 7:38:16 PM5/8/12
to fsharp-o...@googlegroups.com

Scott writes:

I tried out the github F# distribution (http://github.com/fsharp/fsharp) and it worked quite nicely. 

Yes, the github repository is now  the canonical home for the F# open source community.  Over time I recommend the F# (and Mono) open source communities consolidate this role.

This means the CodePlex F# power pack site is now only a staging area for drops of the F# compiler. The site has been updated to reflect that, e.g. see the notes on the front page here http://fsharppowerpack.codeplex.com/. If you spot any further clarifications to make please let me know.

It would fix up the dangling web, stackoverflow etc. references to older ways of building from source for Linux/Mac. I'll try to get the build instructions on http://www.tryfsharp.org/Resources/OpenSource.aspx removed and just leave a pointer to github fsharp/fsharp.

regards
don




From: fsharp-o...@googlegroups.com [fsharp-o...@googlegroups.com] on behalf of Scott Stephens [steph...@gmail.com]
Sent: 29 April 2012 11:49
To: fsharp-o...@googlegroups.com

Subject: Re: MonoDevelop Addin: Working on Mac with MonoDevelop 2.8
To post to this group, send email to fsharp-o...@googlegroups.com

To unsubscribe from this group, send email to

Robin Neatherway

unread,
May 9, 2012, 12:27:10 PM5/9/12
to fsharp-o...@googlegroups.com
Sorry for the delay. Here is my build report (mostly positive):

OS: Fedora 16
Mono: 2.10.5
Monodevelop: 2.8.1
F#: From github, installed locally (not in GAC)
Environment variables: FSHARP_COMPILER_BIN set to F# installation
location (~/local/lib/mono/4.0)


As discussed above, I had to run './configure -f fsharpc'. Slightly
annoyingly all the Fedora mono libraries are under /usr/lib64, so I
had to enter them all manually. However it compiled fine. Perhaps we
could add /usr/lib64 to the lists?

As I wanted to do a local installation of the bindings I issued 'make
package' and then used the menu option in monodevelop to install the
binding. This worked fine. Without restarting monodevelop, I created a
new F# console project. I received an error "The file
<path>/Program.fs' could not be opened" (stack trace at end of email).
However, everything worked fine, and creating a new project after
restarting did not have the same problem.

Compilation: worked
FSI: worked (although Alt-Enter did not, perhaps clashed with
something else on my system, I used right-click menu to test)
Autocomplete: worked

When I tried unsetting the FSHARP_COMPILER_BIN environment variable,
the compilation and FSI still worked, but autocomplete failed. I
expected this as the F# .dlls are not in GAC. I'm glad that this
variable still works though, as it supports non-root installations of
F#.

In conclusion I think this version of the binding is looking pretty
good. I will test a larger, multi-project solution as time allows.

Cheers,
Robin

Stack trace:

System.NullReferenceException: Object reference not set to an instance
of an object
at MonoDevelop.Ide.Gui.Pad..ctor
(MonoDevelop.Ide.Gui.DefaultWorkbench workbench,
MonoDevelop.Ide.Codons.PadCodon content) [0x00013] in
/builddir/build/BUILD/monodevelop-2.8.1/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Pad.cs:49
at MonoDevelop.Ide.Gui.Workbench.WrapPad
(MonoDevelop.Ide.Codons.PadCodon padContent) [0x00063] in
/builddir/build/BUILD/monodevelop-2.8.1/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:587
at MonoDevelop.Ide.Gui.Workbench.get_Pads () [0x00034] in
/builddir/build/BUILD/monodevelop-2.8.1/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:158
at MonoDevelop.Ide.Gui.Workbench.GetPad[ErrorListPad] () [0x00000]
in /builddir/build/BUILD/monodevelop-2.8.1/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:237
at MonoDevelop.SourceEditor.SourceEditorView..ctor () [0x003f8] in
/builddir/build/BUILD/monodevelop-2.8.1/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs:244
at MonoDevelop.SourceEditor.SourceEditorDisplayBinding.CreateContent
(FilePath fileName, System.String mimeType,
MonoDevelop.Projects.Project ownerProject) [0x00000] in
/builddir/build/BUILD/monodevelop-2.8.1/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorDisplayBinding.cs:94
at MonoDevelop.Ide.Gui.LoadFileWrapper.Invoke (System.String
fileName) [0x00033] in
/builddir/build/BUILD/monodevelop-2.8.1/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs:1035

Scott Stephens

unread,
May 9, 2012, 1:08:55 PM5/9/12
to fsharp-o...@googlegroups.com
Thanks for testing Robin.  I'll add /usr/lib64 to the default search paths to make life a little easier for Fedora 64bit users.  Should be done within an hour or so.

When you get a chance can you try setting MONO_PATH to your F# installation location instead of setting FSHARP_COMPILER_BIN, and also in addition to setting FSHARP_COMPILER_BIN?  Now that you pointed it out, I think the FSHARP_COMPILER_BIN method might be partially broken under my branch (in other words, it's used to help find DLLs for some addin functionality, but not all).  I think that if MONO_PATH is set appropriately it will help you find the DLLs in all cases, and might give a better experience.  

> Sent: 29 April 2012 11:49
>
>> > To post to this group, send email to fsharp-opensource@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-opensource@googlegroups.com
> To unsubscribe from this group, send email to
> For more options, visit this group at
> http://groups.google.com/group/fsharp-opensource?hl=en
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-opensource@googlegroups.com
> To unsubscribe from this group, send email to

Robin Neatherway

unread,
May 10, 2012, 6:54:36 AM5/10/12
to fsharp-o...@googlegroups.com
So the update is that I had MONO_PATH set to the same as
FSHARP_COMPILER_BIN. Without MONO_PATH set it I receive:

"Error while trying to load the project '<path>/test7.fsproj': Could
not load type 'provider@16' from assembly 'FSharpBinding,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'."

So I need both of them set. I'll have to have a look into the breakage
without FSHARP_COMPILER_BIN to see if things can work just with
MONO_PATH set.
>> > From: fsharp-o...@googlegroups.com
>> > [fsharp-o...@googlegroups.com] on behalf of Scott Stephens
>> > Sent: 29 April 2012 11:49
>> >
>> > To: fsharp-o...@googlegroups.com
>> >> > fsharp-o...@googlegroups.com
>> >> > To unsubscribe from this group, send email to
>> >> > fsharp-opensou...@googlegroups.com
>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "FSharp Open Source Community" group.
>> > To post to this group, send email to fsharp-o...@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > fsharp-opensou...@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "FSharp Open Source Community" group.
>> > To post to this group, send email to fsharp-o...@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > fsharp-opensou...@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-o...@googlegroups.com
> To unsubscribe from this group, send email to
> fsharp-opensou...@googlegroups.com

Scott Stephens

unread,
May 10, 2012, 9:30:24 AM5/10/12
to fsharp-o...@googlegroups.com
OK.  I think I need to do a deep dive into how FSHARP_COMPILER_BIN is used, and probably rework some of that code.  Until I get those issues resolved I'll hold off on pushing the changes into the main repository.


On Thursday, May 10, 2012 5:54:36 AM UTC-5, Robin Neatherway wrote:
So the update is that I had MONO_PATH set to the same as
FSHARP_COMPILER_BIN. Without MONO_PATH set it I receive:

"Error while trying to load the project '<path>/test7.fsproj': Could
not load type 'provider@16' from assembly 'FSharpBinding,
Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'."

So I need both of them set. I'll have to have a look into the breakage
without FSHARP_COMPILER_BIN to see if things can work just with
MONO_PATH set.

>> > From: fsharp-opensource@googlegroups.com
>> > [fsharp-opensource@googlegroups.com] on behalf of Scott Stephens
>> > Sent: 29 April 2012 11:49
>> >
>> > To: fsharp-opensource@googlegroups.com
>> >> > fsharp-opensource@googlegroups.com
>> >> > To unsubscribe from this group, send email to
>> >> > fsharp-opensource+unsubscribe@googlegroups.com
>> >> > For more options, visit this group at
>> >> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >> >
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "FSharp Open Source Community" group.
>> > To post to this group, send email to fsharp-opensource@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > fsharp-opensource+unsubscribe@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups "FSharp Open Source Community" group.
>> > To post to this group, send email to fsharp-opensource@googlegroups.com
>> > To unsubscribe from this group, send email to
>> > fsharp-opensource+unsubscribe@googlegroups.com
>> > For more options, visit this group at
>> > http://groups.google.com/group/fsharp-opensource?hl=en
>
> --
> You received this message because you are subscribed to the Google
> Groups "FSharp Open Source Community" group.
> To post to this group, send email to fsharp-opensource@googlegroups.com
> To unsubscribe from this group, send email to
> fsharp-opensource+unsubscribe@googlegroups.com

7sharp9

unread,
May 11, 2012, 3:55:03 AM5/11/12
to fsharp-o...@googlegroups.com
I currently get an error when trying to run an F# application with UI content on my Mac I get:

2012-05-11 08:45:39.647 mono[526:707] No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting

Im thinking that if the application was packaged then maybe this would be solved.

Im not entirely sure of how the pieces go together in MonoDevelop/MonoMac but it would be great if the F# language plugin also had the ability to produce a mac package, maybe this is more a case of getting this added to MonoMac I don't currently know...



Theres also an msbuild extension that I have tried adding from MonoMac but his doesn't get the linker to produce the package in the output folder:

<Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />

Any ideas how we could get this to make packaged Mac Apps like C# has.

Dave.

Scott Stephens

unread,
May 11, 2012, 10:47:37 AM5/11/12
to fsharp-o...@googlegroups.com
I don't totally understand what you're doing (I've never tried to build Mac installers/packages, which is probably why).

If I was going to try to figure this out, this is what I would do:
(1) Create a toy C# program to work with
(2) Write down the steps to do what you want in MonoDevelop
(3) Write down the steps to do what you want on the command line (if known)
(4) Create an F# version of the toy program
(5) Figure out how to do what you want on the command line to the F# version
(6) Look at the source of the C# language binding to figure out how the IDE functionality is implemented.
(7) Create a similar version of the IDE functionality for F#

If you can document 1-5, I can probably help you figure out how to do 6 & 7.

Onorio Catenacci

unread,
May 11, 2012, 1:58:19 PM5/11/12
to fsharp-o...@googlegroups.com


Hi Dave,

For mono, they use XBuild (not MSBuild) but XBuild is pretty much the same as MSBuild.  But if you're looking for reference on the Mono site, it's going to refer to XBuild.

Hope that helps a little.

--
Onorio

7sharp9

unread,
May 14, 2012, 6:39:13 PM5/14/12
to fsharp-o...@googlegroups.com
From what I can tell the only difference between a C# and F# project is the:

<Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" /> 

What I think this does is take the compiled output from the build and place it in a folder with a little scrip that loads and runs mono, the plist.info file sits inside the package.  My first step will probably be to manually hand crank the package to see if it work ok with the plist.info inside and all the other gubbins...

I'm guessing that the Xbuild doesn't like the F#project structure or something like that.  Once I get a bit of time Ill have a look and see exactly what its doing.

Cheers
D.
Reply all
Reply to author
Forward
0 new messages