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 .. && \ ...@@ -25,8 +25,10 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
/opt/llvm6/bin/llc --version /opt/llvm6/bin/llc --version
# GHC # GHC
RUN curl http://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-aarch64-ubuntu_bionic-linux.tar.xz | tar -xJ # Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64
WORKDIR /ghc-8.6.2 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 && \ RUN ./configure --prefix=/usr/local LLC=/opt/llvm6/bin/llc OPT=/opt/llvm6/bin/opt && \
make install make install
WORKDIR / WORKDIR /
...@@ -44,15 +46,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \ ...@@ -44,15 +46,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
$LLC --version $LLC --version
# Cabal # Cabal
ENV CABAL_VERSION 3.0.0.0
RUN git clone https://github.com/haskell/Cabal RUN git clone https://github.com/haskell/Cabal
WORKDIR /Cabal WORKDIR /Cabal
RUN git checkout cabal-install-v2.4.1.0 RUN git checkout cabal-install-v$CABAL_VERSION
WORKDIR /Cabal/cabal-install WORKDIR /Cabal/cabal-install
RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
RUN ls /Cabal/cabal-install/dist/build 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. # Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password RUN adduser ghc --gecos "GHC builds" --disabled-password
......
...@@ -26,9 +26,10 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \ ...@@ -26,9 +26,10 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
/opt/llvm5/bin/llc --version /opt/llvm5/bin/llc --version
# GHC # GHC
RUN curl http://home.smart-cactus.org/~ben/ghc/ghc-8.4.4-arm-unknown-linux.tar.xz | tar -xJ # Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64
#RUN curl http://downloads.haskell.org/~ghc/8.6.2/ghc-8.6.2-aarch64-ubuntu_bionic-linux.tar.xz | tar -xJ ENV GHC_VERSION 8.8.1
WORKDIR /ghc-8.4.4 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 && \ RUN ./configure --prefix=/usr/local LLC=/opt/llvm5/bin/llc OPT=/opt/llvm5/bin/opt && \
make install make install
WORKDIR / WORKDIR /
...@@ -46,15 +47,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \ ...@@ -46,15 +47,16 @@ RUN curl $LLVM_TARBALL | tar -xJC .. && \
$LLC --version $LLC --version
# Cabal # Cabal
ENV CABAL_VERSION 3.0.0.0
RUN git clone https://github.com/haskell/Cabal RUN git clone https://github.com/haskell/Cabal
WORKDIR /Cabal WORKDIR /Cabal
RUN git checkout cabal-install-v2.4.1.0 RUN git checkout cabal-install-v$CABAL_VERSION
WORKDIR /Cabal/cabal-install WORKDIR /Cabal/cabal-install
RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
RUN ls /Cabal/cabal-install/dist/build 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. # Create a normal user.
RUN adduser ghc --gecos "GHC builds" --disabled-password RUN adduser ghc --gecos "GHC builds" --disabled-password
......
...@@ -23,16 +23,18 @@ RUN apt-get update -qq \ ...@@ -23,16 +23,18 @@ RUN apt-get update -qq \
WORKDIR /tmp WORKDIR /tmp
# Get i386 GHC bindist for 32 bit CI builds. # 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; ENV GHC_VERSION 8.6.5
WORKDIR /tmp/ghc-8.4.4 RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb8-linux.tar.xz | tar -Jx;
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; \ 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; \ make install; \
rm -rf /tmp/ghc-8.4.4 rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # 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 mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -20,16 +20,18 @@ RUN apt-get update -qq \ ...@@ -20,16 +20,18 @@ RUN apt-get update -qq \
WORKDIR /tmp WORKDIR /tmp
# Get i386 GHC bindist for 32 bit CI builds. # 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; ENV GHC_VERSION 8.6.5
WORKDIR /tmp/ghc-8.4.4 RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb8-linux.tar.xz | tar -Jx;
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; \ 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; \ make install; \
rm -rf /tmp/ghc-8.4.4 rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # 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 mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -2,19 +2,35 @@ FROM debian:stretch ...@@ -2,19 +2,35 @@ FROM debian:stretch
ENV LANG C.UTF-8 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 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 \ 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-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286 \
&& apt-get update \ && 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 install --no-install-recommends -qy python3-pip \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
RUN pip3 install mypy==0.701 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 RUN mkdir -p /opt/local/bin
......
...@@ -32,17 +32,19 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf ...@@ -32,17 +32,19 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # 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 ENV GHC_VERSION 8.6.5
WORKDIR /tmp/ghc-8.4.4 RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-centos70-linux.tar.xz | tar -Jx
RUN ./configure --prefix=/opt/ghc/8.4.4 && make install WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION && make install
WORKDIR /tmp WORKDIR /tmp
RUN rm -rf /tmp/ghc-8.4.4 RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/8.4.4/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # 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 mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -18,17 +18,19 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev ...@@ -18,17 +18,19 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # 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; ENV GHC_VERSION 8.6.5
WORKDIR /tmp/ghc-8.4.4 RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb8-linux.tar.xz | tar -Jx;
RUN ./configure --prefix=/opt/ghc/8.4.4; \ WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
WORKDIR /tmp WORKDIR /tmp
RUN rm -rf /tmp/ghc-8.4.4 RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/8.4.4/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal # 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 mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -26,12 +26,26 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ ...@@ -26,12 +26,26 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
valgrind \ valgrind \
# Documentation tools # Documentation tools
python3-sphinx texlive-xetex texlive-latex-extra texlive-binaries texlive-fonts-recommended lmodern texlive-generic-extra \ 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 \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && 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 # 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 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 ...@@ -32,16 +32,18 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # 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; ENV GHC_VERSION 8.6.5
WORKDIR /tmp/ghc-8.4.4 RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx;
RUN ./configure --prefix=/opt/ghc/8.4.4; \ WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; \ make install; \
rm -rf /tmp/ghc-8.4.4 rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/8.4.4/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # 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 mv cabal /usr/local/bin/cabal
# Create a normal user. # 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