Astrodynamics coordinate frame transforms
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Migrate from vendored crowbar to opam-pinned alcobar

- Remove vendored crowbar/ directory
- Replace all Crowbar references with Alcobar across 176 .ml files
- Update all fuzz dune files: crowbar → alcobar in libraries
- Remove 77 gen_corpus.ml files (alcobar handles corpus internally)
- Update dune-project files: crowbar → alcobar in dependencies
- Update merlint rules (e705, e726): Crowbar → Alcobar in checks,
docs, and examples
- Update merlint generated docs (index.html)

428 files changed, ~1200 lines removed net.

+5 -45
+2 -8
fuzz/dune
··· 1 1 (executable 2 2 (name fuzz) 3 3 (modules fuzz fuzz_coordinate) 4 - (libraries coordinate crowbar)) 5 - 6 - (executable 7 - (name gen_corpus) 8 - (modules gen_corpus) 9 - (libraries fmt unix)) 4 + (libraries coordinate alcobar)) 10 5 11 6 (rule 12 7 (alias runtest) ··· 21 16 (= %{profile} afl)) 22 17 (deps 23 18 (source_tree corpus) 24 - fuzz.exe 25 - gen_corpus.exe) 19 + fuzz.exe) 26 20 (action 27 21 (echo "AFL fuzzer built: %{exe:fuzz.exe}\n")))
+1 -1
fuzz/fuzz.ml
··· 1 - let () = Crowbar.run "coordinate" [ Fuzz_coordinate.suite ] 1 + let () = Alcobar.run "coordinate" [ Fuzz_coordinate.suite ]
+1 -1
fuzz/fuzz_coordinate.ml
··· 5 5 6 6 (** Fuzz tests for coordinate transforms. *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 10 10 let test_teme_ecef_roundtrip buf = 11 11 let len = Bytes.length (Bytes.of_string buf) in
+1 -1
fuzz/fuzz_coordinate.mli
··· 2 2 3 3 Tests crash safety and round-trip consistency on arbitrary inputs. *) 4 4 5 - val suite : string * Crowbar.test_case list 5 + val suite : string * Alcobar.test_case list 6 6 (** [suite] is the coordinate fuzz test suite. *)
-34
fuzz/gen_corpus.ml
··· 1 - (*--------------------------------------------------------------------------- 2 - Copyright (c) 2025 Thomas Gazagnaire. All rights reserved. 3 - SPDX-License-Identifier: ISC 4 - ---------------------------------------------------------------------------*) 5 - 6 - (** Generate seed corpus for AFL fuzzing of coordinate transforms. *) 7 - 8 - let write_floats oc floats = 9 - let buf = Bytes.create (List.length floats * 8) in 10 - List.iteri 11 - (fun i f -> Bytes.set_int64_le buf (i * 8) (Int64.bits_of_float f)) 12 - floats; 13 - output_bytes oc buf 14 - 15 - let write_seed dir name floats = 16 - let oc = open_out_bin (Filename.concat dir name) in 17 - write_floats oc floats; 18 - close_out oc 19 - 20 - let () = 21 - let dir = "corpus" in 22 - (try Unix.mkdir dir 0o755 with Unix.Unix_error (Unix.EEXIST, _, _) -> ()); 23 - (* TEME vectors + GMST *) 24 - write_seed dir "leo" [ 6778.; 0.; 0.; 0. ]; 25 - write_seed dir "geo" [ 42164.; 0.; 0.; 1.5 ]; 26 - write_seed dir "polar" [ 0.; 0.; 7178.; 0.8 ]; 27 - (* Geodetic points *) 28 - write_seed dir "equator" [ 0.; 0.; 0. ]; 29 - write_seed dir "paris" [ 48.8566; 2.3522; 0.035 ]; 30 - write_seed dir "pole" [ 90.; 0.; 0. ]; 31 - (* GMST times *) 32 - write_seed dir "j2000" [ 946728000. ]; 33 - write_seed dir "now" [ 1735732800. ]; 34 - Fmt.pr "Generated 8 seed files in %s/@." dir