1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/usr/bin/env bash
set -e
rootdir=$(cd "$(dirname "$0")/.." && pwd)
function run_emacs () {
local ver
ver=$(echo "$1" | tr '.' '-')
shift
nix run --accept-flake-config "github:purcell/nix-emacs-ci#emacs-$ver" -- "$@"
}
symbol_dump_dir="$rootdir/.symbol-dumps"
mkdir -p "$symbol_dump_dir"
for v in 23.4 24.1 24.2 24.3 24.4 24.5 25.1 25.2 25.3 26.1 26.2 26.3 27.1 27.2 28.1 28.2 29.1 29.2 29.3 29.4 30.1; do
echo "Dumping $v"
run_emacs "$v" -Q --script "$rootdir/tools/sym-dump.el" > "$symbol_dump_dir/$v";
done
echo "Calculating changes between versions"
diff_expr=$(cat - <<EOF
(progn
(setq default-directory "$symbol_dump_dir")
(setq pp-default-function 'pp-29)
(pp
\`(((24 1) . ,(sym-diff-dumps "23.4" "24.1"))
((24 2) . ,(sym-diff-dumps "24.1" "24.2"))
((24 3) . ,(sym-diff-dumps "24.2" "24.3"))
((24 4) . ,(sym-diff-dumps "24.3" "24.4"))
((24 5) . ,(sym-diff-dumps "24.4" "24.5"))
((25 1) . ,(sym-diff-dumps "24.5" "25.1"))
((25 2) . ,(sym-diff-dumps "25.1" "25.2"))
((25 3) . ,(sym-diff-dumps "25.2" "25.3"))
((26 1) . ,(sym-diff-dumps "25.3" "26.1"))
((26 2) . ,(sym-diff-dumps "26.1" "26.2"))
((26 3) . ,(sym-diff-dumps "26.2" "26.3"))
((27 1) . ,(sym-diff-dumps "26.3" "27.1"))
((27 2) . ,(sym-diff-dumps "27.1" "27.2"))
((28 1) . ,(sym-diff-dumps "27.2" "28.1"))
((28 2) . ,(sym-diff-dumps "28.1" "28.2"))
((29 1) . ,(sym-diff-dumps "28.2" "29.1"))
((29 2) . ,(sym-diff-dumps "29.1" "29.2"))
((29 3) . ,(sym-diff-dumps "29.2" "29.3"))
((29 4) . ,(sym-diff-dumps "29.3" "29.4"))
((30 1) . ,(sym-diff-dumps "29.4" "30.1"))
)))
EOF
)
mkdir -p "$rootdir/data"
run_emacs 30.1 -Q -batch --load "$rootdir/tools/sym-diff.el" --eval "$diff_expr" > "$rootdir/data/stdlib-changes"
cat <<EOF >> "$rootdir/data/stdlib-changes"
;; Local Variables:
;; no-byte-compile: t
;; no-update-autoloads: t
;; End:
EOF
|