Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

1.3.3

Latest
Compare
Choose a tag to compare
@lucaswerkmeister lucaswerkmeister released this 30 Mar 16:12
· 21 commits to master since this release
1.3.3

Changes from the previous version (1.3.2):

  • Support for new language features:
    • Specifying the artifact ID in a module import is now supported. This feature was part of Ceylon 1.3.2, but not added to ceylon.formatter due to an oversight.
    • Specifying the classifier in a module descriptor is now supported.
      See #139.
    • The dynamic [,] syntax for an empty dynamic array is now supported.
      See #137.
    • Version constant interpolation is now supported.
      See #140 and eclipse-archived/ceylon#7157.
    • Non-disjoint switch cases with else case are now supported.
      See #141 and eclipse-archived/ceylon#6806.

The .car file for this release has been made reproducible using a fork of Debian’s strip-nondeterminism program. The following script, on a fresh Debian Jessie GNU/Linux system, should produce the exact same binary:

#!/bin/bash

languageVersion=1.3.3
languageRelease=0
projectVersion=1.3.3
repoUser=ceylon
repoName=ceylon.formatter
modules=(ceylon.formatter)
repo=https://modules.ceylon-lang.org/repo/1
timestamp=1503800000

# install dependencies
apt install --yes --allow-unauthenticated \
    git \
    default-jre \
    wget \
    curl \
    ant \
    zip \
    unzip \
    libarchive-zip-perl \
    python3

# install Ceylon
cd /opt
wget https://downloads.ceylon-lang.org/cli/ceylon-${languageVersion}_${languageVersion}-${languageRelease}_all.deb
dpkg -i ceylon-${languageVersion}_${languageVersion}-${languageRelease}_all.deb

# build project
git clone https://github.com/$repoUser/$repoName
cd $repoName
git checkout $projectVersion
sed -i "/dist.root.dir=/ s =.*$ =/usr/share/ceylon/$languageVersion " build.properties
ant compile
cd ..

# strip nondeterminism
git clone https://github.com/lucaswerkmeister/strip-nondeterminism
cd strip-nondeterminism
for module in "${modules[@]}"; do
    car="../$repoName/modules/${module//\.//}/$projectVersion/$module-$projectVersion.car"
    perl -I lib -- bin/strip-nondeterminism -t car -T $timestamp "$car"
    echo -n $(sha1sum "$car" | cut -f1 -d' ') > "$car".sha1
done
cd ..

# compare checksums
for module in "${modules[@]}"; do
    echo
    echo "$module"
    cat "$repoName/modules/${module//\.//}/$projectVersion/$module-$projectVersion.car.sha1"; echo
    curl "$repo/${module//\.//}/$projectVersion/$module-$projectVersion.car.sha1"; echo
done
exit 0