Skip to content

Reintegration of F#3.1 changes #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 55 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
36b0456
Cherry pick 3a1f5187baaf422a98a92001008334311827feb9 to align with ba…
dsyme Nov 8, 2012
07781b9
Integrate changes from Microsoft Visual F# source code drop http://fs…
dsyme May 3, 2013
a66d529
Minor textual changes to align fsharp/fsharp with fsharppowerpack.cod…
dsyme May 3, 2013
c293c6b
Integrate updates from Visual F# team for Visual Studio 2012 Update 2
dsyme May 2, 2013
48c5904
change to align 3.1 base with base for 3.0 code drop
dsyme Oct 3, 2013
5290777
Fix docs for bitwise operators
dsyme Feb 22, 2013
56a56b3
Align message text with original F# 3.0 code drop
dsyme Oct 3, 2013
d4e8b9b
Clean commit of Microsoft code drop for F# Compiler 3.1 from http://f…
dsyme Oct 3, 2013
2894b84
Integrate fsharp/fsharp master into fsharp_31
dsyme Oct 3, 2013
3a50d91
Minor adjustments to align source code and compile portable profile l…
dsyme Oct 3, 2013
e581d6c
Simply build to use xbuild. Install targets into correct place. Adjus…
dsyme Oct 3, 2013
4f19594
undo unintentionial changes in code drop
dsyme Oct 3, 2013
9a2b0d7
adjust version numbers and installation
dsyme Oct 4, 2013
9c01b7d
fix mistake in previous commit
dsyme Oct 4, 2013
096c23b
Allow projects to load in VS2013
dsyme Nov 2, 2013
94aa280
minor textual cleanup to project file
dsyme Nov 2, 2013
6b130aa
Use Control-D for quit
jpalmer Nov 11, 2013
ed3e00e
Merge pull request #174 from jpalmer/master
dsyme Nov 11, 2013
185ab0f
Fixed build.bat so it works correctly when the repository has been ch…
Nov 28, 2013
fbc6d80
Updates for F# 3.1 build on Linux
dsyme Nov 28, 2013
01d223b
Merge recent changes in build with F# 3.1
dsyme Nov 28, 2013
c8843c2
Merge pull request #178 from jack-pappas/build-bat-fix
dsyme Nov 28, 2013
f95cef4
tests for F# 3.1
dsyme Nov 28, 2013
2e66163
Merge https://github.com/fsharp/fsharp into fsharp_31
dsyme Nov 28, 2013
2ba1743
Minor changes to run tests for F# 3.1
dsyme Nov 28, 2013
d4f6942
integrate fix to path for diff tool
dsyme Nov 28, 2013
caf2858
remove regression test for fix
dsyme Nov 28, 2013
5865ee4
It's easier than expected to build the F# compiler on windows.
forki Nov 28, 2013
2763793
remove two tests that require databases
dsyme Nov 28, 2013
d3f39f5
add binary tools needed to run tests
dsyme Nov 28, 2013
c660ac5
Merge pull request #182 from forki/fsharp_31
dsyme Nov 29, 2013
95a3fcc
Include fix for printf regression in open edition
dsyme Nov 29, 2013
e726272
use virtual directories in compiler project files
dsyme Nov 29, 2013
65848c0
remove FSharp.Compiler.Silverlight.fsproj from default solution
dsyme Nov 29, 2013
5aa40ed
remore use of relative links for resources
dsyme Nov 29, 2013
4958c09
remove use of relative links for resources (part 2)
dsyme Nov 29, 2013
2994a5f
updates to tests/fsharp/core to allow execution of most tests as a si…
dsyme Nov 29, 2013
f02fdeb
enable most of tests/fsharp/core/... for single-file cross-platform t…
dsyme Nov 29, 2013
a5e346b
enable most of tests/fsharp/core/... for single-file cross-platform t…
dsyme Nov 29, 2013
1ceaf62
dcoument Linux test process
dsyme Nov 29, 2013
f3d4e8e
Fix duplicate reference to System.Numerics introduced in the merge of…
Nov 29, 2013
7c09235
Merge pull request #191 from ovatsus/fsharp_31
dsyme Nov 29, 2013
0d805e9
fix +x permission on run-all.sh
dsyme Nov 29, 2013
e75ce44
fix textual mistake in tests
dsyme Nov 29, 2013
1ccc8d9
Merge branch 'fsharp_31' of https://github.com/fsharp/fsharp into fsh…
dsyme Nov 29, 2013
49a8339
Update README.md
dsyme Nov 29, 2013
1a192fa
Update README.md
dsyme Nov 29, 2013
c2e323a
Update README.md
dsyme Nov 29, 2013
434d99d
test fixes for running tests on Windows
dsyme Nov 29, 2013
c7295b4
Merge branch 'fsharp_31' of https://github.com/fsharp/fsharp into fsh…
dsyme Nov 29, 2013
ea4559a
fix namespaces test on Windows
dsyme Nov 30, 2013
a2cba7d
Second part of fix for https://github.com/fsharp/fsharp/issues/172
dsyme Nov 30, 2013
6be0475
Cleanup README
dsyme Nov 30, 2013
58e5c97
Test fixes for Windows, keep running after error in 'run.bat' script
dsyme Nov 30, 2013
81ee07c
Reintegrated compiler editor changes into F# 3.1 source tree
Dec 1, 2013
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 20 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

HEAD
* Added tests

* Merged F# 3.1 open source release

* Fixed build logic for F# 3.1

3.0.30
* Partial fix for allowing F# 3.1 projects to compile using xbuild (also
requires xbuild fix)

* Remove a multitude of links in xbuild directories in favour of targets
files which include the canonical targets

3.0.29

* Proper DESTDIR support (very useful for making custom deb/rpm packages)


23 changes: 23 additions & 0 deletions FSharp.Compiler.Editor.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>FSharp.Compiler.Editor</id>
<version>1.0.9</version>
<title>F# Compiler Editor</title>
<authors>Dave Thomas, Anh-Dung Phan</authors>
<owners />
<licenseUrl>http://opensource.org/licenses/Apache-2.0</licenseUrl>
<projectUrl>https://github.com/fsharp/FSharp.Compiler.Service</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>The compiler editor assembly for creating refactoring and editing tools for F# programming language</summary>
<description>This fork of the F# compiler contains minor modifications in visibility to allow refactoring, editing, and other tools to have access to the full F# AST and parser.</description>
<releaseNotes>Reintegration with FSharp31 source</releaseNotes>
<copyright>Copyright 2013</copyright>
<tags>fsharp compiler editing refactoring</tags>
</metadata>
<files>
<file src="lib/release/4.0/FSharp.Compiler.Editor.dll" target="lib/net40/FSharp.Compiler.Editor.dll" />
<file src="lib/release/4.0/FSharp.Compiler.Editor.dll.mdb" target="lib/net40/FSharp.Compiler.Editor.dll.mdb" />
<file src="lib/release/4.0/FSharp.Compiler.Editor.xml" target="lib/net40/FSharp.Compiler.Editor.xml" />
</files>
</package>
2 changes: 1 addition & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
include $(topsrcdir)config.make

all clean install do-proto do-final do-2-1 install-2-1 clean-2-0 clean-2-1 clean-4-0:
all clean install build build-proto:
$(MAKE) -C src/fsharp $@

dist:
Expand Down
93 changes: 91 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,93 @@
FSharp.Compiler.Service
=======================

Modified clone of F# compiler exposing additional functionality for editing clients and embedding F# as a service.

## FSharp.Compiler.Editor

At the moment, the main component is `FSharp.Compiler.Editor.dll`.
It contains minor modifications in visibility to allow refactoring editing
and other tools to have access to the full F# AST and parser. The main aim is to have a stable and
documented fork of the main compiler that allows various tools to share this common code.

This repo should be _identical_ to 'fsharp' except:

- Changes for building FSharp.Compiler.Editor.dll, notably
- Change the assembly name
- Only build FSharp.Compiler.Editor.dll
- No bootstrap or proto compiler is used - an installed F# compiler is assumed

- Files for publishing the nuget package for FSharp.Compiler.Editor

- Changes to compiler source code to expose new functionality

- Additions to compiler source code which improve the API for the use of F# editing clients

- Additions to compiler source code which add new functionality used by all F# editing clients

- These additions to this README.md

- Additions to the LICENCE file to record contributors, changes etc.

If language or compiler addiitons are committed to fsharp/fsharp, they should be merged into this repo and a new nuget
package released.

###Nuget
There is currently a [nuget package](https://nuget.org/packages/FSharp.Compiler.Editor/) that you can install as follows:

Using the nuget package manager in windows:
```
PM> Install-Package FSharp.Compiler.Editor
```
Or from the nuget console on Osx etc:
```
nuget install FSharp.Compiler.Editor
```

###Building
If you want to build this yourself then you can follow these instructions:

```
git clone https://github.com/fsharp/FSharp.Compiler.Editor
cd FSharp.Compiler.Editor
```

Now follow the build instructions below.
####Linux
```
./autogen.sh
make
```
####Osx
```
./autogen.sh --prefix=/Library/Frameworks/Mono.framework/Versions/Current/
make
```

###Windows

```
.\build.bat
```

The output will be located at `lib/release/4.0/FSharp.Compiler.Editor.dll`

###Clients

The known tools that use this component are:

* [Fantomas](https://github.com/dungpa/fantomas)
* [Fsharp-Refactor](https://github.com/Lewix/fsharp-refactor)
* [FSharpbinding](https://github.com/fsharp/fsharpbinding)

If you modify this component it is polite to check that these tools all build after your modifications.


=============================================================================================
Original README from F# Compiler begins below
=============================================================================================


This is the F# compiler, core library and core tools (open source edition). It uses the Apache 2.0 license.

The `master` branch is for the latest version of F# (currently F# 3.0).
Expand Down Expand Up @@ -201,5 +291,4 @@ You can then go to the relevant directory and run `build.bat` and `run.bat`.

F# compiler sources dropped by Microsoft are available from [fsharppowerpack.codeplex.com](http://fsharppowerpack.codeplex.com).

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.

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.
5 changes: 1 addition & 4 deletions build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,11 @@ if %PROCESSOR_ARCHITECTURE%==x86 (
)

::Clean
del /F /S /Q lib\proto
del /F /S /Q lib\release

::Build
pushd .
cd .\src
set ABS_PATH=%CD%
%MSBUILD% %ABS_PATH%/fsharp-proto-build.proj
%MSBUILD% %ABS_PATH%/fsharp-library-build.proj /p:TargetFramework=net40 /p:Configuration=Release
%MSBUILD% %ABS_PATH%/fsharp-compiler-build.proj /p:TargetFramework=net40 /p:Configuration=Release
%MSBUILD% "%ABS_PATH%\fsharp-compiler-build.proj" /p:TargetFramework=net40 /p:Configuration=Release
popd
135 changes: 29 additions & 106 deletions config.make.in
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ monogacdir := @MONOGACDIR@

monogacdir20 := @MONOGACDIR20@

#This is where to find MonoTouch of MonoAndroid, for "make do-2-1"
#This is where to find MonoTouch of MonoAndroid, for "make build-monodroid"
#
#For now this is hardwired, it should be optionally detected by configure.ac
monogacdir21 := @abs_top_srcdir@/dependencies/mono/2.1
Expand All @@ -18,125 +18,48 @@ monogacdir35 := @MONOGACDIR35@
monogacdir40 := @MONOGACDIR40@

gacdir := ${libdir}mono
gacdir20 := ${gacdir}/2.0
gacdir40 := ${gacdir}/4.0

tooldir := $(topdir)lib/bootstrap/4.0/

monoopts = @mono_gc_options@
MONO_OPTIONS += @mono_gc_options@

TargetFramework = net40
CONFIG = release
Configuration = Release
DISTVERSION = 201011
outsuffix = $(TargetFramework)

ifeq (x-$(TargetFramework),x-net20)
VERSION = 2.3.1.0
TARGET = 2.0
endif

ifeq (x-$(TargetFramework),x-net40)
VERSION = 4.3.1.0
TARGET = 4.0
outsuffix = .
endif

ifeq (x-$(TargetFramework),x-monodroid)
VERSION = 2.3.98.1
TARGET = monodroid
endif


ifeq (x-$(TargetFramework),x-monotouch)
VERSION = 2.3.99.1
TARGET = monotouch
endif

VERSION_2_0 = 2.3.0.0
VERSION_2_1 = 2.3.1.0
VERSION_4_0 = 4.3.0.0
TARGET_2_0 = 2.0
TARGET_2_1 = 2.1
TARGET_4_0 = 4.0
DELAY_SIGN_TOKEN = b03f5f7f11d50a3a
SIGN_TOKEN = f536804aa0eb945b

bootstrapdir = $(bootstrap)/4.0/
tmpdir = .libs/$(CONFIG)/
objdir = $(tmpdir)$(TARGET)/
protodir = $(builddir)/lib/proto/4.0/
outdir = $(builddir)lib/$(CONFIG)/$(TARGET)/

FSSRGEN = $(tooldir)../2.0/fssrgen.exe
FSLEX = $(tooldir)../2.0/fslex.exe
FSYACC = $(tooldir)../2.0/fsyacc.exe


FLAGS = \
--doc:$(objdir)$(NAME).xml \
--version:$(VERSION) \
--debug:pdbonly \
--optimize+ \
--mlcompatibility \
--noframework \
--fullpaths \
--times \
--nowarn:9

DELAY_SIGN_FLAGS = \
--define:STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY \
--delaysign+ \
--keyfile:$(topdir)msfinal.pub

SIGN_FLAGS = \
--define:STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY \
--keyfile:$(topdir)/src/fsharp/test.snk

DEFINES_GENERAL = \
--define:TRACE \
--define:CROSS_PLATFORM_COMPILER

ifeq ($(CONFIG),debug)
DEFINES_DEBUG = \
--define:CODE_ANALYSIS \
--define:DEBUG
else
DEFINES_DEBUG =
endif

DEFINES_2_0 = \
$(DEFINES_GENERAL) \
$(DEFINES_DEBUG) \
--define:FX_NO_STRUCTURAL_EQUALITY \
--define:FX_NO_IOBSERVABLE \
--define:FX_NO_TUPLE \
--define:FX_ATLEAST_35 \
--define:FX_NO_LAZY \
--define:FX_NO_CANCELLATIONTOKEN_CLASSES \
--define:FX_NO_MONITOR_REPORTS_LOCKTAKEN \
--define:FX_NO_TPL_PARALLEL \
--define:FX_NO_CUSTOMATTRIBUTEDATA \
--define:FX_NO_TASK \
--define:FX_NO_BIGINT

DEFINES_2_1 = \
$(DEFINES_GENERAL) \
$(DEFINES_DEBUG) \
--define:FX_NO_STRUCTURAL_EQUALITY \
--define:FX_NO_CUSTOMATTRIBUTEDATA \
--define:FX_NO_BIGINT_CULTURE_PARSE \
--define:FX_ATLEAST_40 \
--define:FX_ATLEAST_35 \
--define:FX_ATLEAST_LINQ \
--define:FX_NO_BIGINT

DEFINES_4_0 = \
$(DEFINES_GENERAL) \
$(DEFINES_DEBUG) \
--define:FX_NO_BIGINT_CULTURE_PARSE \
--define:FX_ATLEAST_40 \
--define:FX_ATLEAST_35 \
--define:FX_ATLEAST_LINQ

REFERENCES_2_0 = \
-r:$(monogacdirXX)/Microsoft.Build.Engine.dll \
-r:$(monogacdirXX)/Microsoft.Build.Framework.dll \
-r:$(monogacdir35)/Microsoft.Build.Tasks.v3.5.dll \
-r:$(monogacdir35)/Microsoft.Build.Utilities.v3.5.dll \
-r:$(monogacdirXX)/mscorlib.dll \
-r:$(monogacdirXX)/System.Core.dll \
-r:$(monogacdirXX)/System.dll

REFERENCES_2_1 = \
-r:$(monogacdir21)/mscorlib.dll \
-r:$(monogacdir21)/System.Core.dll \
-r:$(monogacdir21)/System.dll

REFERENCES_4_0 = \
-r:$(monogacdirXX)/Microsoft.Build.Engine.dll \
-r:$(monogacdirXX)/Microsoft.Build.Framework.dll \
-r:$(monogacdirXX)/Microsoft.Build.Tasks.v4.0.dll \
-r:$(monogacdirXX)/Microsoft.Build.Utilities.v4.0.dll \
-r:$(monogacdirXX)/mscorlib.dll \
-r:$(monogacdirXX)/System.Core.dll \
-r:$(monogacdirXX)/System.dll \
-r:$(monogacdirXX)/System.Numerics.dll
protodir = $(builddir)/lib/proto
outdir = $(builddir)lib/$(CONFIG)/$(outsuffix)/

INSTALL = $(SHELL) $(topdir)install-sh
INSTALL_DATA = $(INSTALL) -c -m 644
Expand Down
3 changes: 2 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,9 @@ src/fsharp/FSharp.Data.TypeProviders/Makefile
src/fsharp/fsi/Makefile
src/fsharp/fsiAnyCpu/Makefile
src/fsharp/policy.2.0.FSharp.Core/Makefile
src/fsharp/policy.4.0.FSharp.Core/Makefile
src/fsharp/policy.2.3.FSharp.Core/Makefile
src/fsharp/policy.3.3.FSharp.Core/Makefile
src/fsharp/policy.4.0.FSharp.Core/Makefile
src/fsharp/policy.4.3.FSharp.Core/Makefile
])
AC_OUTPUT
Expand Down
4 changes: 4 additions & 0 deletions lib/bootstrap/2.0/FSharp.SRGen.targets
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Copyright (C) Microsoft Corporation. Apache 2.0 License.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="FsSrGen" AssemblyFile="FSharp.SRGen.Build.Tasks.dll"/>
<PropertyGroup>
<!-- Visual Studio and MSBuild use this dependency to trigger resource generation at the right time -->
<PrepareForBuildDependsOn>ProcessFsSrGen;$(PrepareForBuildDependsOn)</PrepareForBuildDependsOn>
<!-- XBuild and MonoDevelop and Xamarin Studio use this dependency to trigger resource generation at the right time -->
<!-- For some reason these don't recognize 'PrepareForBuildDependsOn' -->
<BuildDependsOn>ProcessFsSrGen;$(BuildDependsOn)</BuildDependsOn>
</PropertyGroup>

Expand Down
Loading