Skip to content
This repository has been archived by the owner on Mar 10, 2020. It is now read-only.

Post platform cleanup #115

Open
7 tasks
dmjio opened this issue Apr 14, 2017 · 0 comments
Open
7 tasks

Post platform cleanup #115

dmjio opened this issue Apr 14, 2017 · 0 comments
Labels
Milestone

Comments

@dmjio
Copy link
Contributor

dmjio commented Apr 14, 2017

It would probably be best to clean out some of the utilities that were left over from the post-HaLVM platform changes when upgrading to GHC 8.x. This way HaLVM will more closely resemble a regular GHC.

On a stock GHC, the following is installed to /lib/*/bin and /bin:

/bin

builder@6816a77f17db:/ubuntu16.04$ ls -l /nix/store/dz4vpj27nza9jv96b1jdpxjghscwzgps-ghc-8.0.2/bin/
total 76
lrwxrwxrwx 1 builder builder     9 Jan  1  1970 ghc -> ghc-8.0.2
-r-xr-xr-x 1 builder builder   594 Jan  1  1970 ghc-8.0.2
lrwxrwxrwx 1 builder builder    13 Jan  1  1970 ghc-pkg -> ghc-pkg-8.0.2
-r-xr-xr-x 1 builder builder   626 Jan  1  1970 ghc-pkg-8.0.2
lrwxrwxrwx 1 builder builder    10 Jan  1  1970 ghci -> ghci-8.0.2
-r-xr-xr-x 1 builder builder   307 Jan  1  1970 ghci-8.0.2
lrwxrwxrwx 1 builder builder    17 Jan  1  1970 haddock -> haddock-ghc-8.0.2
-r-xr-xr-x 1 builder builder   585 Jan  1  1970 haddock-ghc-8.0.2
-r-xr-xr-x 1 builder builder 48120 Jan  1  1970 hp2ps
-r-xr-xr-x 1 builder builder   556 Jan  1  1970 hpc
-r-xr-xr-x 1 builder builder  1335 Jan  1  1970 hsc2hs
lrwxrwxrwx 1 builder builder    12 Jan  1  1970 runghc -> runghc-8.0.2
-r-xr-xr-x 1 builder builder   602 Jan  1  1970 runghc-8.0.2
lrwxrwxrwx 1 builder builder     6 Jan  1  1970 runhaskell -> runghc

/lib/*/bin

builder@6816a77f17db:/ubuntu16.04$ ls -l /nix/store/dz4vpj27nza9jv96b1jdpxjghscwzgps-ghc-8.0.2/lib/ghc-8.0.2/bin
total 20856
-r-xr-xr-x 1 builder builder 2341496 Jan  1  1970 ghc
-r-xr-xr-x 1 builder builder 4498112 Jan  1  1970 ghc-iserv
-r-xr-xr-x 1 builder builder   73872 Jan  1  1970 ghc-iserv-dyn
-r-xr-xr-x 1 builder builder 7795904 Jan  1  1970 ghc-iserv-prof
-r-xr-xr-x 1 builder builder  537856 Jan  1  1970 ghc-pkg
-r-xr-xr-x 1 builder builder   13570 Jan  1  1970 ghc-split
-r-xr-xr-x 1 builder builder 4643920 Jan  1  1970 haddock
-r-xr-xr-x 1 builder builder  743400 Jan  1  1970 hpc
-r-xr-xr-x 1 builder builder  611208 Jan  1  1970 hsc2hs
-r-xr-xr-x 1 builder builder   54816 Jan  1  1970 runghc
-r-xr-xr-x 1 builder builder   13736 Jan  1  1970 unlit

On HaLVM-2.4.0, /bin and /lib/*/bin contain:

/bin

[nix-shell:/ubuntu16.04]$ ls -l /nix/store/wc5har9fpf9milka49z10gdh4v99cjr8-HaLVM-2.4.0/bin/
total 96
-r-xr-xr-x 1 builder builder  8408 Jan  1  1970 convert-profile
-r-xr-xr-x 1 builder builder  1083 Jan  1  1970 halvm-cabal
-r-xr-xr-x 1 builder builder   647 Jan  1  1970 halvm-config
-r-xr-xr-x 1 builder builder   685 Jan  1  1970 halvm-ghc
-r-xr-xr-x 1 builder builder   638 Jan  1  1970 halvm-ghc-pkg
-r-xr-xr-x 1 builder builder  8584 Jan  1  1970 mkrenddir
lrwxrwxrwx 1 builder builder    30 Jan  1  1970 x86_64-unknown-HaLVM-ghc -> x86_64-unknown-HaLVM-ghc-8.0.2
-r-xr-xr-x 1 builder builder   504 Jan  1  1970 x86_64-unknown-HaLVM-ghc-8.0.2
lrwxrwxrwx 1 builder builder    34 Jan  1  1970 x86_64-unknown-HaLVM-ghc-pkg -> x86_64-unknown-HaLVM-ghc-pkg-8.0.2
-r-xr-xr-x 1 builder builder   536 Jan  1  1970 x86_64-unknown-HaLVM-ghc-pkg-8.0.2
-r-xr-xr-x 1 builder builder 48648 Jan  1  1970 x86_64-unknown-HaLVM-hp2ps

/lib/*/bin

[nix-shell:/ubuntu16.04]$ ls -l /nix/store/wc5har9fpf9milka49z10gdh4v99cjr8-HaLVM-2.4.0/lib/*/bin
total 89620
-r-xr-xr-x 1 builder builder   375336 Jan  1  1970 HsColour
-r-xr-xr-x 1 builder builder   570992 Jan  1  1970 alex
-r-xr-xr-x 1 builder builder  5637680 Jan  1  1970 cabal
-r-xr-xr-x 1 builder builder 72975304 Jan  1  1970 ghc
-r-xr-xr-x 1 builder builder  6072240 Jan  1  1970 ghc-pkg
-r-xr-xr-x 1 builder builder    13570 Jan  1  1970 ghc-split
-r-xr-xr-x 1 builder builder  4639560 Jan  1  1970 haddock.bin
-r-xr-xr-x 1 builder builder   838648 Jan  1  1970 happy
-r-xr-xr-x 1 builder builder      316 Jan  1  1970 hsc2hs
-r-xr-xr-x 1 builder builder   610224 Jan  1  1970 hsc2hs.bin
-r-xr-xr-x 1 builder builder    13472 Jan  1  1970 unlit

I'd say we should make the following changes to HaLVM-2.4.x:

  • remove /lib/*/bin/alex
  • remove /lib/*/bin/happy
  • remove /lib/*/bin/HsColour
  • remove /lib/*/bin/haddock.bin
  • remove /lib/*/bin/hsc2hs.bin
  • add /bin/hpc (statically linked)
  • add (statically linked) /lib/*/bin/haddock, /lib/*/bin/happy, /lib/*/bin/hsc2hs, then write a script to call each one of these from /bin, or just make a symlink at/bin/h* that points to /lib/*/bin/h*

There are sometimes problems with statically linking glibc, maybe a musl based GHC could be used to statically link some of the h* utilities. Static linking could give us greater portability.

@acw acw added the bug label Apr 19, 2017
@acw acw added this to the HaLVM 2.5 milestone Apr 19, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants