Created
September 21, 2023 12:21
-
-
Save Octachron/63bcff0d9c7511183c965d15d1aff092 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Url = struct let v2 = "v2" end | |
let fwd_v2 target = (target, Url.v2 ^ target) | |
let pp_ocaml_version ppf (mj, mn) = | |
if mj >= 5 then Format.fprintf ppf "%d.%d" mj mn | |
else Format.fprintf ppf "%d.%02d" mj mn | |
let notes_redirections v = | |
let fwd_v2_notes x = | |
fwd_v2 @@ Format.asprintf "/releases/%a/notes/%s" pp_ocaml_version v x | |
in | |
if v >= (4, 3) then | |
List.map fwd_v2_notes | |
[ | |
"Changes"; "INSTALL.adoc"; "LICENSE"; "README.adoc"; "README.win32.adoc"; | |
] | |
else | |
List.map fwd_v2_notes | |
[ "Changes"; "INSTALL"; "LICENSE"; "README"; "README.win32" ] | |
let manual_redirections v = | |
let fwd_v2_manual x = | |
fwd_v2 | |
@@ Format.asprintf "/releases/%a/ocaml-%a-refman%s" pp_ocaml_version v | |
pp_ocaml_version v x | |
in | |
List.map fwd_v2_manual | |
((if v >= (4, 8) then [] else [ ".dvi.gz"; ".ps.gz" ]) | |
@ (if v > (3, 12) then [] else [ ".html.tar.gz"; ".html.zip" ]) | |
@ [ "-html.tar.gz"; "-html.zip"; ".html"; ".info.tar.gz"; ".pdf"; ".txt" ]) | |
let v2_manual_and_notes v = notes_redirections v @ manual_redirections v | |
(* For assets previously hosted on V2, we redirect the requests to | |
v2.ocaml.org. *) | |
let v2_assets = | |
List.concat | |
[ | |
[ | |
fwd_v2 "/meetings/ocaml/2013/proposals/core-bench.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/ctypes.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/formats-as-gadts.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/frenetic.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/goji.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/gpgpu.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/injectivity.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/merlin.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/ocamlot.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/optimizations.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/platform.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/profiling-memory.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/runtime-types.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/weather-related-data.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/wxocaml.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/bourgoin.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/bozman.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/canou.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/carty.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/chambart.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/garrigue.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/guha.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/henry.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/james.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/lefessant.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/leroy.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/madhavapeddy.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/padioleau.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/sheets.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/vaugon.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/white.pdf"; | |
]; | |
v2_manual_and_notes (3, 12); | |
v2_manual_and_notes (4, 0); | |
v2_manual_and_notes (4, 1); | |
v2_manual_and_notes (4, 2); | |
[ | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-0.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-0.zip"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-1.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-1.zip"; | |
]; | |
v2_manual_and_notes (4, 3); | |
v2_manual_and_notes (4, 4); | |
v2_manual_and_notes (4, 5); | |
[ | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+beta1.txt"; | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+beta2.txt"; | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+rc1.txt"; | |
]; | |
v2_manual_and_notes (4, 6); | |
v2_manual_and_notes (4, 7); | |
v2_manual_and_notes (4, 8); | |
v2_manual_and_notes (4, 9); | |
v2_manual_and_notes (4, 10); | |
v2_manual_and_notes (4, 11); | |
v2_manual_and_notes (4, 12); | |
v2_manual_and_notes (4, 13); | |
v2_manual_and_notes (4, 14); | |
v2_manual_and_notes (5, 0); | |
] | |
let before = | |
[ | |
fwd_v2 "/meetings/ocaml/2013/proposals/core-bench.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/ctypes.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/formats-as-gadts.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/frenetic.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/goji.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/gpgpu.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/injectivity.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/merlin.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/ocamlot.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/optimizations.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/platform.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/profiling-memory.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/runtime-types.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/weather-related-data.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/proposals/wxocaml.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/bourgoin.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/bozman.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/canou.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/carty.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/chambart.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/garrigue.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/guha.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/henry.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/james.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/lefessant.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/leroy.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/madhavapeddy.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/padioleau.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/sheets.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/vaugon.pdf"; | |
fwd_v2 "/meetings/ocaml/2013/slides/white.pdf"; | |
fwd_v2 "/releases/3.12/notes/Changes"; | |
fwd_v2 "/releases/3.12/notes/INSTALL"; | |
fwd_v2 "/releases/3.12/notes/LICENSE"; | |
fwd_v2 "/releases/3.12/notes/README"; | |
fwd_v2 "/releases/3.12/notes/README.win32"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman-html.tar.gz"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman-html.zip"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.dvi.gz"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.html"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.html.tar.gz"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.html.zip"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.info.tar.gz"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.pdf"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.ps.gz"; | |
fwd_v2 "/releases/3.12/ocaml-3.12-refman.txt"; | |
fwd_v2 "/releases/4.00/notes/Changes"; | |
fwd_v2 "/releases/4.00/notes/INSTALL"; | |
fwd_v2 "/releases/4.00/notes/LICENSE"; | |
fwd_v2 "/releases/4.00/notes/README"; | |
fwd_v2 "/releases/4.00/notes/README.win32"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman-html.zip"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.dvi.gz"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.html"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.pdf"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.ps.gz"; | |
fwd_v2 "/releases/4.00/ocaml-4.00-refman.txt"; | |
fwd_v2 "/releases/4.01/notes/Changes"; | |
fwd_v2 "/releases/4.01/notes/INSTALL"; | |
fwd_v2 "/releases/4.01/notes/LICENSE"; | |
fwd_v2 "/releases/4.01/notes/README"; | |
fwd_v2 "/releases/4.01/notes/README.win32"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman-html.zip"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.dvi.gz"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.html"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.pdf"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.ps.gz"; | |
fwd_v2 "/releases/4.01/ocaml-4.01-refman.txt"; | |
fwd_v2 "/releases/4.02/notes/Changes"; | |
fwd_v2 "/releases/4.02/notes/INSTALL"; | |
fwd_v2 "/releases/4.02/notes/LICENSE"; | |
fwd_v2 "/releases/4.02/notes/README"; | |
fwd_v2 "/releases/4.02/notes/README.win32"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-0.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-0.zip"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-1.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html-1.zip"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman-html.zip"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.dvi.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.html"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.pdf"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.ps.gz"; | |
fwd_v2 "/releases/4.02/ocaml-4.02-refman.txt"; | |
fwd_v2 "/releases/4.03/notes/Changes"; | |
fwd_v2 "/releases/4.03/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.03/notes/LICENSE"; | |
fwd_v2 "/releases/4.03/notes/README.adoc"; | |
fwd_v2 "/releases/4.03/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman-html.zip"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.dvi.gz"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.html"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.pdf"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.ps.gz"; | |
fwd_v2 "/releases/4.03/ocaml-4.03-refman.txt"; | |
fwd_v2 "/releases/4.04/notes/Changes"; | |
fwd_v2 "/releases/4.04/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.04/notes/LICENSE"; | |
fwd_v2 "/releases/4.04/notes/README.adoc"; | |
fwd_v2 "/releases/4.04/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman-html.zip"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.dvi.gz"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.html"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.pdf"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.ps.gz"; | |
fwd_v2 "/releases/4.04/ocaml-4.04-refman.txt"; | |
fwd_v2 "/releases/4.05/notes/Changes"; | |
fwd_v2 "/releases/4.05/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.05/notes/LICENSE"; | |
fwd_v2 "/releases/4.05/notes/README.adoc"; | |
fwd_v2 "/releases/4.05/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman-html.zip"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.dvi.gz"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.html"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.pdf"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.ps.gz"; | |
fwd_v2 "/releases/4.05/ocaml-4.05-refman.txt"; | |
fwd_v2 "/releases/4.06/notes/Changes"; | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+beta1.txt"; | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+beta2.txt"; | |
fwd_v2 "/releases/4.06/notes/Changes.4.06.0+rc1.txt"; | |
fwd_v2 "/releases/4.06/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.06/notes/LICENSE"; | |
fwd_v2 "/releases/4.06/notes/README.adoc"; | |
fwd_v2 "/releases/4.06/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman-html.zip"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.dvi.gz"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.html"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.pdf"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.ps.gz"; | |
fwd_v2 "/releases/4.06/ocaml-4.06-refman.txt"; | |
fwd_v2 "/releases/4.07/notes/Changes"; | |
fwd_v2 "/releases/4.07/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.07/notes/LICENSE"; | |
fwd_v2 "/releases/4.07/notes/README.adoc"; | |
fwd_v2 "/releases/4.07/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman-html.zip"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.dvi.gz"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.html"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.pdf"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.ps.gz"; | |
fwd_v2 "/releases/4.07/ocaml-4.07-refman.txt"; | |
fwd_v2 "/releases/4.08/notes/Changes"; | |
fwd_v2 "/releases/4.08/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.08/notes/LICENSE"; | |
fwd_v2 "/releases/4.08/notes/README.adoc"; | |
fwd_v2 "/releases/4.08/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman-html.zip"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman.html"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman.pdf"; | |
fwd_v2 "/releases/4.08/ocaml-4.08-refman.txt"; | |
fwd_v2 "/releases/4.09/notes/Changes"; | |
fwd_v2 "/releases/4.09/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.09/notes/LICENSE"; | |
fwd_v2 "/releases/4.09/notes/README.adoc"; | |
fwd_v2 "/releases/4.09/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman-html.zip"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman.html"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman.pdf"; | |
fwd_v2 "/releases/4.09/ocaml-4.09-refman.txt"; | |
fwd_v2 "/releases/4.10/notes/Changes"; | |
fwd_v2 "/releases/4.10/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.10/notes/LICENSE"; | |
fwd_v2 "/releases/4.10/notes/README.adoc"; | |
fwd_v2 "/releases/4.10/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman-html.zip"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman.html"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman.pdf"; | |
fwd_v2 "/releases/4.10/ocaml-4.10-refman.txt"; | |
fwd_v2 "/releases/4.11/notes/Changes"; | |
fwd_v2 "/releases/4.11/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.11/notes/LICENSE"; | |
fwd_v2 "/releases/4.11/notes/README.adoc"; | |
fwd_v2 "/releases/4.11/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman-html.zip"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman.html"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman.pdf"; | |
fwd_v2 "/releases/4.11/ocaml-4.11-refman.txt"; | |
fwd_v2 "/releases/4.12/notes/Changes"; | |
fwd_v2 "/releases/4.12/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.12/notes/LICENSE"; | |
fwd_v2 "/releases/4.12/notes/README.adoc"; | |
fwd_v2 "/releases/4.12/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman-html.zip"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman.html"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman.pdf"; | |
fwd_v2 "/releases/4.12/ocaml-4.12-refman.txt"; | |
fwd_v2 "/releases/4.13/notes/Changes"; | |
fwd_v2 "/releases/4.13/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.13/notes/LICENSE"; | |
fwd_v2 "/releases/4.13/notes/README.adoc"; | |
fwd_v2 "/releases/4.13/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman-html.zip"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman.html"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman.pdf"; | |
fwd_v2 "/releases/4.13/ocaml-4.13-refman.txt"; | |
fwd_v2 "/releases/4.14/notes/Changes"; | |
fwd_v2 "/releases/4.14/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/4.14/notes/LICENSE"; | |
fwd_v2 "/releases/4.14/notes/README.adoc"; | |
fwd_v2 "/releases/4.14/notes/README.win32.adoc"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman-html.tar.gz"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman-html.zip"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman.html"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman.info.tar.gz"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman.pdf"; | |
fwd_v2 "/releases/4.14/ocaml-4.14-refman.txt"; | |
fwd_v2 "/releases/5.0/notes/Changes"; | |
fwd_v2 "/releases/5.0/notes/INSTALL.adoc"; | |
fwd_v2 "/releases/5.0/notes/LICENSE"; | |
fwd_v2 "/releases/5.0/notes/README.adoc"; | |
fwd_v2 "/releases/5.0/notes/README.win32.adoc"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman-html.tar.gz"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman-html.zip"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman.html"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman.info.tar.gz"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman.pdf"; | |
fwd_v2 "/releases/5.0/ocaml-5.0-refman.txt"; | |
] | |
let _ = | |
let before = List.sort compare before in | |
let now = List.sort compare v2_assets in | |
List.iter2 (fun (a,b as left) (x,y as right) -> | |
if left = right then () | |
else (Format.eprintf "@[<v>%s@,%s@]@." b y; exit 2) | |
) | |
before now |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment