Releases: cppalliance/mrdocs
v0.0.2
🚀 Features
New features and additions
- ✨ Config YAML as dom::Object. 0faf7a9
- 💫 Represent possibly-qualified names with NameInfo. aa4e6ff
- 🌟 Replace (Builtin/Tag/Specialization)TypeInfo with NamedTypeInfo. c19a4d4
- ✨ Support @throw/@throws/@exception. 0f25c6a
- 💫 Extract and render initializers for variables and fields. 42cc6ec
- 🌟 Detect compiler default include paths. 0720a15
- ✨ Automatic generation of compile_commands.json. 70a9347
- 💫 Deducing this. 67fa963
- 🌟 Input filters. 5f2e60e
- ✨ Extra javadoc and HTML tags. 75611fc
- 💫 Support multi-node HTML tags. 541cf5b
- 🌟 Adoc template "See also" section. 9c20b9d
- ✨ Support using directives, using declarations and namespace aliases. 753823e
- 💫 Support variadic functions and variadic function types. d456f87
- 🌟 Better support for explicit-specifiers. 7ebe30a
- ✨ Support @pre and @post. 5fee793
- 💫 Annotate constructors and destructors in adoc member lists. 590b317
- 🌟 Configurable see-below and implementation-defined namespaces. c476746
- ✨ Support @n command. 0d821e2
- 💫 Add 'select' handlebars helper. 8c20d25
- 🌟 Render explicit-specifier in asciidoc output. 3122db0
- ✨ Allow multiple implementation-defined and see-below namespaces. 2753767
- 💫 Warnings for duplicates. (closes #266, #350) a691052
- 🌟 Detect types implementing SFINAE idiom. bb7d201
🐛 Fixes
Bug fixes and error corrections
- Use book doctype when generating demos. 34cfbd7
- Only delete Boost.URL demos on push. 1833247
- Case label skips variable with non-vacuous initialization. badb9d9
- Visitor with rvalue arguments. 8dbacbf
- Do not link to external/system headers. 4542bf0
- LookupCallback has virtual destructor. c5dc7ae
- Sanitize references. 1de3dff
- Bug reporters refer to Mrdocs repo. 06dd4c0
- Track whether base-specifiers were a pack expansion. 34204a0
- Propagate current dependency mode when extracting typedefs as a dependency. 7820d6a
- Dependency extraction for templates. a28f265
- Atomic shared_ptr checks. 4805772
- Expected does not support class template argument deduction. da44b16
- StringRef::equals replaced with operator==.1 8a3c4e3
- No extra ';'s. d7f3b6d
- Version string final line break. 52d63cd
- Remove newline from namespace alias signature template. 995c8ac
- Typo for ternary operator in CI. 895cc6e
- HTML matches Asciidoc templates. 561f213
- Xml schema. 028b98e
- Escape names of overload set members. 161b6f4
- Test bug report messages refer to mrdocs. ab29a11
- Source-root is always normalized. e96bd59
- ToolArgs initialization is ordered. 0dd9414
- Merging of parameter names. f19eb95
- Global namespace is always created. 81318c8
- Identification of duplicate @returns (#638). 057778c
♻️ Refactor
Code refactoring and restructuring
- East-const in adoc generation. de4f5c6
- Remove convertToNoexceptKind. 49414e4
- Remove cmake temp files. 59681e8
- Modular cmake functions. f53685e
- IsCXXSrcFile accepts C files. 14e3a33
- Command database filters fsanitize. b18ec64
- Cmake config uses temporary directory. 9bfb5f4
- Cmake help can use OS defaults. dd10896
- Bash argument parser. bb927a6
- Format ASTVisitor. be25522
- Report bitcode failures. 1be3e83
- References to excluded symbols are not an error. a567f80
- Invalid commands emit error messages. d5e8f64
- Don't represent using-directives as Info. c4441d4
- Info tables. (fix #549, #553) 3456ba5
- Config tables. 340b978
- Character set is base36. (closes #376) 71ab1e6
- East-const declarations. 6c684c6
📖 Documentation
Documentation updates and improvements
- Corpus javadocs. 01403d6
- CMakeUserPresets.json.example includes warnings. c438bd9
- Expand build utilities javadoc. 91d6742
- Support asciidoctor tabs. 4043ad3
- Install instructions use official dependency releases. 0fa17a9
- Demo page. d37df4c
- README.adoc refers to Mr. Docs. 4d6e040
- Banner refers to Mr. Docs. 17503d8
- README uses consistent capitalization. 45e1095
- Index.adoc uses consistent capitalization. dd28523
- Source code callouts. 49fc14b
- UI header and footer are clean. 359d017
- Simplified home page. 83ff42c
- Demos page has direct links. 0d52577
- Install page releases extension. d04e10f
- Complete usage examples. 6e1ee8a
- Commands page include examples. 678b724
- Complete config file reference. (fix #525) a3fd0ce (thanks @anarthal)
- Design notes includes rationale and philosophy. (fix #154, #615) 608a925
- Complete contributor guide. 42d32a4
- README.adoc refers to documentation. bd4cbad
- contribute: All directories are at section level 4. d70ae7e
📦️ Build
Build system and configuration changes
- Default preset enables tests. b615e97
- Duktape CMake scripts. 586ce9b
- Capitalized duktape package has precedence. 05938ab
🧪 Tests
Test cases and testing-related changes
🚦 Continuous Integration
Changes related to continuous integration
- Update cpp-actions to v1.6.2. 9c0071a
- Update cpp-actions to v1.8.2. 61ede2b
- Demos use original mrdocs.yml. 588b598
- Build and cache LLVM from source.2 (fix #548) 03b55df
- Scp command uses StrictHostKeyChecking=no option. 313abfb
- Use official dependency releases. 0771bdc
- Use official libxml2 release.3 ab43756
- Update LLVM to 5b959310. 62793c4
- Demo comparison artifact. be9a55a
- Gcc uses -static. (fix #547) b0021e5
- Gcc uses default container. 95a39a4
- Artifact names include ref_name in master and develop. 09a43d4
- Website demos disable StrictHostKeyChecking. 2637ae4
- Template consistency checks. 380eb00
- Secure known_hosts permissions with chmod 600. ce04a1b
- Demo variants via command line. 0ea641b
- HTML demos are restored. 4552d29
- Split test targets. 3fa59db
- Build-type is RelWithDebInfo. 619d216
- LLVM install falls back to binaries. 76ff85d
- Demos command is single-line. 7f12879
- Actions/checkout v4. 691d8a6
- compare_templates: No empty warnings. b8deda9
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Update mrdocs natvis. 2c87ded
- Render @param, @returns, and @throws commands in adoc. c769ac7
- Support @Result. a54d4a5
- Marginally better adoc escaping. bf60a45
- Update tests. 86d18ba 0244055
- Merge consecutive text elements on the same line. a844aed
- Retain comments in system headers. de75a22
- Warn when corpus is empty. 11febb6
- Allow for caller to filter lookup results. 395f565
- BuildNameInfo does not skip the innermost declaration. 0655c84
- Bump LLVM to 7a28a5b3. 1e6e9ae
- Remove USR generation workaround for decayed function parameters. e0a0547
- Temporarily disable HTML generator demos. f34abe3
- Build NameInfo using explicitly provided nested-name-specifier. d68d133
- Add 'See Also' section to all adoc templates. 9576c73
- Link names in overload sets. ca13ce1
- Show full nested-name-specifiers of declarations in titles. 131419b
- Remove symbol kind from titles. f033ec3
- Rename 'safe names' to 'legible names'. cac1bc8
- Generate safe names for section ids. 7353d63
- Asciidoc and HTML Template Synchronization. c8b9e8f
- Mrdox requires x64. (closes #309, #473) cdc6b9b (thanks @klemens-morgenstern)
- Version is 0.0.2. 217ad91
💬 Other
Other changes not covered by specific categories
- Revert "docs: valid section anchors".4 afc59d5
- Revert "docs: qualified typedefs".5 e88ce51
- Revert "refactor: east-const in adoc generation".6 cd00fe6
- Cmake refactor fallback --system-information. 062b399
- Code simplification. 2bc1e13
- Do not call cmake --system-information on CI. 741198c
- Update .github/workflows/ci.yml. 3d3f398 47a3031 e3a0bff
- Fallback in case of parse fail. 113ecbc
-
StringRef::equals has been deprecated. ↩
-
Generalizes the build process for any LLVM version and any set of configuration options. To make it faster, the set of targets is reduced to only what we need for MrDocs. When we change the LLVM parameters, the first run will take slightly longer in CI and subsequent runs will reuse the cached binaries. This means we no longer need to host the binaries on mrdocs.com and update them manually, making the process of updating the LLVM version much simpler and cheaper since github will be hosting the binaries. It also allows us to explore other static ways to build LLVM in CI, which is required to create executables that are not associated with a specific ubuntu version. ↩
-
This extends the same logic of other dependencies and avoids bugs in the vcpkg port. ↩
develop
🚀 Features
New features and additions
- undefined:
- ✨ Overload folding on a single page. (fix #647) e8840f3
- 💫 Support concepts and constraints (#649). () abf42ae
- 🌟 Support CMAKE_ROOT. () 9060f86
- ✨ Reproducible standard library outputs. () ce34057
- 💫 Config YAML schema. () 1e162bf
- 🌟 Support anonymous union members. () 8d8a007
- ✨ Uniform logging level control across CorpusImpl. () 3f24987
- 💫 Html concept templates. () 9dd2f6d
- 🌟 Embedded option.1 () decaf3e
🐛 Fixes
Bug fixes and error corrections
- undefined:
- Ct_mft_expl_inline.xml USR is updated. () 53b46cb
- ASTVisitor.cpp indexes are unsigned. () f8cc81e
- No multiple titles in single-page Asciidoc. () e460d86
- 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
- Path: Scoped temp directories use llvm's remove_directories. () 691ce1d
♻️ Refactor
Code refactoring and restructuring
- undefined:
- Simplify golden test reports. () c82e452
- Config options target. () eea9026
- Drop bitcode support. () e6205d5
- Options are quoted in messages. () eaff684
- Split error message from source location in reports. (fix #672) 446a41d
- Version command includes build. () f600633
- Compilation database ensures target. () 9871794
- Compilation database ensures std. (fix #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 #696) 9d30ea1
- Public settings initialize relativeto.2 () 59b3012
- Unify dom lazy array classes.3 () e919a61
- Dom::Value tag_invoke. () 2663199
- Dom::LazyObject tag_invoke. () de7f589
- Custom ValueFrom for Info types. () 4393f22
- Synchronize HTML templates. () 0823b48
- Simplify handlebars generators.4 (Generator: main reason the HTML Generator is always behind the Adoc Generator: simple features were not duplicated in the HTML generator. This even justified #656, where we would temporarily remove the HTML generator., fix #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
- Platform: Support arm64. () d92de4e
- generate-config-info: Normalization via visitor. () a1fb8ec
- TestArgs: Reuse public config args. () 3a22947
- test: Remove unused lambda capture. () 70bff87
- LazyObject:
- DomCorpus: Inline operators. () 8d2948a
- Template: Remove unused parameter. () 6639b8d
- Generator: Build member function. () eb464a3
- HandlebarsGenerator:
- Handlebars: Distinguish ostream types. () 1efcc2e
- Builder: Is_multipage does not require helper. () 713b573
📖 Documentation
Documentation updates and improvements
- undefined:
- Website landing page. () 05400c3
- Landing page download link. () 8fba202
- Unify author mode playbook. () 999ea4f
- Simplify demos table. () 4d884f4
- Config options reference extension. () a20d6e7
- 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
- usage: Cmake example uses TMP_CPP_FILE.6 () d8b7fcf
- LazyObject: Update documentation. () c521719
- Scope: Include lookups in documentation. () b078bea
🎨 Style
Code style and formatting changes
- Scope: Standardize indentation. () 0b9f944
🧪 Tests
Test cases and testing-related changes
- undefined:
🚦 Continuous Integration
Changes related to continuous integration
- undefined:
- No fallback for GHA LLVM cache. () 4c14e87
- Unify release workflows. () 99f4608
- Llvm releases.7 () 63c958a
- Update llvm releases required workflows. () 58119e0
- Llvm workflow installs curl. () 5dc3884
- Optimized debug workflow. () 3500877
- Unify llvm parameters. () bd54dc7
- Intermediary steps use actions. () 3d92071
- Resolve llvm-root for cache@v4. () 8537d3d
- Enable macos. (fix #558) 390159e
- Fix package asset uploads. () d1c3566
- Demos artifact path is relative. () 62736e4
- Coverage workflow. () 1259131
- Check config schema is up to date. () cb18b87
- Remove info node support warnings. () 62f361f
- Enable html demos. () c46c4a9
- llvm-matrix: Filter uses Node.js 20. () f3b33a4
- llvm-releases:
- releases:
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- undefined: Update LLVM commit hash. () 75a2785
-
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. ↩
-
This fixes a warning when using initialization with designators. ↩
-
The DomCorpus uses multiple classes that represented lazy arrays. This commit simplifies the dom by unifying all of these array implementations. ↩
-
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. ↩
-
Unify code duplicated between build and buildOne. ↩
-
The Cmake example for header-only libraries compiles by replacing
OUTPUT_FILE
withTMP_CPP_FILE
. ↩ -
Update the workflow to upload the LLVM release built in CI whenever there's a new version. ↩
-
The previously hard-coded paths only work on ubuntu. On windows and macOS, these paths don't exist, don't have the necessary permissions, or are ignored by ssh. ↩
v0.0.1
Changelog
🚀 Features
New features and additions
- ✨ RangeFor. c916310
- 💫 Formatter. 21988cf
- 🌟 Handlebars API. 7a218f4
- ✨ Add Path APIs. 66aedd6
- 💫 JavaScript api. e12c78d
- 🌟 Addons directory. 9582ac1
- ✨ String support algorithms. ae14717
- 💫 Doc::Heading. 9094337
- 🌟 More doc node types. 6806796
- ✨ Add MRDOX_GENERATE_REFERENCE cmake option. 6e67eb4
- 💫 Error refactoring. 1982508
- 🌟 Stack trace on exception. fcb2d60
- ✨ Links in doc. 0578675
- 💫 Dom. ec7344e
- 🌟 Adoc support for templates. (close #328) 1a89402
- ✨ Interface for records. 1138867
- 💫 Enum dom and adoc work. 2b90a02
- 🌟 Dom is lazy. a2613b8
- ✨ Better Expected. 5b2fa54
- 💫 SharedPtr. e2d0f73
- 🌟 Lua integration. 940033e
- ✨ Recursive TypeInfo structure. (closes #209, closes #343) af254c3
- 💫 New Dom. 8ccb12a
- 🌟 Add IsMutable for FieldInfo. (closes #177) 9798204
- ✨ Add support for bitfields. (closes #212) 8c82517
- 💫 Add ConstexprKind and isConstinit to VariableInfo. (closes #325, closes #205) a864552
- 🌟 Add isThreadLocal to VariableInfo. b1a5896
- ✨ Add isInline and isAnonymous to NamespaceInfo. (closes #199) c85c48e
- 💫 DomCorpus. 345358d
- 🌟 Classify functions by kind. 5aa45a6
- ✨ Info name improvements. (closes #352) a3389a2
- 💫 Diagnostics. 668e4e9
- 🌟 Array::emplace_back. e92e988
- ✨ Dom::String. (fix #361, fix #372) 735ef37
- 💫 Use std::unordered_set<std::unique_ptr> during AST traversal. 8a376f2
- 🌟 Tests have configs. c59ef02
- ✨ C++ Handlebars library. 81a5b88
- 💫 Improved reporting with levels. 9a64659
- 🌟 --report switch. 843f5a2
- ✨ Info reporting in test runner. caf0347
- 💫 Improved declaration resolution. e4947d8
- 🌟 TArg stores types. c0fd3fc
- ✨ Improved clang and llvm natvis. cb7d069
- 💫 HTML generator. a57def6
- 🌟 Add Info::Implicit flag. 2a21b06
- ✨ Dom::Function and major refactor. a45679c
- 💫 Duktape uses native dom. a3d6bbd
- 🌟 Whitespace control specs. 7e5250e
- ✨ Partials specs. 5a0409a
- 💫 Block specs. 95210f8
- 🌟 Subexpression specs. f3e6861
- ✨ Builtin specs. 7510558
- 💫 Private data specs. c1223af
- 🌟 Helpers specs. 8f674d5
- ✨ Track-ids specs. 517d4d4
- 💫 Strict specs. deaa47c
- 🌟 Util specs. d10a921
- ✨ Mustache specs. f63df18
- 💫 Safe names. 3aecfc0
- 🌟 Support dom::Function. 93a1bf9
- ✨ Handlebars error handling. 2e554c8
- 💫 Symbol filtering. 090db2a
- 🌟 Dependency extraction improvements. c3a18a5
- ✨ ExtractOptions. 7a1e1dd
- 💫 Minimal safenames. 7360cd4
- 🌟 Support basic filtering of inaccessible members. 66ba585
- ✨ Add find/index_of container helpers. c6ccde2
- 💫 Find helper supports strings, arrays, and objects. 60d79ff
- 🌟 Symbol name lookup. 9141ad1
- ✨ Add EnumeratorInfo and FriendInfo. 22ac9ec
- 💫 Overload sets. bbc08f1
- 🌟 C++/JS proxy functions.[^1] 58e4cec
- ✨ Configurable extraction of inaccessible bases. a77752e
- 💫 C++/JS proxy objects. 339f7da
- 🌟 Tranches & overload sets for namespaces. a7a7330
- ✨ C++/JS proxy arrays. 5230768
- 💫 Complete JavaScript helpers support.[^2] 1a1b510
- 🌟 Template context includes config. 186db21
- ✨ BaseURL config option. 86609ec
🐛 Fixes
Bug fixes and error corrections
- Linux build. fab205d
- Added addons folder copy. ea602c2
- Runtime errors. (close #284, close #285) 90668f3
- Fix Source/Error.hpp include. 8bf0395
- Missing Field in visit. 4c2f8c5
- Missing info kind tags. be131f1
- Mrdox.cmake. 03bcc0a
- Add CMakePresets.json to gitignore. 8a0bb97
- Add back brief-1.cpp. 9fe16c8
- Invert Value::getBool. bb6a6d3
- Constexpr. 181ac6b
- CI warnings. 5c7120b
- Don't lookup bases that use SymbolID::zero. bf5ffde
- Source_location. 262846a
- Expressions of different signedness are casted. 66b3d3b
- No reference temporaries. 353fe98
- Lua ignored warnings include GCC. 828560c
- Change FieldFlags::isNodiscard to FieldFlags::isMaybeUnused. db42b86
- DomCorpus warning. 4db0c96
- Hack to make test pass regardless of line endings. 45d69f7
- Invalid assert in parseJavadoc. 09854bc
- Doc::Overview. f8e72bb
- Concurrency is a command line argument. (fix #392) 3e5f660
- Fixup clang natvis. fda33b1
- Inverse blocks with no helpers expand expressions. 68491d0
- Single-thread pool. a55a87c
- Info::Namespace uses SymbolID::zero for global namespace. cbc7d55
- Handle substituted template parameter types. d2990a8
- Fallback to TemplateName::print for qualified template names. 80f9eae
- Multipage links work in adoc. 9914bbb
- Make_format_args requires lvalue references. 53273a0
- Asciidoc demos. fa02ec5
- Safename disambiguation. a2e033b
- Workaround for msvc 14.5 bug. 0448745
- Global namespace safename. 2bd8576
- Remove expression trim.[^3] bf64028
- [object Object] shown in adoc output. bb41cf0
- Create generator output directory if it doesn't exist. 581bc90
- Adoc shows declarations and definitions. bb96013
- Qualified lookup for transparent contexts. 2b5c5c8
- Compute pseudo-access for friends. 3401014
- GetInstantiatedFrom returns templated declaration for templates. 1579d95
- Use string_view data. 71dd9f5
- Tranche partial requires no whitespace. 7d689c9
- Report handlebars errors from Builder. cf2d10a
- AccessKind::None is zero. 633a686
♻️ Refactor
Code refactoring and restructuring
- Move source files to src. 04f75dd
- MrDox uses C++ handlebars.[^4] 63ac382
- Store dom::String as a single pointer. (closes #413) ba19bdf
- Project name is mrdocs. (🚨 BREAKING) 12c027f
- Rename format option to generate and move it to the config. bfe1ae3
- Promote adoc section levels. a7afbe1
- Group namespace members by kind. 76998f4
- Invert source and synopsis. 7c1f0ea
- Namespace members are sorted. d788ed8
- Source partial refers to headers. 6e00120
- Replicate function and record sections. a0c9d1d
- Tool uses Expected. 3e1c279
- Template headers link to repo. 866f727
📖 Documentation
Documentation updates and improvements
- Antora setup. 744eaee
- SafeString javadoc. (fix #388) 2f9fe70
- Installation instructions are relative to enclosing directory. 3491224
- Antora playbooks refer to mrdocs repo.[^5] 4e59401
- LLVM version is 29b20829.[^6] (fix #462) 6c6d641
- JavaScript.hpp javadoc. da84105
- JavaScript capitalization is consistent. ef24d66
📦️ Build
Build system and configuration changes
- Integrate duktape. (close #235) 3b31926
- Extend fmt integration options. 0458f28
- Reset LLVM warning flags.[^7] (fix #251) f6c5346
- Support CMake presets. ba63ed0
- Lowercase config preset names. 03b5b26
- Vcpkg manifest example. d5081bc
- Cmake presets use variable-based paths.[^8] 9412a8c
- LLVM presets. 2ac2157
- Use duktape package.[^9] e2c8f19
🧪 Tests
Test cases and testing-related changes
- Integrate handlebars and boost.url test suite.[^10] (fix #390, #384) e14fe08
- Handlebars basic spec. 74fd1f3
- Improve decomposer integral comparison operators. 831a691
- Clang::mrdox::dom unit tests. cc9e397
- JavaScript unit tests.[^11] d5b7b3d
🚦 Continuous Integration
Changes related to continuous integration
- Update workflows. 97f5aff
- All workflows support libxml2. (closes #218) 9dc4f0d
- Setup fmt. 2b78a32
- Update cpp-actions to v1.4.0. 7ebe6a0
- Update cpp-actions to v1.5.0. e2acdae
- Clang uses libstdc++-12-dev. 1db5cf5
- Automated deployment of demo documentation. (fix #402, #405) 5bd2cc4
- Run asciidoctor on adoc demos. d8bbf98
- Use MrDox LLVM binary releases. 2584328
- Preserve directory structure in demos. 0ec670a
- Remove gcc 13.1 job. 2c2b4d6
- Update llvm version. bd103aa
- Fix demos directory permissions. 0683dde
- GCC version is 13.1. 34a9e37
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Tidy up include guard names. 1c398cb
- Error is in Support. f3a848e
- Refactor error handling and reporting. b81ac4a
- Config has workingDir. f3694e3
- Absolute compilation database. d226f3a
- Add Execution. 21b6df1
- Add parallelFor. 8460e1f
- ParallelFor tidy. 028a460
- Path public API work. 8c5c0fc
- Use new path routines. 5ccf929
- Fix absolute path algorithms. 9c0f220
- ThreadPool. e396dbf
- Only 1 each of msvc, clang, gcc CI targets. bdc9864
- Refactor thread facilities. 9121bef
- Config uses ThreadPool. c740a9a
- Tidy up config construction. 993bfa1
- NamespaceInfo member refs are just symbol IDs. 3205784
- RecordInfo member refs are just symbol IDs. 1b6bb13
- Executor group. 5915bef
- No source files in source/. d1a37ee
- Refactor thread support sources. f19a27a
- Tidy up command line arguments. 5c90ac2
- Support fixes. 8ce8894
- Add traverse and visit. 85b20d4
- JS array objects. 9dcc342
- Refactor Javadoc. 6600fe7
- Reverse compare direction in diffs for failed tests. d9ad26f
- Rename VarInfo to VariableInfo. 711baf4
- Rename SymbolInfo to SourceInfo, move Location into Source.hpp. 77729b0
- Debug and error streams are unbuffered. 5b92bfb
- Remove llvm/clang includes from public headers. 0264f5e
- Remove debug_outs. a31ae91
- Relative paths during visit. 971dcd1
- Corpus visit fix. 0e960f2
- Better bitcoding for doc nodes. 87d0752
- Asserts for ExecutorGroup. 68ccbfe
- Fix data race in executor group. d49dcb1
- Define FMT_CONSTEVAL. e89a07a
- Error is an exception. 5d78642
- Refactor ExecutorGroup. 65b5279
- ExecutorGroup returns errors. a09e7af
- ThreadPool returns errors. b7e2443
- Visitor helpers are not anonymous. e4ab713
- Add OptionalLocation. (fix #316) 23b8911
- Normalize outputPath. 6c436c2
- Dom work. 395be0f
- Source symbols are exported. f7aaad9
- Adoc multipage visitor. 118c1b7
- Tidy up Pointer. 1d4a429
- Empty dom Array, Object. ef5af06
- Dom and asciidoc work. 75cd2dd
- Generate symbol IDs for type by looking through pointers/references etc. 072f43c
- BaseInfo stores type using TypeInfo. c2abb69
- Move TagTypeKind conversion to ASTVisitorHelpers. 7246747
- Add toString for InfoKind and RecordKeyKind. e0a82fb
- Dom::create spelling. 2e4b285...
master
🚀 Features
New features and additions
- ✨ Config YAML as dom::Object. 0faf7a9
- 💫 Represent possibly-qualified names with NameInfo. aa4e6ff
- 🌟 Replace (Builtin/Tag/Specialization)TypeInfo with NamedTypeInfo. c19a4d4
- ✨ Support @throw/@throws/@exception. 0f25c6a
- 💫 Extract and render initializers for variables and fields. 42cc6ec
- 🌟 Detect compiler default include paths. 0720a15
- ✨ Automatic generation of compile_commands.json. 70a9347
- 💫 Deducing this. 67fa963
- 🌟 Input filters. 5f2e60e
- ✨ Extra javadoc and HTML tags. 75611fc
- 💫 Support multi-node HTML tags. 541cf5b
- 🌟 Adoc template "See also" section. 9c20b9d
- ✨ Support using directives, using declarations and namespace aliases. 753823e
- 💫 Support variadic functions and variadic function types. d456f87
- 🌟 Better support for explicit-specifiers. 7ebe30a
- ✨ Support @pre and @post. 5fee793
- 💫 Annotate constructors and destructors in adoc member lists. 590b317
- 🌟 Configurable see-below and implementation-defined namespaces. c476746
- ✨ Support @n command. 0d821e2
- 💫 Add 'select' handlebars helper. 8c20d25
- 🌟 Render explicit-specifier in asciidoc output. 3122db0
- ✨ Allow multiple implementation-defined and see-below namespaces. 2753767
- 💫 Warnings for duplicates. (closes #266, #350) a691052
- 🌟 Detect types implementing SFINAE idiom. bb7d201
🐛 Fixes
Bug fixes and error corrections
- Use book doctype when generating demos. 34cfbd7
- Only delete Boost.URL demos on push. 1833247
- Case label skips variable with non-vacuous initialization. badb9d9
- Visitor with rvalue arguments. 8dbacbf
- Do not link to external/system headers. 4542bf0
- LookupCallback has virtual destructor. c5dc7ae
- Sanitize references. 1de3dff
- Bug reporters refer to Mrdocs repo. 06dd4c0
- Track whether base-specifiers were a pack expansion. 34204a0
- Propagate current dependency mode when extracting typedefs as a dependency. 7820d6a
- Dependency extraction for templates. a28f265
- Atomic shared_ptr checks. 4805772
- Expected does not support class template argument deduction. da44b16
- StringRef::equals replaced with operator==.1 8a3c4e3
- No extra ';'s. d7f3b6d
- Version string final line break. 52d63cd
- Remove newline from namespace alias signature template. 995c8ac
- Typo for ternary operator in CI. 895cc6e
- HTML matches Asciidoc templates. 561f213
- Xml schema. 028b98e
- Escape names of overload set members. 161b6f4
- Test bug report messages refer to mrdocs. ab29a11
- Source-root is always normalized. e96bd59
- ToolArgs initialization is ordered. 0dd9414
- Merging of parameter names. f19eb95
- Global namespace is always created. 81318c8
- Identification of duplicate @returns (#638). 057778c
♻️ Refactor
Code refactoring and restructuring
- East-const in adoc generation. de4f5c6
- Remove convertToNoexceptKind. 49414e4
- Remove cmake temp files. 59681e8
- Modular cmake functions. f53685e
- IsCXXSrcFile accepts C files. 14e3a33
- Command database filters fsanitize. b18ec64
- Cmake config uses temporary directory. 9bfb5f4
- Cmake help can use OS defaults. dd10896
- Bash argument parser. bb927a6
- Format ASTVisitor. be25522
- Report bitcode failures. 1be3e83
- References to excluded symbols are not an error. a567f80
- Invalid commands emit error messages. d5e8f64
- Don't represent using-directives as Info. c4441d4
- Info tables. (fix #549, #553) 3456ba5
- Config tables. 340b978
- Character set is base36. (closes #376) 71ab1e6
- East-const declarations. 6c684c6
📖 Documentation
Documentation updates and improvements
- Corpus javadocs. 01403d6
- CMakeUserPresets.json.example includes warnings. c438bd9
- Expand build utilities javadoc. 91d6742
- Support asciidoctor tabs. 4043ad3
- Install instructions use official dependency releases. 0fa17a9
- Demo page. d37df4c
- README.adoc refers to Mr. Docs. 4d6e040
- Banner refers to Mr. Docs. 17503d8
- README uses consistent capitalization. 45e1095
- Index.adoc uses consistent capitalization. dd28523
- Source code callouts. 49fc14b
- UI header and footer are clean. 359d017
- Simplified home page. 83ff42c
- Demos page has direct links. 0d52577
- Install page releases extension. d04e10f
- Complete usage examples. 6e1ee8a
- Commands page include examples. 678b724
- Complete config file reference. (fix #525) a3fd0ce
- Design notes includes rationale and philosophy. (fix #154, #615) 608a925
- Complete contributor guide. 42d32a4
- README.adoc refers to documentation. bd4cbad
- contribute: All directories are at section level 4. d70ae7e
📦️ Build
Build system and configuration changes
- Default preset enables tests. b615e97
- Duktape CMake scripts. 586ce9b
- Capitalized duktape package has precedence. 05938ab
🧪 Tests
Test cases and testing-related changes
🚦 Continuous Integration
Changes related to continuous integration
- Update cpp-actions to v1.6.2. 9c0071a
- Update cpp-actions to v1.8.2. 61ede2b
- Demos use original mrdocs.yml. 588b598
- Build and cache LLVM from source.2 (fix #548) 03b55df
- Scp command uses StrictHostKeyChecking=no option. 313abfb
- Use official dependency releases. 0771bdc
- Use official libxml2 release.3 ab43756
- Update LLVM to 5b959310. 62793c4
- Demo comparison artifact. be9a55a
- Gcc uses -static. (fix #547) b0021e5
- Gcc uses default container. 95a39a4
- Artifact names include ref_name in master and develop. 09a43d4
- Website demos disable StrictHostKeyChecking. 2637ae4
- Template consistency checks. 380eb00
- Secure known_hosts permissions with chmod 600. ce04a1b
- Demo variants via command line. 0ea641b
- HTML demos are restored. 4552d29
- Split test targets. 3fa59db
- Build-type is RelWithDebInfo. 619d216
- LLVM install falls back to binaries. 76ff85d
- Demos command is single-line. 7f12879
- Actions/checkout v4. 691d8a6
- compare_templates: No empty warnings. b8deda9
🏗️ Chores
Routine tasks, maintenance, and housekeeping
- Update mrdocs natvis. 2c87ded
- Render @param, @returns, and @throws commands in adoc. c769ac7
- Support @Result. a54d4a5
- Marginally better adoc escaping. bf60a45
- Update tests. 86d18ba 0244055
- Merge consecutive text elements on the same line. a844aed
- Retain comments in system headers. de75a22
- Warn when corpus is empty. 11febb6
- Allow for caller to filter lookup results. 395f565
- BuildNameInfo does not skip the innermost declaration. 0655c84
- Bump LLVM to 7a28a5b3. 1e6e9ae
- Remove USR generation workaround for decayed function parameters. e0a0547
- Temporarily disable HTML generator demos. f34abe3
- Build NameInfo using explicitly provided nested-name-specifier. d68d133
- Add 'See Also' section to all adoc templates. 9576c73
- Link names in overload sets. ca13ce1
- Show full nested-name-specifiers of declarations in titles. 131419b
- Remove symbol kind from titles. f033ec3
- Rename 'safe names' to 'legible names'. cac1bc8
- Generate safe names for section ids. 7353d63
- Asciidoc and HTML Template Synchronization. c8b9e8f
- Mrdox requires x64. (closes #309, #473) cdc6b9b
- Version is 0.0.2. 217ad91
💬 Other
Other changes not covered by specific categories
- Revert "docs: valid section anchors".4 afc59d5
- Revert "docs: qualified typedefs".5 e88ce51
- Revert "refactor: east-const in adoc generation".6 cd00fe6
- Cmake refactor fallback --system-information. 062b399
- Code simplification. 2bc1e13
- Do not call cmake --system-information on CI. 741198c
- Update .github/workflows/ci.yml. 3d3f398 47a3031 e3a0bff
- Fallback in case of parse fail. 113ecbc
-
StringRef::equals has been deprecated. ↩
-
Generalizes the build process for any LLVM version and any set of configuration options. To make it faster, the set of targets is reduced to only what we need for MrDocs. When we change the LLVM parameters, the first run will take slightly longer in CI and subsequent runs will reuse the cached binaries. This means we no longer need to host the binaries on mrdocs.com and update them manually, making the process of updating the LLVM version much simpler and cheaper since github will be hosting the binaries. It also allows us to explore other static ways to build LLVM in CI, which is required to create executables that are not associated with a specific ubuntu version. ↩
-
This extends the same logic of other dependencies and avoids bugs in the vcpkg port. ↩
llvm-package
This release includes the LLVM packages used by MrDox in CI.
Other packages are available from https://mrdox.com/llvm+clang/