You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The main purpose of this repository is to package the open editions of the F# compiler, core library
4
4
and core tools for use across multiple platforms.
5
5
6
-
7
6
### Contributing to the F# Compiler, Core Library and Tools
8
7
9
8
Most contributions to the F# compiler/library/tools go first via the
10
9
repository at https://github.com/Microsoft/visualfsharp. This ensures that the main
11
10
packaging of F# on Windows (the Visual F# Tools) also includes any contributions that are made, and
12
-
ensures that the versions do not diverge.
13
-
14
-
### Contributing on Windows
11
+
ensures that the versions do not diverge, and that very extensive QA is done.
15
12
16
13
If you are using Windows, you should fork the https://github.com/Microsoft/visualfsharp repo and contribute directly there. Your contributions will then be merged into this repo.
17
14
18
-
### Contributing on Linux/OSX when using Mono
19
-
20
15
If you are using Linux or OSX, you can still contribute directly to https://github.com/Microsoft/visualfsharp if you like,
21
-
Your contributions will then be merged into this repo.
22
-
23
-
Alternatively, you can prepare your contributions by forking this repository (the code is
16
+
Your contributions will then be merged into this repo. Alternatively, you can prepare your contributions by forking this repository (the code is
24
17
essentially the same). This will give you access to some additional the cross-platform testing
25
18
available from this repo.
26
19
27
-
## Status
28
-
29
-
The `master` branch is for F# 4.x.
30
-
31
-
To bootstrap the compiler, binaries built from an earlier version of this project are used.
32
20
33
-
This codebase uses the Apache 2.0 license.
21
+
## Status
34
22
35
-
## Current Build Status
23
+
The `master` branch is for F# 4.x. To bootstrap the compiler, binaries built from an earlier version of this project are used. This codebase uses the Apache 2.0 license.
## NuGet Feed of FSharp.Core and FSharp.Compiler.Tools packages
31
+
## Outputs of this repository
46
32
47
-
This repo is currently used to make two NuGet packages - FSharp.Core and FSharp.Compiler.Tools.
33
+
### The ``FSharp.Core`` NuGet package
48
34
49
-
Stable builds are available in the NuGet Gallery:
50
-
[http://www.nuget.org/packages/FSharp.Core](http://www.nuget.org/packages/FSharp.Core) and [http://www.nuget.org/packages/FSharp.Compiler.Tools](http://www.nuget.org/packages/FSharp.Compiler.Tools).
35
+
This repo is currently used to make [the FSharp.Core NuGet package](http://www.nuget.org/packages/FSharp.Core). This package includes
36
+
* FSharp.Core.dll for .NET Framework/Mono
37
+
* FSharp.Core.dll for .NET Core
38
+
* FSharp.Core.dll for portable profiles
51
39
52
40
53
41
The FSharp.Core NuGet package includes all of the FSharp.Core redistributables from Visual F#. In addition, they include assemblies for MonoAndroid and MonoTouch built from this repository.
54
42
55
-
The FSharp.Compiler.Tools package includes the F# compiler `fsc.exe`, F# Interactive `fsi.exe`, build support,
56
-
a copy of FSharp.Core used to run the tools, and related DLLs.
43
+
### The ``FSharp.Compiler.Tools`` NuGet package
57
44
58
-
It can be used if you wish to use the latest F# compiler on a computer without relying on the installed version of Visual Studio.
45
+
This repo is currently used to make [the FSharp.Compiler.Tools NuGet package]((http://www.nuget.org/packages/FSharp.Compiler.Tools). This package includes the
46
+
following for both .NET Core and .NET Framework/Mono:
47
+
* the F# compiler `fsc.exe`
48
+
* F# Interactive `fsi.exe`
49
+
* build support,
50
+
* a copy of FSharp.Core used to run the tools
51
+
* related DLLs.
52
+
53
+
The ``FSharp.Compiler.Tools`` NuGet package can be used if you wish to use the latest F# compiler on a computer without relying on the installed version of Visual Studio.
59
54
Adding it via nuget to a project will override the in-box compiler with the compiler from the nuget package.
60
-
Note: due to how previous versions of the default project templates referenced ``Microsoft.FSharp.Targets``, you may need to manually modify your project file once (see https://github.com/fsharp/fsharp/issues/676).
55
+
Note: you will need to manually modify your project file once (see https://github.com/fsharp/fsharp/issues/676).
56
+
57
+
### The ``fsharp`` Debian Linux Package
58
+
59
+
Usage: See http://fsharp.org/use/linux
60
+
61
+
apt-get install fsharp
62
+
63
+
See https://github.com/mono/linux-packaging-fsharp/, a downstream variant of this repo, where this package is actually made.
64
+
65
+
* There is a tag for each upstream source tag
66
+
* There is a tag for each "debianized" package
67
+
* Packaging metadata lives in debian/
68
+
* install files are files installed to disk
69
+
* cligacinstall are GAC-installed libraries
70
+
*`control` is the manifest of packages
71
+
* rules is the Makefile which handles build/install.
72
+
73
+
Jo Shields (@directhex) says:
74
+
75
+
> I tend to only update the published packages when a) the same update has already been pulled in on Mac by Jason, and either b) something breaks horribly in the existing version on a new Mono, or c) someone explicitly asks me to.
76
+
77
+
### F# in Mono + OSX
78
+
79
+
F# is pacakged as part of Mono on OSX. Jason Imison says:
80
+
81
+
> We use a system called BockBuild that pushes versions of F# (sometimes with patches) out with Mono for OSX (F# is bundled with mono here, not a separate package).
82
+
83
+
> You can see an example build script here (if you have access, ping me if not) https://github.com/xamarin/bockbuild/blob/2017-02/packages/fsharp.py. Unfortunately, you need to know the branch name here – 2017-02 is what is going to be released with VS for Mac aka Mono 4.9.x
84
+
85
+
86
+
### Package feeds
61
87
62
88
A feed of nuget packages from builds is available from AppVeyor using the NuGet feed: https://ci.appveyor.com/nuget/fsgit-fsharp
63
89
64
90
If using Paket, add the source at the top of `paket.dependencies`.
65
91
66
-
```
67
-
source https://www.nuget.org/api/v2
68
-
source https://ci.appveyor.com/nuget/fsgit-fsharp
69
-
```
92
+
source https://www.nuget.org/api/v2
93
+
source https://ci.appveyor.com/nuget/fsgit-fsharp
70
94
71
95
Add the dependency on `FSharp.Core` and run `paket update`. See the AppVeyor [build history](https://ci.appveyor.com/project/fsgit/fsharp/history) for a list of available versions. Here are some options for specifying the dependency:
72
96
@@ -81,7 +105,11 @@ If using NuGet Package Manager, add the source to the list of available package
### How Linux Mono Packages are actully made (by Xamarin/Microsoft)
168
-
169
-
See https://github.com/mono/linux-packaging-fsharp/
170
-
171
-
* There is a tag for each upstream source tag
172
-
* There is a tag for each "debianized" package
173
-
* Packaging metadata lives in debian/
174
-
* install files are files installed to disk
175
-
* cligacinstall are GAC-installed libraries
176
-
*`control` is the manifest of packages
177
-
* rules is the Makefile which handles build/install.
178
-
179
-
Jo Shields (@directhex) says:
180
-
181
-
> I tend to only update the published packages when a) the same update has already been pulled in on Mac by Jason, and either b) something breaks horribly in the existing version on a new Mono, or c) someone explicitly asks me to.
182
-
183
-
### How F# becomes part of Mono on OSX are actully made (by Xamarin/Microsoft)
184
-
185
-
186
-
Jason Imison says:
187
-
188
-
> We use a system called BockBuild that pushes versions of F# (sometimes with patches) out with Mono for OSX (F# is bundled with mono here, not a separate package).
189
-
190
-
> You can see an example build script here (if you have access, ping me if not) https://github.com/xamarin/bockbuild/blob/2017-02/packages/fsharp.py. Unfortunately, you need to know the branch name here – 2017-02 is what is going to be released with VS for Mac aka Mono 4.9.x
191
167
168
+
### Building on Linux (Wheezy build)
192
169
170
+
vagrant up
171
+
vagrant ssh
172
+
cd /vagrant
173
+
sudo apt-get install dos2unix autoconf
174
+
./autogen.sh --prefix=/usr
175
+
make
176
+
sudo make install
193
177
194
178
### Integrating changes from 'visualfsharp'
195
179
@@ -209,7 +193,7 @@ There are certain guidelines that need to be followed when integrating changes f
209
193
210
194
### Continuous Integration Build
211
195
212
-
A continuous integration build is set up with Travis. See above.
196
+
A continuous integration build is set up with Travis and AppVeyor. See above.
213
197
214
198
### Editing the Compiler with Visual Studio, Xamarin Studio or MonoDevelop
215
199
@@ -243,17 +227,6 @@ In 2016 the Microsoft http://visualfsharp.codeplex.com repo moved to GitHub at h
243
227
244
228
This repository uses bootstrapping libraries, tools and F# compiler. The `lib/bootstrap/X.0` directories contain mono-built libraries, compiler and tools that can be used to bootstrap a build. You can also supply your own via the `--with-bootstrap` option.
0 commit comments