Organisationsahrefsatd

atd

https://github.com/ahrefs/atd
Branches (13)
martin/atdml-readme
Edit readme
67756b
martin/faster-ci
Innocuous change to test opam caching
4ad40d
martin/field_prefix
[doc] Update atdml-reference: create_, private aliases, field_prefix - Rename all make_ → create_ (make_foo → create_foo, val make → val create) - Add "Primitive type aliases" subsection: documents private type in .mli, create_* constructor, :> coercion, zero runtime overhead - Extend "Reserved name handling" to mention record fields and variants - Add "Field field_prefix" entry under Section ocaml: documents the annotation, the unprefixed-label / prefixed-field split, and the keyword-escaping semantics with the mod+ule/mod+if worked example Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4c742d
martin/fix-atdml-opam
Fix minimum atd version in dune-project
25206f
martin/fix-soft-keywords
Fix parsing of soft keywords in ATD files ('from', 'import', 'as') Closes #463
a4219d
martin/from-import
Update documentation and changelog for 'from ... import' syntax - CHANGES.md: replace the old import entry with the new from...import entry - atd-language-reference.rst: update keywords list, grammar, and the Import declarations section to describe the new syntax - atdml-reference.rst: rewrite Import declarations section - atdts.rst: rewrite Import declarations section - atdpy.rst: rewrite Import annotations section including auto-escaping of Python keywords in alias names Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
15dfbf
martin/modules
Update example
08e5c3
martin/ocaml-private
atdml: Error if both <ocaml private> and <ocaml public> are on the same type Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ddc8f4
martin/private-type-aliases
[atdml] Drop to_primitive accessors; coerce with :> instead Remove the generated 'score_to_float' / 'id_to_string' functions and their submodule counterparts ('val to_float', 'val to_string'). Coercion back to the primitive type is trivially done with the ':>' operator (e.g. '(x :> string)') and doesn't need a generated helper. Keep 'create_score' / 'val create' as the constructor. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
e9e742
martin/rename-files
Rename files for better clarity
44641d
martin/report-unused
atdcat: read from stdin when no input file is given When called without file arguments, atdcat now reads from stdin, like cat. Both stdin and file paths are converted to a Lexing.lexbuf and then fed to the single Atd.Util.read_lexbuf call. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
976dd8
martin/support-matrix
Remove duplicate files
eb36e8
martin/upgrade-ocaml
with-doc dependency odoc depends on ocaml < 5.4, trying 5.3
7b4a4d