ceylon.ast 1.3.3
Changes from the previous version (1.3.2):
- A
CaseClause
and aCaseExpression
have an additional boolean modifier,elseCase
,
indicating a non-disjoint case (syntaxelse case
instead of justcase
). See #137. - A
ModuleSpecifier
has an additionalClassifier
(a new alias forStringLiteral
). See #135. - A
ModuleBody
has an additional listconstantDefinitions
ofValueDefinition
s, and aModuleImport
’sversion
may also be aBaseExpression
. See #136.
Unfortunately, one minor language change could not be adopted in this version: Support for of package.foo
is not added in this release. See #134.
The .car
files for this release have 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.ast
modules=(ceylon.ast.{core,create,redhat,samples})
repo=https://modules.ceylon-lang.org/repo/1
timestamp=1511111111
# install dependencies
apt install --yes --allow-unauthenticated \
git \
default-jre \
wget \
curl \
ant \
zip \
unzip \
libarchive-zip-perl \
python3 \
nodejs
# 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