ceylon.ast 1.3.2
ceylon.ast 1.3.2
Changes from the previous version (1.3.1):
- Module descriptors have received an update. A new node type,
ModuleSpecifier
, has been added, representing the specification grammar rule of the same name. AModuleDescriptor
and aModuleImport
can each have one (replacing aModuleImport
’srepositoryType
member). TheRepositoryType
has been renamed to justRepository
to match the specification (which did not exist whenRepositoryType
was added), and aliasesArtifact
,ModuleName
andModule
have been added. See #128, #129 and #133. Assertion
now has aStringLiteral|StringTemplate? message
instead ofAnnotations annotations
, defaulting tonull
. See #131.- An incorrect example in the
MemberMeta
documentation has been removed. See #130.
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.2
languageRelease=0
projectVersion=1.3.2
repoUser=ceylon
repoName=ceylon.ast
modules=(ceylon.ast.{core,create,redhat,samples})
repo=https://modules.ceylon-lang.org/repo/1
timestamp=1490370000
# 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