Skip to content
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

fsharp: init at 4.1.7 #24385

Merged
merged 1 commit into from Apr 17, 2017
Merged

fsharp: init at 4.1.7 #24385

merged 1 commit into from Apr 17, 2017

Conversation

kuznero
Copy link
Member

@kuznero kuznero commented Mar 27, 2017

Motivation for this change

Introduce new language features with new version of F# compiler v4.1.

Build was tested like so on NixOS 17.03:

cd nixpkgs
export NIXPKGS=$(pwd)
nix-build -A fsharp41 $NIXPKGS
Things done
  • Tested using sandboxing
    (nix.useSandbox on NixOS,
    or option build-use-sandbox in nix.conf
    on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • Linux
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Fits CONTRIBUTING.md.

@vbgl
Copy link
Contributor

vbgl commented Mar 27, 2017

This seems to break a handful of .Net packages.

@kuznero
Copy link
Member Author

kuznero commented Mar 27, 2017

@vbgl, I am trying to find my way around in this - this is my first attempt to contribute, so there will be some bumps. Currently I am trying to find a way to extend dotnetPackages collection to include new package/versions that new F# depends on (number of dependencies increased quite a bit).

Is there any way to flag this PR as incomplete? Or should I just close it and re-open whenever I feel it is more ready (though I kind of like the feedback I get from Travis CI)?

@ndowens
Copy link
Contributor

ndowens commented Mar 28, 2017

I can mark it as wip

@kuznero
Copy link
Member Author

kuznero commented Mar 28, 2017

Thanks!

@ndowens
Copy link
Contributor

ndowens commented Mar 28, 2017

@kuznero just ping me when you want WIP removed

@kuznero kuznero changed the title fsharp: 4.0.1.1 -> 4.1.1 fsharp: 4.0.1.1 -> 4.1.7 Apr 3, 2017
@kuznero
Copy link
Member Author

kuznero commented Apr 3, 2017

@ndowens I think I have completed the task... in terms of building and installing F# 4.1.7. Though I cannot understand why it fails. It seems the build script is trying to build some dotNet packages with using this F# and it fails (but I noticed that it is using old version of mono - 4.0.x).

Please advice how should I proceed from now.

@kuznero
Copy link
Member Author

kuznero commented Apr 4, 2017

@copumpkin, @edef1c, please review this PR. I am pretty new to Nix(OS) community but work with dotNet ecosystem on a daily basis and would really like to get new F# compiler in.

@kuznero
Copy link
Member Author

kuznero commented Apr 5, 2017

It feels that there is something irrelevant that fails in that build now

@vbgl
Copy link
Contributor

vbgl commented Apr 6, 2017

This breaks F*, at least on darwin; the logs ends with:

cp: cannot stat '/nix/store/nijphlmsphkcacam191wpp2r1gczsqvy-fsharp-4.1.7/lib/mono/4.5/FSharp.Core.dll': No such file or directory
builder for ‘/nix/store/ba2rg0i86m3d56aihqd5z1qkb6xz7fzh-fstar-0.9.2.0.drv’ failed with exit code 1

@kuznero
Copy link
Member Author

kuznero commented Apr 14, 2017

I ended up introducing new package fsharp41 based on mono46.

@kuznero kuznero changed the title fsharp: 4.0.1.1 -> 4.1.7 fsharp: 4.0.1.1 -> 4.1.7 (new package - fsharp41) Apr 14, 2017
@kuznero kuznero changed the title fsharp: 4.0.1.1 -> 4.1.7 (new package - fsharp41) fsharp: init at 4.1.7 Apr 14, 2017
@kuznero
Copy link
Member Author

kuznero commented Apr 14, 2017

@ndowens I think it is ok to remove WIP tag now.

@kuznero
Copy link
Member Author

kuznero commented Apr 16, 2017

It all should be done now.

@copumpkin
Copy link
Member

@kuznero I don't know much about .NET or F#, but just for your future reference,

cd nixpkgs
export NIXPKGS=$(pwd)
nix-build -A fsharp41 $NIXPKGS

you don't need the $NIXPKGS variable. nix-build defaults to pointing at the current directory if not passed any arguments, so nix-build -A fsharp41 should do the exact same thing for you.

@kuznero
Copy link
Member Author

kuznero commented Apr 17, 2017

@copumpkin thanks for the tip, I am happy to learn more about nix.


ln -s ${dotnetPackages.FsCheck262}/lib/dotnet/FsCheck packages/FsCheck.2.6.2
ln -s ${dotnetPackages.FSharpCompilerTools}/lib/dotnet/FSharp.Compiler.Tools packages/FSharp.Compiler.Tools.4.1.4
ln -s ${dotnetPackages.FSharpCore}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.0.0.1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it not be easier for future updates to leave version number here?

ln -s ${dotnetPackages.FSharpCore}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.${dotnetPackages.FSharpCore.version}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case it might not be critical as FSharp.Core of that particular version is used to build a new version of the same library that this package is then producing. So, in a sense when all the versions of NuGet dependencies are listed like this in just one place, it is easier to handle when one will need to upgrade for example.

Please let me know if I misunderstood your comment.

Build F# with default mono version

Introduce separate fsharp41 packages
@Mic92 Mic92 merged commit 1d84a91 into NixOS:master Apr 17, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants