Skip to content

Releases: alandefreitas/mrdocs

master

02 Jan 14:40
Compare
Choose a tag to compare

🚀 Features

New features and additions

🐛 Fixes

Bug fixes and error corrections

  • undefined:
    • Infinite recursion when identifying SFINAE types. () 5750b79
    • Missing template parameters in asciidoc templates. () a962db0
    • Lazy object construct when atomic shared pointers are unsupported. () efe0620
    • Handlebars unit tests are unrelated to is_multipage. () 9ef4c38
    • Support SFINAE detection for compound types. () cc08383
    • Deduplicate inherited members. () 91c6871
    • HTML anchors are unescaped. () 9312ffb
    • Overload set overview is unescaped. () 826295c
    • Multipage section levels. () 36a9eb8
    • Uniform signature code blocks. () 833dee2
    • No relative asciidoc links.3 () 8693504
    • Adoc multipage wrapper includes relfileprefix. () bcd8372
    • Tables have no enumerator anchors. () 0e36580
    • Use arguments to \par if available. () 03d1a75
  • Path: Scoped temp directories use llvm's remove_directories. () 691ce1d
  • Handlebars:
    • Helper calls report errors. () 29f4d4f
    • "or" helper returns first truthy value. () f9e7af4
  • HandlebarsGenerator:
  • Generator: Propagate createDirectory error. () ece7e7d

⚡️ Performance

Performance optimizations and enhancements

  • OverlayObjectImpl: Fold empty overlays. () 184448a
  • Builder:
    • Render templates directly to ostream. () 3d38f59
    • Load template layouts at construction. () 9543810

♻️ Refactor

