Skip to content

Added Fix to allow implicit PCL references to be retrieved from FSharpProjectFileInfo #330

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

Merged
merged 2 commits into from
Apr 9, 2015

Conversation

7sharp9
Copy link
Member

@7sharp9 7sharp9 commented Apr 8, 2015

Also added project tests for profile 7,78,259

7sharp9 added 2 commits April 8, 2015 16:58
@rneatherway
Copy link
Member

I think the test project files might be missing, I get:

Errors and Failures:
1) Test Error : FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile259 project
   System.IO.FileNotFoundException : Project file /home/robin/dev/other/FSharp.Compiler.Service/tests/service../../projects/Sample_VS2013_FSharp_Portable_Library_net451_adjusted_to_profile259/Sample_VS2013_FSharp_Portable_Library_net451.fsproj not found
Parameter name: projectFileName
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpProjectFileInfo..ctor (System.String fsprojFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 enableLogging) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpChecker.GetProjectOptionsFromProjectFile (System.String projectFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 loadedTimeStamp) [0x00000] in <filename unknown>:0 
  at FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile259 project () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

2) Test Error : FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile7 project
   System.IO.FileNotFoundException : Project file /home/robin/dev/other/FSharp.Compiler.Service/tests/service../../projects/Sample_VS2013_FSharp_Portable_Library_net45/Sample_VS2013_FSharp_Portable_Library_net45.fsproj not found
Parameter name: projectFileName
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpProjectFileInfo..ctor (System.String fsprojFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 enableLogging) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpChecker.GetProjectOptionsFromProjectFile (System.String projectFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 loadedTimeStamp) [0x00000] in <filename unknown>:0 
  at FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile7 project () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

3) Test Error : FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile78 project
   System.IO.FileNotFoundException : Project file /home/robin/dev/other/FSharp.Compiler.Service/tests/service../../projects/Sample_VS2013_FSharp_Portable_Library_net451_adjusted_to_profile78/Sample_VS2013_FSharp_Portable_Library_net451.fsproj not found
Parameter name: projectFileName
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpProjectFileInfo..ctor (System.String fsprojFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 enableLogging) [0x00000] in <filename unknown>:0 
  at Microsoft.FSharp.Compiler.SourceCodeServices.FSharpChecker.GetProjectOptionsFromProjectFile (System.String projectFileName, Microsoft.FSharp.Core.FSharpOption`1 properties, Microsoft.FSharp.Core.FSharpOption`1 loadedTimeStamp) [0x00000] in <filename unknown>:0 
  at FSharp.Compiler.Service.Tests.ProjectOptionsTests.Project file parsing -- PCL profile78 project () [0x00000] in <filename unknown>:0 
  at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 

@7sharp9
Copy link
Member Author

7sharp9 commented Apr 8, 2015

They are part of FCS?

https://github.com/fsharp/FSharp.Compiler.Service/tree/master/tests/projects

@7sharp9
Copy link
Member Author

7sharp9 commented Apr 8, 2015

The tests actually pass, mono has a SIGSEGV in another other area, it doesn't look related.

@7sharp9
Copy link
Member Author

7sharp9 commented Apr 9, 2015

@rneatherway Do you need me to do anything else? I just tested on a fresh checkout and everything tests ok.

@rneatherway
Copy link
Member

I'll retest on a clean checkout in a few minutes.
On 9 Apr 2015 08:46, "Dave Thomas" notifications@github.com wrote:

@rneatherway https://github.com/rneatherway Do you need me to do
anything else? I just tested on a fresh checkout and everything tests ok.


Reply to this email directly or view it on GitHub
#330 (comment)
.

@7sharp9
Copy link
Member Author

7sharp9 commented Apr 9, 2015

Ok, the appveyor tests also went through ok.

@rneatherway
Copy link
Member

The tests pass fine for me too now. The problem above seemed to be improperly concatenated paths without a directory separator.

@rneatherway
Copy link
Member

Just rerunning Travis to confirm it is transient, then will merge.

@rneatherway
Copy link
Member

Some NuGet issue now....

fsgit added a commit that referenced this pull request Apr 9, 2015
Added Fix to allow implicit PCL references to be retrieved from FSharpProjectFileInfo
@fsgit fsgit merged commit ed57410 into fsharp:master Apr 9, 2015
@7sharp9 7sharp9 deleted the pclfix branch April 10, 2015 08:17
@rneatherway
Copy link
Member

Great! Simple but important fix. That'll help Emacs too, thanks Dave.

tpetricek pushed a commit to tpetricek/FSharp.Compiler.Service that referenced this pull request Apr 29, 2015
Use MONO_VERSION throughout .travis.yml
dsyme pushed a commit to dsyme/FSharp.Compiler.Service that referenced this pull request Jul 8, 2015
closes fsharp#335
fixes fsharp#330

commit 05175e2a00a05dd444b9c5420946047d77167742
Author: mrange <marten_range@hotmail.com>
Date:   Wed Mar 25 20:15:44 2015 +0100

    Added Tuple elimination IL test

commit 15c32975781bbd66626b05bd1834390e02d8b17f
Author: Arseny Kapoulkine <arseny.kapoulkine@gmail.com>
Date:   Thu Mar 26 00:20:45 2015 -0700

    Eliminate tuple allocation for implicitly returned formal arguments

    The expression generated for implicitly returned formal arguments does not
    match the structure that tuple allocation elimination can understand.

    In particular, it generates a structure:

    let t = (let a0=v0 in let a1=v1 in ... in e0,e1,...) in expr

    However, tuple allocation elimination expects the tuple value to be a
    tupled expression for elimination to work.

    When t is an immutable local variable, we can rewrite the expression into:

    let a0=v0 in let a1=v1 in ... in (let t = e0,e1,... in expr)

    This results in a more direct binding for t, enabling allocation
    elimination.

    As a result, using match constructs on System.Collections.Generic.Dictionary
    TryGetValue as follows:

    match d.TryGetValue(key) with true, value -> ... | _ -> ...

    generates the same IL in optimized build as more complicated code with
    explicit output parameters. Other code patterns may get a similar
    improvement in reduced GC pressure and increased performance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants