Skip to content

v0.0.4

Latest
Compare
Choose a tag to compare
@alandefreitas alandefreitas released this 06 Aug 01:31

πŸš€ Features

New features and additions

  • ✨ warn-as-error option. ca8bbbe
  • πŸ’« UndocumentedInfoSet stores InfoKind. 82eaeec
  • 🌟 Copydetails command copies unambiguous metadata. 43973cb
  • ✨ Ordered warnings. bc51965
  • πŸ’« extract-private-virtual option. 7e99c39
  • 🌟 extract-static option. c69f121
  • ✨ extract-local-classes option. da038da
  • πŸ’« warn-unnamed-param option. 37786fd
  • 🌟 Overloads javadoc. 0e8b79f
  • ✨ extract-empty-namespaces option. 99bf927
  • πŸ’« Javadoc ref parser supports function parameters. 2f73713
  • 🌟 Best match corpus lookup algorithm. c824c82
  • ✨ Overloads support return type. 52c934d
  • πŸ’« Support multiword refs. 7d65be3
  • 🌟 Refs match conversion operators. b76c8ba
  • ✨ Javadoc parser extracts ref qualifiers. 2e61695
  • πŸ’« Ref parameter match supports arbitrarily qualified names. 4a40e18
  • 🌟 TypeInfo identifies fundamental types. f5e3421
  • ✨ Refs match fundamental type variants. 7263e51
  • πŸ’« Ref parser supports template arguments. fcffff5
  • 🌟 Corpus lookup matches template arguments. 8fe596e
  • ✨ Merge function parameter names from multiple declarations. 3497b03
  • πŸ’« Javadoc mapping traits. 2e64221
  • 🌟 Preprocess related symbols. f069410
  • ✨ auto-relates option. bd9d684
  • πŸ’« extract-implicit-specializations option. b1d3f24
  • 🌟 Inherit base class overload sets. 4550326
  • ✨ Support implicit templates. (fix #868) 572a465
  • πŸ’« Templates include base classes. d59c28f
  • 🌟 auto-function-metadata option. 01c5e15
  • ✨ Records store friends as relationships. 5ee5c49
  • πŸ’« Friend table templates include qualified name. 76bc993
  • 🌟 Support @relates (#698). (closes #243) d448757 (thanks @betterqualityassuranceuser)
  • ✨ Print external commands. (fix #914) 5aa5691 (thanks @betterqualityassuranceuser, @gennaroprota)
  • πŸ’« extract-friends option. (fix #910) 3e9c1aa (thanks @anarthal)
  • 🌟 Multipage title uses breadcrumbs symbol format. 6a406a8

πŸ› Fixes

Bug fixes and error corrections

⚑️ Performance

Performance optimizations and enhancements

  • Store whether record is CXXMethodDecl. 30b5486
  • Explicit partials for symbols as text. 840537d

♻️ Refactor

Code refactoring and restructuring

  • GetPrimaryLocation depends on InfoKind. 113a57e
  • Option name is extract-private. 7c0c618
  • Option name is extract-private-bases. cee3fbe
  • Option name is extract-anonymous-namespaces. e5f0bd3
  • Source is constexpr. b2bafb8
  • IsDefinition and isDocumented are clang helpers. 887c332
  • Sorting operators last includes stream operators. 3fe5287
  • Modularize error header. b1676a5
  • Single InfoNodes.inc. 1548967
  • Remove unused MetadataFwd.hpp. 78a4394
  • Relocate Lib files. 8e2dbdd

πŸ“– Documentation

Documentation updates and improvements

🎨 Style

Code style and formatting changes

  • Source warnings are numbered. 0719850

πŸ“¦οΈ Build

Build system and configuration changes

  • Bootstrap script.4 521cc70
  • Bootstrap uses another path for mrdocs source when not already called from source directory. e32bb36
  • Bootstrap build options list valid types. e7e3ef5
  • Bootstrap prompts use colors. 75c28e4
  • Bootstrap removes redundant flags. c156a05
  • Bootstrap runs tests in parallel. c14f071
  • Unused cli option is not a warning. (build: unused cli option is not a warning) 994dd25
  • Llvm build dir is in llvm-project root. 52e4fe4
  • Bootstrap paths use cmake relative path shortcuts. 76611f9
  • Use new CMP0111 policy. 111926d
  • Duktape default package name is lowercase. a805e12
  • Remove dependency on fmt library, using std::format instead (#929).5 5e97515 (thanks @betterqualityassuranceuser)
  • Remove fmt from bootstrap.py. 6e12444
  • Bootstrap generates debug configurations. 502cfbd
  • Bootstrap dependency refresh run configurations. b546c26
  • Bootstrap documentation run configurations. 83525d3
  • Bootstrap remove bad test files run configuration. ee1b7da
  • Bootstrap website run configurations. 2cfdd19
  • Bootstrap MrDocs self-reference run configuration. ca4b04d
  • Bootstrap XML lint run configurations. b5f53bd
  • Bootstrap supports custom compilers. 0a751ac
  • Require libc++ and clang headers.6 6e5f80c
  • LLVM runtimes come from presets. ff62919
  • Bootstrap debug presets with release dependencies. 2b757fa
  • Installation workflow uses Ninja for all projects. 0d179e8
  • Installation workflow supports sanitizers. 3d8fa85
  • Installation workflow supports homebrew clang. 26cec9d
  • External include directories are relocatable. fc2aa2d
  • Bootstrap vscode run configurations. 21c206b
  • Visual Studio run configurations. d2f9c20 (thanks @betterqualityassuranceuser)
  • Run configurations include a refresh-all target. cae365e
  • Bootstrap supports custom python path. d97c381
  • Bootstrap supports default Visual Studio tool paths on Windows. 0ca523e
  • Windows presets include git_path. 51c82ba

πŸ§ͺ Tests

Test cases and testing-related changes

  • Independent copydetails tests. 352cd77
  • Modularize symbol tests. f5cf9d8
  • Friend tests are record tests. 9ccf054
  • Copydoc param types. da3305b

🚦 Continuous Integration

Changes related to continuous integration

  • Add newer compilers to the matrix.7 bf3f56b
  • Remove extra git install step. bc01ac0
  • Libxml2 build mode is static. 7fbe9f2
  • Enable permissive coverage consistency check. 5df9834
  • Disable check_data_consistancy when generating coverage reports.8 ebad2f7
  • Add .run to gitignore. c3c6759
  • Enable ubsan for clang and GCC. 3fd05bb
  • Add clang UBSan and ASan to apple-clang job.9 73fadd7
  • LLVM_ENABLE_RTTI is already set in presets. b997dec
  • Antora forces git fetch. 21a3e30

πŸ—οΈ Chores

Routine tasks, maintenance, and housekeeping

πŸ› οΈ Improvement

General improvements and enhancements

  • ASTVisitor handles source info independently from javadoc. 9decbdb
  • Corpus lookup returns Expected. fb7e59f
  • extract-private-bases default is false. f6686c0
  • Corpus lookup returns references. 040b99d
  • Namespace using directive is name.10 11df305
  • Empty enum template has no members table. 2de0c4f
  • Lazy decayed type comparison. e8c5b5a
  • Parse support header. 1b3227b
  • Javadoc visitor uses ref parser. 03d1917
  • ScopedTempDirectory stores error type. fd2709b
  • No unused template linebreaks. 37b782e
  • Reserved legible names are automatically generated. 82ac48e
  • Report symbol types. b055f05
  • Merge mutually exclusive field and variable symbol types. ac00578

πŸ’¬ Other

Other changes not covered by specific categories

  1. The header was included in String.hpp, but that file doesn't use any ofits functions. However, ParseJavadoc.cpp does, so we add the includethere. ↩

  2. Differently from their counterparts, the functions in and <ctype.h> have undefined behavior if their argument is notrepresentable as an unsigned char and is not equal to EOF. ↩

  3. Asciidoc implementations of <<>> for anchors fail when the anchor text contains ">>", even when properly escaped. ↩

  4. The bootstrap script provides a single source of truth for the installation steps described in install.adoc. ↩

  5. This bumps the standard version to C++23, so that the formattableconcept becomes available.This removes the color support from diff.cpp, since that is notavailable in std::format. ↩

  6. Make CMakeLists.txt enforce the requirement for libc++ and the clangheaders.Otherwise, it's possible for configuration to succeed but producea non-functional mrdocs, where the tests fail in non-obvious ways. ↩

  7. This also:* Makes sure the ubuntu clang builds have libstdc++-14 installed, which is our minumum.* Bumps cpp-actions to v1.8.10* Use the newest Xcode for MacOS. ↩

  8. This works around a post-merge-only CI failure. ↩

  9. Also fixes sanitizer variable usage on llvm-basenameThe setting for LLVM_ENABLE_RTTI was also redundant, as it is always setby the cmake profiles. ↩

  10. This allows using directives to dependencies. ↩