Code refactoring and restructuring

  • undefined:
    • Drop bitcode support. () e6205d5
    • Options are quoted in messages. () eaff684
    • Split error message from source location in reports. (fix cppalliance#672) 446a41d
    • Version command includes build. () f600633
    • Compilation database ensures target. () 9871794
    • Compilation database ensures std. (fix cppalliance#694) b5a36db
    • Remove unused mergeInfos. () c072007
    • Remove BitField/BitFlag. () c56dcae
    • Temp directories use output path. () 1aca304
    • Info nodes configuration file. () 9daf71f
    • Lazy object mapping traits. (fix cppalliance#696) 9d30ea1
    • Public settings initialize relativeto.4 () 59b3012
    • Unify dom lazy array classes.5 () e919a61
    • Dom::Value tag_invoke. () 2663199
    • Dom::LazyObject tag_invoke. () de7f589
    • Custom ValueFrom for Info types. () 4393f22
    • Synchronize HTML templates. () 0823b48
    • Simplify handlebars generators.6 (Generator: main reason the HTML Generator is always behind the Adoc Generator: simple features were not duplicated in the HTML generator. This even justified cppalliance#656, where we would temporarily remove the HTML generator., fix cppalliance#656) e6ee971
    • Deduction guides for CTAD warnings. () efccb11
    • Remove unused alias. () df43d87
    • Generator reports time. () e24492d
    • Single page references are fragments. () 1d253d7
    • No intermediary buffers for wrapper template. () 5bc9f53
    • Time report supports minutes. () 5cd44bd
    • Modular ASTVisitor. () dee9fdf
  • Platform: Support arm64. () d92de4e
  • generate-config-info: Normalization via visitor. () a1fb8ec
  • TestArgs: Reuse public config args. () 3a22947
  • test: Remove unused lambda capture. () 70bff87
  • LazyObject:
    • Header macros belong in LIB. () 3ebf66d
    • Initialize result. () 17a7212
  • DomCorpus: Inline operators. () 8d2948a
  • Template: Remove unused parameter. () 6639b8d
  • Generator: Build member function. () eb464a3
  • HandlebarsGenerator:
    • ToString customization is virtual function. () 7d7f949
    • Simplify build function.7 () 5209438
    • Remove unused options. () 5f9e5a1
    • Do not require symbol as hash parameter. () fc43804
    • Single page HTML includes reference title. () 75fdb49
  • Handlebars: Distinguish ostream types. () 1efcc2e
  • Builder: Is_multipage does not require helper. () 713b573
  • Error: Error propagation uses Expected. () 0b4d669
  • Radix: No redundant static. () fb7d6b9

📖 Documentation

Documentation updates and improvements

  • usage:
    • Cmake example uses TMP_CPP_FILE.8 () d8b7fcf
    • Include MrDocs workflow. () 0e08458
  • undefined:
    • Website build scripts set cxx_std_23. () a8707b0
    • Libc++ compiler requirements. () 9648483
    • Releases extension allows CI authentication and retries. () 55214d7
    • Generator DOM reference. () f551db3
    • Generator layout entry points. () e052cb7
    • Website panels use embedded HTML. () 12ceade
  • LazyObject: Update documentation. () c521719
  • Scope: Include lookups in documentation. () b078bea
  • generators:
  • contribute: Workflow is partial. () 555e2c4
  • demos: Enable HTML demos. () d38d3e1

🎨 Style

Code style and formatting changes

  • Scope: Standardize indentation. () 0b9f944

📦️ Build

Build system and configuration changes

  • undefined: Generate yaml schema.9 () 5bc071e

🧪 Tests

Test cases and testing-related changes

  • undefined:
  • TestRunner: Check Expected values. () 46a3152

🚦 Continuous Integration

Changes related to continuous integration

🏗️ Chores

Routine tasks, maintenance, and housekeeping

💬 Other

Other changes not covered by specific categories

  • null:
    • Unify traverse functions.[^11] () 938b673
    • InfoTypeFor trait.[^12] () f225a4f
    • Support file inputs.[^13] () 75b1bc5
    • Map translation units to global namespaces.[^14] () 266f49c
    • Info parent is not always namespace.[^15] () 7d8de21
    • Corpus qualified name returns void.[^16] () f92f1f2
    • Referenced-declarations default is never.[^17] () 9edf3ab
    • Corpus ordered traverse.[^18] () ed78539
    • Info ExtractionMode.[^19] () f0adca7
    • Info Attribute lists.[^20] () d92629d
    • Template pre/post conditions are unordered lists.[^21] () 0e3c9a8
    • Template param direction.[^22] () 963a387
    • Requires clauses on their own line.[^23] () c6cc73c
    • Declarators render unnamed symbols.[^24] () 9ddac83
    • Friends use type declarator.[^25] () 96c42d5
    • Tranches include namespace aliases.[^26] () 9662f27
    • Support glob patterns.[^27] () 1b67a84
    • Do not omit frame pointer in tests.[^28] () 723f34f
    • Support doxygen-like filters.[^29] () 6841950
  1. Like the asciidoc option, this option can be used to generate pages without the surrounding tags to include them in other documentation pages, like the mrdocs website.

  2. Some applications might need custom escape functions either because the output format is not HTML or because the application requires more strict HTML escaping.

  3. See https://gitlab.com/antora/antora/-/issues/428.

  4. This fixes a warning when using initialization with designators.

  5. The DomCorpus uses multiple classes that represented lazy arrays. This commit simplifies the dom by unifying all of these array implementations.

  6. Apart from the DocVisitor, the Adoc and HTML generators are nearly 100% duplicated code.This commit unifies the standard code to remove duplicated code, simplify maintenance, and ensure that both generators always have access to the same features.In passing, many missing features in the HTML generator are now available.

  7. Unify code duplicated between build and buildOne.

  8. The Cmake example for header-only libraries compiles by replacing OUTPUT_FILE with TMP_CPP_FILE.

  9. Generate yaml schema as part of the custom target.

  10. The previously hard-coded paths only work on ubuntu. On windows and macOS, these paths don'...

Read more

develop

02 Jan 14:19
Compare
Choose a tag to compare

🚀 Features

New features and additions

🐛 Fixes

Bug fixes and error corrections

  • Logical operator precedence. eb431cf
  • Unique_lock is not CTAD. 541d80c
  • Preemptively identify detail parents. 54f2118
  • Inherit-base only applies to regular symbols. 65cdf3e
  • Inherit-base skips special functions. b29ba25
  • Info merging uses derived classes. 1e8d691
  • Group overloads per access level. 287e588
  • Specialization title links wrap correct components. 99d0dd2
  • Asciidoc anchors cannot start with numbers. b8dacc3
  • Handle constructor from reference to array. 31f7d46
  • Use after free returning string_view bound to local string. be24cfe
  • Warning message about missing return description. b7917af
  • Move an include of to where it belongs.1 1a5b15a
  • Pass unsigned chars to the cctype functions.2 becda0c
  • Destructors cannot have overload sets. 00b56e9
  • Replace uses of deprecated has_formatter. 26d4c50
  • Repopulating TArg doesn't push back. 474032d
  • Populating RecordInfo identifies duplicate friend IDs. (fix cppalliance#925) e4a4a15
  • Record friends exclude implementation defined symbols. (fix cppalliance#924) 5372fdf
  • Explicit object member functions have no qualifiers. 502bf32
  • Update symbol name log level. 9cbaca5
  • CMake uses adjusted output dir. e2474cd
  • Detect base member qualified overloads. d6b2970
  • Redundant Decls use least specific extraction mode. 1cbeee6
  • SpecializationInfo is unused. e0a9479
  • Adoc anchors use link macro.3 747e6a7
  • No breadcrumbs in signature declarators. (fix cppalliance#827) 3606a89

⚡️ Performance

Performance optimizations and enhancements

  • Cached symbol lookup. af93d8d
  • Preprocess javadoc metadata. 1ab842d
  • 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

  • Option key conventions. f843cc2
  • Remove c processor extension. 9eec331
  • Documentation glitches. 7a4e1c3
  • One-liner installation instructions. 1a9de28
  • Set up @asciidoctor/tabs in UI bundle. c8095b5
  • Update manual installation instructions. c71a28d
  • Documentation for Polymorphic default deleter. 77cea7c
  • Describe dependency refresh. 61d6e7b

🎨 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 (cppalliance#929).5 5e97515
  • 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. e5a089c

🧪 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

🛠️ Improvement

General improvements and enhancements

  • SourceInfo provides primary location. be736d3
  • 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

  • Correctly handle files included through symlinks. ff33c4b
  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.