{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/649","labels_url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/649/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/649/comments","events_url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/649/events","html_url":"https://github.com/Microsoft/visualfsharp/issues/649","id":108936054,"number":649,"title":"So ... you want to try out the coreclr version of the compiler on windows ","user":{"login":"KevinRansom","id":5175830,"avatar_url":"https://avatars.githubusercontent.com/u/5175830?v=3","gravatar_id":"","url":"https://api.github.com/users/KevinRansom","html_url":"https://github.com/KevinRansom","followers_url":"https://api.github.com/users/KevinRansom/followers","following_url":"https://api.github.com/users/KevinRansom/following{/other_user}","gists_url":"https://api.github.com/users/KevinRansom/gists{/gist_id}","starred_url":"https://api.github.com/users/KevinRansom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KevinRansom/subscriptions","organizations_url":"https://api.github.com/users/KevinRansom/orgs","repos_url":"https://api.github.com/users/KevinRansom/repos","events_url":"https://api.github.com/users/KevinRansom/events{/privacy}","received_events_url":"https://api.github.com/users/KevinRansom/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Microsoft/visualfsharp/labels/discussion","name":"discussion","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-09-29T18:55:17Z","updated_at":"2015-11-20T09:16:34Z","closed_at":null,"body":"This is probably the easiest way to go about this:\r\n\r\n1.  I'm going to assume you are set to sync and build the tree: \r\n * https://github.com/Microsoft/visualfsharp/blob/master/DEVGUIDE.md\r\n * https://github.com/Microsoft/visualfsharp/blob/master/TESTGUIDE.md\r\n2. checkout coreclr\r\n3. in a vs2014 command window execute appveyor-build.cmd\r\n * This builds everything and runs the tests, etc.... it's good to know you are in a good place.\r\n4. Once appveyor-build has completed goto the directory containing the compiler and coreclr binaries\r\n * There are a ton of files in this directory ... we are still in early days no attempt has yet been made to prune them down to necessary files ... eventually it will come.\r\n5. You can run from this directory or copy it some place warm and sunny ... like c:\\fs_coreclr\r\n6. ***** Super caveats *********\r\n a. The desktop compiler is kind of helpful and will go searching around for mscorlib, fsharp.core.dll etc.  This functionality is not yet implemented ... on the desktop it was implemented using msbuild and some custom logic.  In coreclr it will probably be done using a provider, with nuget being the default provider.  There is no design except in my head.  I mention this so you don't all hate on me for how awful the command line will be for a while :-)\r\n b. Existing TypeProviders all target the desktop .. The inbox TP's have not been ... and will probably not be ported to coreclr.  Also we have not identified a binding mechanism for allowing tp's and the compiler to agree on type loading.  Lots of that is going to be changed due to coreclr limitations.\r\n c. Environment.Exit() is not yet implemented on coreclr ... although it is coming real soon now.  Exit is important to error logging and I've impmeneted it as an exception so errors appear as uncaught exceptions for now ... forgive the crappiness of it please, It will be back to normal shortly.\r\nd. Currently It requires the specification of default.manifest on the command line.\r\ne.  There is no debugging symbols yet\r\nOkay lets compile something:  I just used VS to make an F# console app and added hello, world to program.fs\r\n````\r\n﻿// Learn more about F# at http://fsharp.org\r\n// See the 'F# Tutorial' project for more help.\r\n\r\n[<EntryPoint>]\r\nlet main argv = \r\n    printf \"Hello, World! from F#\"\r\n    0 // return an integer exit code\r\n````\r\ncopied the program.fs file into a sunny place too: [__C:\\fs_smoketest__]\r\nmade this batch file, also in the sunny place:\r\n\r\nThis batch file builds program.fs to run on the coreclr\r\n````\r\n@echo off\r\nC:\\fs_coreclr\\corerun.exe C:\\fs_coreclr\\fsc.exe --noframework --simpleresolution -r:\"%ProgramFiles(x86)%\\Reference Assemblies\\Microsoft\\FSharp\\.NETFramework\\v4.0\\4.4.0.0\\FSharp.Core.dll\" -r::%Windir%\\Microsoft.NET\\assembly\\GAC_32\\mscorlib\\v4.0_4.0.0.0__b77a5c561934e089\\mscorlib.dll -r::%Windir%\\Microsoft.NET\\assembly\\GAC_MSIL\\System.Numerics\\v4.0_4.0.0.0__b77a5c561934e089\\System.Numerics.dll -r:%Windir%\\Microsoft.NET\\assembly\\GAC_MSIL\\System.Net.Requests\\v4.0_4.0.0.0__b03f5f7f11d50a3a\\System.Net.Requests.dll --win32manifest:C:\\fs_coreclr\\default.win32manifest --target:exe --out:program.exe program.fs\r\n````\r\n\r\nWhen it runs you should see this:\r\n````\r\nC:\\fs_smoketest>C:\\fs_coreclr\\corerun.exe C:\\fs_coreclr\\fsc.exe --noframework --simpleresolution -r:\r\n\"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\FSharp\\.NETFramework\\v4.0\\4.4.0.0\\FSharp.Core\r\n.dll\" -r:C:\\WINDOWS\\Microsoft.NET\\assembly\\GAC_32\\mscorlib\\v4.0_4.0.0.0__b77a5c561934e089\\mscorlib.d\r\nll -r:C:\\WINDOWS\\Microsoft.NET\\assembly\\GAC_MSIL\\System.Numerics\\v4.0_4.0.0.0__b77a5c561934e089\\Syst\r\nem.Numerics.dll -r:C:\\WINDOWS\\Microsoft.NET\\assembly\\GAC_MSIL\\System.Net.Requests\\v4.0_4.0.0.0__b03f\r\n5f7f11d50a3a\\System.Net.Requests.dll --win32manifest:C:\\fs_coreclr\\default.win32manifest --target:ex\r\ne --out:program.exe program.fs\r\nMicrosoft (R) F# Compiler version (private)\r\nCopyright (c) Microsoft Corporation. All Rights Reserved.\r\n\r\nC:\\fs_smoketest>dir program.exe\r\n Volume in drive C is Windows\r\n Volume Serial Number is EC1E-3B88\r\n\r\n Directory of C:\\fs_smoketest\r\n\r\n09/29/2015  11:29 AM             4,608 program.exe\r\n               1 File(s)          4,608 bytes\r\n               0 Dir(s)  220,500,692,992 bytes free\r\n\r\nC:\\fs_smoketest>program.exe\r\nHello, World! from F#\r\nC:\\fs_smoketest>\r\n````\r\n\r\nTo build it to run against coreclr is very similar: I made a batch file c.bat which contained:\r\n\r\n````\r\n@echo off\r\nC:\\fs_coreclr\\corerun C:\\fs_coreclr\\fsc.exe --targetprofile:netcore --noframework --simpleresolution -r:\"C:\\fs_coreclr\\FSharp.Core.dll\" -r:\"%ProgramFiles(x86)%\\Reference Assemblies\\Microsoft\\Framework\\.NETCore\\v4.5\\system.runtime.dll\" -r:\"%ProgramFiles(x86)%\\Reference Assemblies\\Microsoft\\Framework\\.NETCore\\v4.5\\System.IO.dll\" --win32manifest:C:\\fs_coreclr\\default.win32manifest --target:exe --out:program.exe program.fs\r\n````\r\n\r\nWhen it is run you can see this:\r\n````\r\nC:\\fs_smoketest>c\r\nMicrosoft (R) F# Compiler version (private)\r\nCopyright (c) Microsoft Corporation. All Rights Reserved.\r\n\r\nC:\\fs_smoketest>..\\fs_coreclr\\CoreRun.exe program.exe\r\nHello, World! from F#\r\nC:\\fs_smoketest>\r\n````\r\n\r\nLet me know how you find it, feel free to raid bugs, make suggestions etc ... \r\n\r\nFor now my priority is to get it working on Linux ... and I am not even close to being a Linux aficionado, and so that is going to be fun for me.\r\n\r\nThanks for your interest\r\n\r\nKevin\r\n"},"comment":{"url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/comments/158333112","html_url":"https://github.com/Microsoft/visualfsharp/issues/649#issuecomment-158333112","issue_url":"https://api.github.com/repos/Microsoft/visualfsharp/issues/649","id":158333112,"user":{"login":"enricosada","id":147243,"avatar_url":"https://avatars.githubusercontent.com/u/147243?v=3","gravatar_id":"","url":"https://api.github.com/users/enricosada","html_url":"https://github.com/enricosada","followers_url":"https://api.github.com/users/enricosada/followers","following_url":"https://api.github.com/users/enricosada/following{/other_user}","gists_url":"https://api.github.com/users/enricosada/gists{/gist_id}","starred_url":"https://api.github.com/users/enricosada/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enricosada/subscriptions","organizations_url":"https://api.github.com/users/enricosada/orgs","repos_url":"https://api.github.com/users/enricosada/repos","events_url":"https://api.github.com/users/enricosada/events{/privacy}","received_events_url":"https://api.github.com/users/enricosada/received_events","type":"User","site_admin":false},"created_at":"2015-11-20T09:16:34Z","updated_at":"2015-11-20T09:16:34Z","body":"instead of push `visualfsharp/coreclr` to a branch inside `FCS` repo, if coreclr is stable (not done, stable) pls merge `visualfsharp/coreclr` inside `visualfsharp/master`. \r\n\r\nLess branch to sync ( master+coreclr on visualfsharp, master+coreclr on openfsharp (xplat right?), master+coreclr on fcs ), really, let's use a build parameters, and is done.\r\nSo after we can use smaller pr. \r\nSome stuff (portablepdb,upgrade nunit) is not something needed only by coreclr, but usefull also to master code (cleanup speedup development and less friction to contribute)\r\n\r\nIf you have fear of breaking, we can use a stabilization branch before update2 ( @KevinRansom  or that is the `vs2015` branch? )\r\n\r\n"}}