diff --git a/.gitignore b/.gitignore
index e66c732ccb1..1c8ca3d8c9c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -94,3 +94,4 @@ tests/fsharpqa/Source/CodeGen/EmittedIL/QueryExpressionStepping/Utils.dll
tests/fsharpqa/Source/CodeGen/EmittedIL/ComputationExpressions/ComputationExprLibrary.dll
*.csproj.user
+*.orig
diff --git a/src/fsharp-compiler-build.proj b/src/fsharp-compiler-build.proj
index 685429e75ee..a1db2680d4c 100644
--- a/src/fsharp-compiler-build.proj
+++ b/src/fsharp-compiler-build.proj
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/src/fsharp/FSComp.txt b/src/fsharp/FSComp.txt
index 7cc540bbff6..6a037cc3e05 100644
--- a/src/fsharp/FSComp.txt
+++ b/src/fsharp/FSComp.txt
@@ -1331,4 +1331,4 @@ descriptionUnavailable,"(description unavailable...)"
3176,tcFieldNameConflictsWithGeneratedNameForAnonymousField,"Named field '%s' conflicts with autogenerated name for anonymous field."
3177,tastConstantExpressionOverflow,"This literal expression or attribute argument results in an arithmetic overflow."
3178,tcIllegalStructTypeForConstantExpression,"This is not valid literal expression. The [] attribute will be ignored."
-3179,fscSystemRuntimeInteropServicesIsRequired,"System.Runtime.InteropServices assembly is required to use UnknownWrapper\DispatchWrapper classes."
\ No newline at end of file
+3179,fscSystemRuntimeInteropServicesIsRequired,"System.Runtime.InteropServices assembly is required to use UnknownWrapper\DispatchWrapper classes."
diff --git a/src/fsharp/FSharp.Build/FSharp.Build.fsproj b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
index 5c1898e5e8b..12e1961662a 100644
--- a/src/fsharp/FSharp.Build/FSharp.Build.fsproj
+++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
@@ -14,15 +14,15 @@
{702A7979-BCF9-4C41-853E-3ADFC9897890}
-
- FSBuild.txt
-
+
+ FSBuild.txt
+
- assemblyinfo.FSharp.Build.dll.fs
+ Utilities/assemblyinfo.FSharp.Build.dll.fs
- CompilerLocationUtils.fs
+ Utilities/CompilerLocationUtils.fs
@@ -50,9 +50,9 @@
- {DED3BBD7-53F4-428A-8C9F-27968E768605}
- FSharp.Core
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}
+ FSharp.Core
-
\ No newline at end of file
+
diff --git a/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
index ceeb15b2dfb..3d17ec31947 100644
--- a/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
+++ b/src/fsharp/FSharp.Compiler-proto/FSharp.Compiler-proto.fsproj
@@ -124,7 +124,7 @@
ildiag.fs
- ReferenceResolution.fs
+ ReferenceResolution.fs
il.fsi
@@ -180,28 +180,26 @@
range.fs
- ErrorLogger.fs
-
-
-
+ ErrorLogger.fs
+
+
InternalCollections.fsi
InternalCollections.fs
-
ilread.fsi
ilread.fs
-
- ilwrite.fsi
-
-
- ilwrite.fs
-
+
+ ilwrite.fsi
+
+
+ ilwrite.fs
+
ilreflect.fs
@@ -214,13 +212,13 @@
ilxsettings.fs
-
- pubclo.fsi
-
-
+
+ pubclo.fsi
+
+
pubclo.fs
-
+
cu_erase.fs
@@ -241,23 +239,23 @@
layout.fs
-
- ast.fs
-
-
-
- lexhelp.fsi
-
-
- lexhelp.fs
-
-
-
- sreflect.fsi
-
-
- sreflect.fs
-
+
+ ast.fs
+
+
+
+ lexhelp.fsi
+
+
+ lexhelp.fs
+
+
+
+ sreflect.fsi
+
+
+ sreflect.fs
+
QueueList.fs
@@ -265,14 +263,14 @@
tast.fs
- env.fs
-
-
- tastops.fsi
-
-
- tastops.fs
-
+ env.fs
+
+
+ tastops.fsi
+
+
+ tastops.fs
+
pickle.fsi
@@ -282,16 +280,15 @@
lexfilter.fs
-
- import.fsi
-
-
+
+ import.fsi
+
+
import.fs
infos.fs
-
NicePrint.fs
@@ -316,10 +313,10 @@
outcome.fs
-
- csolve.fsi
-
-
+
+ csolve.fsi
+
+
csolve.fs
@@ -328,10 +325,10 @@
formats.fs
-
- nameres.fsi
-
-
+
+ nameres.fsi
+
+
nameres.fs
@@ -361,10 +358,10 @@
opt.fs
-
- detuple.fsi
-
-
+
+ detuple.fsi
+
+
detuple.fs
@@ -418,9 +415,9 @@
+
-
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index 63ae670f1cb..44508f41f7e 100644
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -15,31 +15,30 @@
512
-
- FSInteractiveSettings.txt
-
+
+ FSInteractiveSettings.txt
+
- assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs
+ Utilities/assemblyinfo.FSharp.Compiler.Interactive.Settings.dll.fs
+
+
+ Utilities/fsiattrs.fs
- fsiaux.fsi
+ InteractiveSettings/fsiaux.fsi
- fsiaux.fs
-
-
- fsiattrs.fs
+ InteractiveSettings/fsiaux.fs
-
- {DED3BBD7-53F4-428A-8C9F-27968E768605}
- FSharp.Core
-
-
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}
+ FSharp.Core
+
+
-
+
diff --git a/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj b/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
index 92264b3adea..cc573183528 100644
--- a/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
+++ b/src/fsharp/FSharp.Compiler.Server.Shared/FSharp.Compiler.Server.Shared.fsproj
@@ -14,9 +14,9 @@
v2.0
-
- FSServerShared.txt
-
+
+ FSServerShared.txt
+
assemblyinfo.FSharp.Compiler.Server.Shared.dll.fs
@@ -30,9 +30,9 @@
- {DED3BBD7-53F4-428A-8C9F-27968E768605}
- FSharp.Core
-
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}
+ FSharp.Core
+
diff --git a/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj b/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj
index d4592072418..212c34fdcbd 100644
--- a/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj
+++ b/src/fsharp/FSharp.Compiler/FSharp.Compiler.fsproj
@@ -500,13 +500,13 @@
-
+
-
+
{DED3BBD7-53F4-428A-8C9F-27968E768605}
FSharp.Core
diff --git a/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj b/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
index 384b7d452d6..a3555d80826 100644
--- a/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
+++ b/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
@@ -103,4 +103,4 @@
-
\ No newline at end of file
+
diff --git a/src/fsharp/FSharp.Core/FSharp.Core.fsproj b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
index e575021f690..97b8140a04e 100644
--- a/src/fsharp/FSharp.Core/FSharp.Core.fsproj
+++ b/src/fsharp/FSharp.Core/FSharp.Core.fsproj
@@ -189,10 +189,10 @@
Units/SI.fs
- fslib-extra-pervasives.fsi
+ Extras/fslib-extra-pervasives.fsi
- fslib-extra-pervasives.fs
+ Extras/fslib-extra-pervasives.fs
assemblyinfo.FSharp.Core.dll.fs
@@ -208,9 +208,9 @@
'$(TargetFramework)' == 'sl3-wp' "/>
+ '$(TargetFramework)' == 'portable47' OR
+ '$(TargetFramework)' == 'XNA\5.0' OR
+ '$(TargetFramework)' == 'sl3-wp' "/>
diff --git a/src/fsharp/FSharp.Core/Linq.fs b/src/fsharp/FSharp.Core/Linq.fs
index 64b0217c7e3..65e8b294033 100644
--- a/src/fsharp/FSharp.Core/Linq.fs
+++ b/src/fsharp/FSharp.Core/Linq.fs
@@ -797,4 +797,4 @@ module LeafExpressionConverter =
#endif
-
\ No newline at end of file
+
diff --git a/src/fsharp/FSharp.Core/control.fs b/src/fsharp/FSharp.Core/control.fs
index 1fa224a5924..dd33de49d0c 100644
--- a/src/fsharp/FSharp.Core/control.fs
+++ b/src/fsharp/FSharp.Core/control.fs
@@ -399,7 +399,7 @@ namespace Microsoft.FSharp.Control
[]
type Trampoline() =
-
+
[]
static let bindLimitBeforeHijack = 300
#if FX_NO_THREAD_STATIC
@@ -415,11 +415,12 @@ namespace Microsoft.FSharp.Control
#else
Trampoline.thisThreadHasTrampoline
#endif
+
let mutable cont = None
let mutable bindCount = 0
static let unfake FakeUnit = ()
-
+
// Install a trampolineStack if none exists
member this.ExecuteAction (firstAction : unit -> FakeUnitValue) =
let rec loop action =
@@ -442,6 +443,7 @@ namespace Microsoft.FSharp.Control
loop firstAction
finally
#if FX_NO_THREAD_STATIC
+ ()
#else
if thisIsTopTrampoline then
Trampoline.thisThreadHasTrampoline <- false
diff --git a/src/fsharp/FSharp.Core/printf.fs b/src/fsharp/FSharp.Core/printf.fs
index 3c0ef1a01a7..b06c97e0ba8 100644
--- a/src/fsharp/FSharp.Core/printf.fs
+++ b/src/fsharp/FSharp.Core/printf.fs
@@ -157,7 +157,7 @@ module internal PrintfImpl =
buf.Append(c) |> ignore
go (i + 1) buf
go i (Text.StringBuilder())
-
+
/// Abstracts generated printer from the details of particular environment: how to write text, how to produce results etc...
[]
type PrintfEnv<'State, 'Residue, 'Result> =
@@ -1266,7 +1266,11 @@ module internal PrintfImpl =
)
#endif
- []
+ []
+#if FX_NO_THREAD_STATIC
+#else
+ []
+#endif
static val mutable private last : string * CachedItem<'T, 'State, 'Residue, 'Result>
static member Get(key : Format<'T, 'State, 'Residue, 'Result>) =
@@ -1382,4 +1386,4 @@ module Printf =
[]
let eprintfn fmt = fprintfn System.Console.Error fmt
#endif
-#endif
+#endif
\ No newline at end of file
diff --git a/src/fsharp/Fsc-proto/Fsc-proto.fsproj b/src/fsharp/Fsc-proto/Fsc-proto.fsproj
index bc6abc2e95c..dbe51512d79 100644
--- a/src/fsharp/Fsc-proto/Fsc-proto.fsproj
+++ b/src/fsharp/Fsc-proto/Fsc-proto.fsproj
@@ -33,7 +33,7 @@
-
+
{33E0FB8C-93DC-4AD7-9DCD-9FBDA6C2F061}
FSharp.Compiler-proto
diff --git a/src/fsharp/Fsc/Fsc.fsproj b/src/fsharp/Fsc/Fsc.fsproj
index ffed346655a..ace36f9e42f 100644
--- a/src/fsharp/Fsc/Fsc.fsproj
+++ b/src/fsharp/Fsc/Fsc.fsproj
@@ -24,14 +24,14 @@
- assemblyinfo.fsc.exe.fs
+ Resources/assemblyinfo.fsc.exe.fs
fscmain.fs
- PreserveNewest
fsc.exe.config
+ PreserveNewest
@@ -48,5 +48,5 @@
FSharp.Core
-
-
\ No newline at end of file
+
+
diff --git a/src/fsharp/build.fs b/src/fsharp/build.fs
index 642a4291f03..098a2963697 100644
--- a/src/fsharp/build.fs
+++ b/src/fsharp/build.fs
@@ -3994,7 +3994,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
if not (FileSystem.SafeExists sigFileName) then
error(Error(FSComp.SR.buildExpectedSigdataFile(), m));
[ (ilShortAssemName, (fun () -> FileSystem.ReadAllBytesShim sigFileName))]
- else
+ else
sigDataReaders
sigDataReaders
|> List.map (fun (ccuName, sigDataReader) ->
diff --git a/src/fsharp/fsi/Fsi.fsproj b/src/fsharp/fsi/Fsi.fsproj
index b228772a3f4..abf45c3c7ab 100644
--- a/src/fsharp/fsi/Fsi.fsproj
+++ b/src/fsharp/fsi/Fsi.fsproj
@@ -27,19 +27,19 @@
FSIstrings.txt
- assemblyinfo.fsi.exe.fs
+ Utilities/assemblyinfo.fsi.exe.fs
- InternalCollections.fsi
+ Utilities/InternalCollections.fsi
- InternalCollections.fs
+ Utilities/InternalCollections.fs
- console.fs
+ Console/console.fs
- fsi.fs
+ InteractiveSession/fsi.fs
PreserveNewest
diff --git a/src/fsharp/tc.fs b/src/fsharp/tc.fs
index b7224b92e84..befb478ecb2 100644
--- a/src/fsharp/tc.fs
+++ b/src/fsharp/tc.fs
@@ -278,8 +278,8 @@ let emptyTcEnv g =
{ eNameResEnv = NameResolutionEnv.Empty(g)
eUngeneralizableItems=[]
ePath=[]
- eCompPath=cpath
- eAccessPath=cpath
+ eCompPath=cpath // dummy
+ eAccessPath=cpath // dummy
eAccessRights=computeAccessRights cpath [] None // compute this field
eInternalsVisibleCompPaths=[]
eModuleOrNamespaceTypeAccumulator= ref (NewEmptyModuleOrNamespaceType Namespace)