Bug 35579 - Recent xbuild changes result in breakages to F# compiler tools
Summary: Recent xbuild changes result in breakages to F# compiler tools
Status: VERIFIED FIXED
Alias: None
Product: Installers
Classification: Mono
Component: General (show other bugs)
Version: 4.2.0 (C6)
Hardware: PC Mac OS
: --- normal
Target Milestone: 4.2.0 (C6)
Assignee: Rodrigo Kumpera
URL:
Depends on:
Blocks:
 
Reported: 2015-11-05 10:09 UTC by Dave Thomas
Modified: 2015-11-09 15:05 UTC (History)
3 users (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description Dave Thomas 2015-11-05 10:09:16 UTC
In the current mono on the alpha channel (Mono JIT compiler version 4.2.1 (explicit/8862921 Thu Oct 29 17:09:16 EDT 2015))

The following change: https://github.com/mono/mono/commit/76c6a08e730393927b6851709cdae1d397cbcc3a#diff-59afd196a55d61d5d1eaaef7bd49d1e5

has resulted in a change of behaviour to xbuild where the msbuild task ResolveReferences now no longer populates the ChildProjectReferences item, this mean project reference are no longer returned and type checking on project reference will fail resulting in no tooltips or auto completion data.

The following unit tests in Fsharp.Compiler.Service now fail due to project references no longer returning then output dll.


Project file parsing -- 2nd level references 
  Expected: "Found 'Test1.dll'"
Actual: "Failed to find 'Test1.dll'"
  Expected string length 17 but was 26. Strings differ at index 1.
  Expected: "Found 'Test1.dll'"
  But was:  "Failed to find 'Test1.dll'"
  ------------^

Project file parsing -- multi language project
  Expected: "Found 'ConsoleApplication2.exe'"
Actual: "Failed to find 'ConsoleApplication2.exe'"
  Expected string length 31 but was 40. Strings differ at index 1.
  Expected: "Found 'ConsoleApplication2.exe'"
  But was:  "Failed to find 'ConsoleApplication2.exe'"
  ------------^

Project file parsing -- reference project output file
  Expected: collection containing "/Users/dave/code/FCS/tests/service/data/DifferingOutputDir/Dir1/OutputDir1/Test1.dll"
  But was:  "/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/gac/FSharp.Core/4.3.0.0__b03f5f7f11d50a3a/FSharp.Core.dll", "/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.0/mscorlib.dll", "/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.0/System.dll", "/Library/Frameworks/Mono.framework/Versions/4.2.1/lib/mono/4.0/System.Core.dll" 

Example project and tests are located here in FSharp.Compiler.Service.

https://github.com/fsharp/FSharp.Compiler.Service/tree/master/tests/service/data
With the actual unit tests themselves being here: https://github.com/fsharp/FSharp.Compiler.Service/blob/master/tests/service/ProjectOptionsTests.fs#L152-L163
Comment 1 Rodrigo Kumpera 2015-11-06 11:15:55 UTC
David Karlas posted a PR to fix this: https://github.com/mono/mono/pull/2202. It was merged and I believe it fixes your problems. 

You can pick a build from internal wrench in the meanwhile.
Comment 2 Jason Imison 2015-11-09 15:04:36 UTC
Confirmed fixed in this build

20:02 $ mono --version
Mono JIT compiler version 4.2.1 (explicit/6dd2d0d Fri Nov  6 12:25:19 EST 2015)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
	TLS:           normal
	SIGSEGV:       altstack
	Notification:  kqueue
	Architecture:  x86
	Disabled:      none
	Misc:          softdebug
	LLVM:          yes(3.6.0svn-mono-(detached/a173357)
	GC:            sgen

Note You need to log in before you can comment on or make changes to this bug.