Commit af2aa982 authored by Ryan Scott's avatar Ryan Scott Committed by Ben Gamari

WIP: Use GHC 8.6.5 as the minimum bootstrap compiler version

parent c78dbd90
......@@ -25,8 +25,10 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
/opt/llvm6/bin/llc --version
# GHC
RUN curl http://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-aarch64-ubuntu_bionic-linux.tar.xz | tar -xJ
WORKDIR /ghc-8.6.2
# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64
ENV GHC_VERSION 8.8.1
RUN curl http://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-aarch64-ubuntu_bionic-linux.tar.xz | tar -xJ
WORKDIR /ghc-$GHC_VERSION
RUN ./configure --prefix=/usr/local LLC=/opt/llvm6/bin/llc OPT=/opt/llvm6/bin/opt && \
make install
WORKDIR /
......@@ -44,15 +46,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
$LLC --version
# Cabal
ENV CABAL_VERSION 3.0.0.0
RUN git clone https://github.com/haskell/Cabal
WORKDIR /Cabal
RUN git checkout cabal-install-v2.4.1.0
RUN git checkout cabal-install-v$CABAL_VERSION
WORKDIR /Cabal/cabal-install
RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
RUN ls /Cabal/cabal-install/dist/build
ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
......
......@@ -26,9 +26,10 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
/opt/llvm5/bin/llc --version
# GHC
RUN curl http://home.smart-cactus.org/~ben/ghc/ghc-8.4.4-arm-unknown-linux.tar.xz | tar -xJ
#RUN curl http://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-aarch64-ubuntu_bionic-linux.tar.xz | tar -xJ
WORKDIR /ghc-8.4.4
# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64
ENV GHC_VERSION 8.8.1
RUN curl http://home.smart-cactus.org/~ben/ghc/ghc-$GHC_VERSION-arm-unknown-linux.tar.xz | tar -xJ
WORKDIR /ghc-$GHC_VERSION
RUN ./configure --prefix=/usr/local LLC=/opt/llvm5/bin/llc OPT=/opt/llvm5/bin/opt && \
make install
WORKDIR /
......@@ -46,15 +47,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
$LLC --version
# Cabal
ENV CABAL_VERSION 3.0.0.0
RUN git clone https://github.com/haskell/Cabal
WORKDIR /Cabal
RUN git checkout cabal-install-v2.4.1.0
RUN git checkout cabal-install-v$CABAL_VERSION
WORKDIR /Cabal/cabal-install
RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
RUN ls /Cabal/cabal-install/dist/build
ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH
# Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password
......
......@@ -23,16 +23,18 @@ RUN apt-get update -qq \
WORKDIR /tmp
# Get i386 GHC bindist for 32 bit CI builds.
RUN curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-8.4.4
RUN setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN setarch i386 ./configure --prefix=/opt/ghc-i386/$GHC_VERSION CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
make install; \
rm -rf /tmp/ghc-8.4.4
ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH
WORKDIR /tmp
# Get Cabal
RUN curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-i386-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
......
......@@ -20,16 +20,18 @@ RUN apt-get update -qq \
WORKDIR /tmp
# Get i386 GHC bindist for 32 bit CI builds.
RUN curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-8.4.4
RUN setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN setarch i386 ./configure --prefix=/opt/ghc-i386/$GHC_VERSION CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
make install; \
rm -rf /tmp/ghc-8.4.4
ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH
WORKDIR /tmp
# Get Cabal
RUN curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-i386-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
......
......@@ -2,19 +2,35 @@ FROM debian:stretch
ENV LANG C.UTF-8
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main' > /etc/apt/sources.list.d/ghc.list
RUN apt-get update -qq; apt-get install --no-install-recommends -qy gnupg sudo git python3 dirmngr ca-certificates \
&& apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286 \
&& apt-get update \
&& apt-get install --no-install-recommends -qy cabal-install-2.2 ghc-8.4.2 \
&& apt-get install --no-install-recommends -qy python3-pip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN pip3 install mypy==0.701
ENV PATH /opt/local/bin:/home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
WORKDIR /tmp
# Install GHC and cabal
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install;
WORKDIR /tmp
RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
RUN mkdir -p /opt/local/bin
......
......@@ -32,17 +32,19 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp
# Install GHC and cabal
RUN curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz | tar -Jx
WORKDIR /tmp/ghc-8.4.4
RUN ./configure --prefix=/opt/ghc/8.4.4 && make install
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-centos70-linux.tar.xz | tar -Jx
WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION && make install
WORKDIR /tmp
RUN rm -rf /tmp/ghc-8.4.4
ENV PATH /opt/ghc/8.4.4/bin:$PATH
RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp
# Get Cabal
RUN curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
......
......@@ -18,17 +18,19 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev
WORKDIR /tmp
# Install GHC and cabal
RUN curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-8.4.4
RUN ./configure --prefix=/opt/ghc/8.4.4; \
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install;
WORKDIR /tmp
RUN rm -rf /tmp/ghc-8.4.4
ENV PATH /opt/ghc/8.4.4/bin:$PATH
RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal
RUN curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
......
......@@ -26,12 +26,26 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
valgrind \
# Documentation tools
python3-sphinx texlive-xetex texlive-latex-extra texlive-binaries texlive-fonts-recommended lmodern texlive-generic-extra \
cabal-install-2.4 ghc-8.4.4 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV PATH /home/ghc/.local/bin:/opt/cabal/2.4/bin:/opt/ghc/8.4.4/bin:$PATH
WORKDIR /tmp
# Install GHC and cabal
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install;
WORKDIR /tmp
RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# LLVM
ENV LLVM_TARBALL http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
......
......@@ -32,16 +32,18 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp
# Install GHC and cabal
RUN curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-8.4.4
RUN ./configure --prefix=/opt/ghc/8.4.4; \
ENV GHC_VERSION 8.6.5
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; \
rm -rf /tmp/ghc-8.4.4
ENV PATH /opt/ghc/8.4.4/bin:$PATH
rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp
# Get Cabal
RUN curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
ENV CABAL_VERSION 2.4.1.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal
# Create a normal user.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment