Pure OCaml Yaml 1.2 reader and writer using Bytesrw
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.

+23 -46
+2 -8
fuzz/dune
··· 1 1 (executable 2 2 (name fuzz) 3 - (libraries crowbar yamlrw fuzz_helpers) 3 + (libraries alcobar yamlrw fuzz_helpers) 4 4 (modules 5 5 fuzz 6 6 fuzz_encoding ··· 10 10 fuzz_yamlrw 11 11 fuzz_emitter)) 12 12 13 - (executable 14 - (name gen_corpus) 15 - (modules gen_corpus) 16 - (libraries fmt unix)) 17 - 18 13 (rule 19 14 (alias runtest) 20 15 (enabled_if ··· 29 24 (= %{profile} afl)) 30 25 (deps 31 26 (source_tree corpus) 32 - fuzz.exe 33 - gen_corpus.exe) 27 + fuzz.exe) 34 28 (action 35 29 (echo "AFL fuzzer built: %{exe:fuzz.exe}\n")))
+1 -1
fuzz/fuzz.ml
··· 1 1 let () = 2 - Crowbar.run "yamlrw" 2 + Alcobar.run "yamlrw" 3 3 [ 4 4 Fuzz_chomping.suite; 5 5 Fuzz_emitter.suite;
+1 -1
fuzz/fuzz_chomping.ml
··· 5 5 6 6 (** Fuzz tests for Chomping module *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 10 10 (** Test of_char/to_char roundtrip for valid chars *) 11 11 let test_roundtrip n =
+1 -1
fuzz/fuzz_chomping.mli
··· 5 5 6 6 (** Fuzz tests for YAML block scalar chomping. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for chomping behavior. *)
+1 -1
fuzz/fuzz_emitter.ml
··· 5 5 6 6 (** Fuzz tests for the Emitter module - test random event sequences *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 open Fuzz_helpers 10 10 11 11 (** Event type for fuzzing *)
+1 -1
fuzz/fuzz_emitter.mli
··· 5 5 6 6 (** Fuzz tests for the YAML emitter. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for emitter behavior. *)
+1 -1
fuzz/fuzz_encoding.ml
··· 5 5 6 6 (** Fuzz tests for Encoding module *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 10 10 (** Test that encoding detection never crashes on arbitrary input *) 11 11 let test_detect_crash buf =
+1 -1
fuzz/fuzz_encoding.mli
··· 5 5 6 6 (** Fuzz tests for YAML encoding and decoding. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for encoding behavior. *)
+1 -1
fuzz/fuzz_tag.ml
··· 5 5 6 6 (** Fuzz tests for Tag module *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 open Fuzz_helpers 10 10 11 11 (** Test that of_string never crashes on arbitrary input *)
+1 -1
fuzz/fuzz_tag.mli
··· 5 5 6 6 (** Fuzz tests for the YAML Tag module. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for Tag behavior. *)
+1 -1
fuzz/fuzz_value.ml
··· 5 5 6 6 (** Fuzz tests for Value module *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 open Fuzz_helpers 10 10 11 11 (** Generator for Value.t *)
+1 -1
fuzz/fuzz_value.mli
··· 5 5 6 6 (** Fuzz tests for the YAML Value module. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for Value behavior. *)
+1 -1
fuzz/fuzz_yamlrw.ml
··· 5 5 6 6 (** Fuzz tests for the main Yamlrw parsing and serialization *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 open Fuzz_helpers 10 10 11 11 (** Test that of_string never crashes on arbitrary input *)
+1 -1
fuzz/fuzz_yamlrw.mli
··· 5 5 6 6 (** Fuzz tests for the main Yamlrw parse/emit pipeline. *) 7 7 8 - val suite : string * Crowbar.test_case list 8 + val suite : string * Alcobar.test_case list 9 9 (** [suite] is the fuzz test suite for the Yamlrw parse/emit pipeline. *)
-17
fuzz/gen_corpus.ml
··· 1 - (** Generate seed corpus for fuzz testing. *) 2 - 3 - let () = 4 - let dir = "corpus" in 5 - (try Unix.mkdir dir 0o755 with Unix.Unix_error (Unix.EEXIST, _, _) -> ()); 6 - let write name data = 7 - let oc = open_out_bin (Filename.concat dir name) in 8 - output_string oc data; 9 - close_out oc 10 - in 11 - write "seed_000" ""; 12 - write "seed_001" "\x00"; 13 - write "seed_002" "\xff"; 14 - write "seed_003" (String.make 16 '\x00'); 15 - write "seed_004" (String.make 16 '\xff'); 16 - write "seed_005" (String.init 256 Char.chr); 17 - Fmt.pr "gen_corpus: wrote 6 seed files\n"
+1 -1
fuzz/helpers/dune
··· 1 1 (library 2 2 (name fuzz_helpers) 3 - (libraries yamlrw crowbar)) 3 + (libraries yamlrw alcobar))
+1 -1
fuzz/helpers/fuzz_helpers.ml
··· 5 5 6 6 (** Common utilities for fuzz tests. *) 7 7 8 - open Crowbar 8 + open Alcobar 9 9 10 10 let to_bytes buf = 11 11 let len = String.length buf in
+6 -6
fuzz/helpers/fuzz_helpers.mli
··· 3 3 val to_bytes : string -> bytes 4 4 (** Convert a string to bytes. *) 5 5 6 - val printable_char : char Crowbar.gen 6 + val printable_char : char Alcobar.gen 7 7 (** Generator for printable ASCII characters. *) 8 8 9 - val printable_string : string Crowbar.gen 9 + val printable_string : string Alcobar.gen 10 10 (** Generator for printable ASCII strings. *) 11 11 12 - val yaml_safe_char : char Crowbar.gen 12 + val yaml_safe_char : char Alcobar.gen 13 13 (** Generator for YAML-safe characters. *) 14 14 15 - val yaml_safe_string : string Crowbar.gen 15 + val yaml_safe_string : string Alcobar.gen 16 16 (** Generator for YAML-safe strings. *) 17 17 18 - val ident_char : char Crowbar.gen 18 + val ident_char : char Alcobar.gen 19 19 (** Generator for identifier characters. *) 20 20 21 - val ident_string : string Crowbar.gen 21 + val ident_string : string Alcobar.gen 22 22 (** Generator for identifier-like strings. *) 23 23 24 24 val catch_invalid_arg : (unit -> unit) -> unit