Skip to content

Commit

Permalink
Merge pull request fsharp#457 from nosami/conditional-memory-mapped-f…
Browse files Browse the repository at this point in the history
…iles

Change throw/catch to conditional. fixes fsharp#456
  • Loading branch information
dsyme committed Nov 5, 2015
2 parents c1ca061 + ffe2b44 commit 3291102
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 6 deletions.
6 changes: 6 additions & 0 deletions src/absil/il.fs
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,17 @@ open Microsoft.FSharp.Compiler.AbstractIL
open Microsoft.FSharp.Compiler.AbstractIL.Internal
open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library
open Microsoft.FSharp.Compiler.AbstractIL.Diagnostics
open System
open System.Collections.Generic
open System.Collections

let logging = false

let runningOnWindows =
match System.Environment.OSVersion.Platform with
| PlatformID.Win32NT | PlatformID.Win32S | PlatformID.Win32Windows | PlatformID.WinCE -> true
| _ -> false

// Officially supported way to detect if we are running on Mono.
// See http://www.mono-project.com/FAQ:_Technical
// "How can I detect if am running in Mono?" section
Expand Down
1 change: 1 addition & 0 deletions src/absil/il.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -2275,6 +2275,7 @@ type ILPropertyRef =
member Name: string
interface System.IComparable

val runningOnWindows: bool
val runningOnMono: bool

type ILReferences =
Expand Down
8 changes: 2 additions & 6 deletions src/absil/ilread.fs
Original file line number Diff line number Diff line change
Expand Up @@ -3971,19 +3971,15 @@ let ClosePdbReader pdb =
#endif

let OpenILModuleReader infile opts =

#if FX_NO_NATIVE_MEMORY_MAPPED_FILES
#else
try
if IL.runningOnWindows then
let mmap = MemoryMappedFile.Create infile
let modul,ilAssemblyRefs,pdb = genOpenBinaryReader infile mmap opts
{ modul = modul;
ilAssemblyRefs=ilAssemblyRefs;
dispose = (fun () ->
mmap.Close();
ClosePdbReader pdb) }
with _ ->
#endif
else
let mc = ByteFile.OpenIn infile
let modul,ilAssemblyRefs,pdb = genOpenBinaryReader infile mc opts
{ modul = modul;
Expand Down

0 comments on commit 3291102

Please sign in to comment.