2026-10-11 Andrey V. Kosteltsev * Fixed target machine depended tests. 2026-10-11 Andrey V. Kosteltsev * LibMPU 1.0.27, LibMPUIO 1.0.7 are required. 2026-10-02 Andrey V. Kosteltsev * mcpu-cpp 1.0.3: move the per-user configuration to $HOME/.mcpu/etc/mcpu-cpp.conf and add --sys-root=PATH. * --sys-root accepts absolute or relative paths, selects PATH/include as MCPU_CPP_SYSTEM_INCLUDE_PATH, and suppresses all configuration-file reads for that invocation. * Synchronize --help, English/Russian documentation and manual pages; add regression coverage for the new user-config path and system-root policy. 2026-10-01 Andrey V. Kosteltsev * mcpu-cpp 1.0.2: implement LibMPU, LibMPUIO congiguring check using libmpu.m4, libmpuio.m4. 2026-09-30 Andrey V. Kosteltsev * mcpu-cpp 1.0.1: integrate English and Russian mcpu-cpp(1) manual pages into the Automake build and install them through the standard system man directory. 2026-09-30 Andrey V. Kosteltsev * mcpu-cpp 1.0.0: first public release of the preprocessor. 2026-09-30 Andrey V. Kosteltsev * mcpu-cpp 0.0.51: remove Russian preprocessing-directive aliases while retaining full Unicode identifier/text support. Update the synchronized manuals with a GNU-compatible-features section and remove predecessor references. Adjust only alias-related and version-sensitive tests. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.50: replace the single normative manual with synchronized Russian and English editions, update the manual to the complete 0.0.49 feature set, add a LibMPU/LibMPUIO-style developer bootstrap that regenerates the ZUBR parser and Autotools files, add a .gitignore for reproducible/generated Git-tree files, and keep release archives and the existing ordinary build model self-contained and unchanged. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.49: compact invisible source-line gaps using GNU CPP's 0..7-newline versus 8+-linemarker policy while preserving logical source coordinates, include enter/return markers, __LINE__, diagnostics and #line. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.48: normalize whitespace belonging to macro replacement lists without reformatting ordinary source text or actual macro arguments; keep literal contents and preprocessing-token boundaries intact. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.47: implement standard __VA_OPT__(pp-tokens) with expanded variadic-emptiness semantics, balanced parentheses, #/##/placemarker/rescan integration, and explicitly omit historical GNU comma swallowing. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.46: add C99-style variadic function-like macros with ... and __VA_ARGS__; integrate the variable argument with ordinary prescan, stringification, token concatenation, placemarkers, rescanning and macro dumps; intentionally leave GNU named args... and __VA_OPT__ unsupported, document the contract and add dedicated regression coverage. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.45: implement GNU-like -MG for -M/-MM; integrate missing generated headers and forced files with the ordered dependency registry through a separate unresolved textual identity domain, preserve physical st_dev/st_ino deduplication for real files and GNU-like user/system filtering, document the model and add dedicated regression coverage. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.44: implement GNU-like -MT/-MQ dependency targets with repeated and attached forms, exact -MT output, Make-quoted -MQ output and multiple targets per rule; document the 0.0.43 -include/-imacros forced- file contract and the new dependency-target behavior in doc/mcpu-cpp.md, and add dedicated regression coverage. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.42: implement -w as the global warning-output gate; suppress every warning class before -Werror promotion regardless of command-line order, leave real errors unaffected, expose -w in --help, document the warning policy, and add regression coverage for all existing warning sources. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.41: clean the public command-line interface, remove obsolete compatibility options, document --object-suffix, add selected Russian directive aliases (#определить, #строка, #включить, #включить_следующий, #отменить, #управление, #язык), rename the product description to "MCPU languages preprocessor", and remove predecessor- oriented wording from comments and documentation. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.40: implement warning control with -Wcomment/-Wcomments, -Wno-comment/-Wno-comments, -Wall, -Werror and -Wno-error; preserve specific-option priority over -Wall, promote every emitted warning via one diagnostic policy, add comment-lexing diagnostics and regression coverage, and document the warning model as a separate normative section. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.39: split final macro dumping by macro origin; make -dM report only source/include and command-line macros, implement -dMP as predefined macros first followed by ordinary macros, preserve #undef final-state semantics and deterministic per-group ordering, leave -dD unchanged, and add documentation/regression coverage. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.38: add -MD/-MMD side-effect dependency generation and -MF dependency-output selection; derive default .d names from the input basename or ordinary -o output, preserve the established -M/-MM graph and system classification, and add documentation/regression coverage. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.37: replace the versioned, compile-time-bound installation root with a relocatable `$libdir/mcpu` ecosystem tree; derive the runtime root from the physical executable path, derive the packaged config and default system include tree from that root, retain configuration overrides, add physical relocation regression coverage, and document relocatability as a general MCPU ecosystem principle for cpp/as/ld/run and future libraries. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.36: fix --no-config so it suppresses only configuration-file reads while retaining the compiled MCPU_CPP_SYSTEM_INCLUDE_PATH default; keep -nostdinc as the mechanism that removes the standard-system include tree; add regression coverage for -dsearch-dirs, -dconfig, -v and explicit include classes, and document the corrected configuration contract. 2026-09-29 Andrey V. Kosteltsev * mcpu-cpp 0.0.35: implement basic -M/-MM dependency generation directly from the existing include pipeline; classify system dependencies by real include provenance and propagate system context transitively; deduplicate physical files by device/inode identity; keep logical #line names out of make rules; add documentation and regression coverage. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.33: align configure output with the LibMPU/LibMPUIO/ZUBR package family by adding the common headline and AC_MSG_CFG_PART section headings while preserving the detailed final summary; normalize every textual occurrence of the author given name to Andrey. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.32: make -v report one effective include-configuration snapshot instead of logging every assignment from every configuration file; add -dsearch-dirs and regression coverage for semantic search-order dumping, compiled system defaults and -nostdinc; document both interfaces. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.31: introduce versioned MCPU installation under $libdir/mcpu-0.0.31, install a public $bindir/mcpu-cpp symlink, move the packaged configuration into the versioned tree, treat /etc/mcpu as an optional administrator override, keep the unversioned per-user config at $HOME/.mcpu/mcpu-cpp.conf with highest priority, and restore MCPU_CPP_SYSTEM_INCLUDE_PATH as a completely replaceable system-header root. Document the configuration hierarchy, sandbox use case and #include_next interaction as normative contracts. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.30: make command-line include classes override configured defaults and define the complete normative search chain. Rename the configured system root to MCPU_CPP_SYSTEM_INCLUDE_DIR, derive fixed language subdirectories internally, allow an empty root to disable the configured system tree, keep AFTER language-independent, extend #include_next across every class, add full-order regression coverage and document the wrapper-header/search contract in a dedicated section. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.29: implement GNU-style #include_next. Preserve the physical include search entry that supplied each nested header and resume searching strictly after it across user, explicit-system, configured-system and idirafter classes. #include_next does not re-search the current source directory and treats quoted/angle operands identically; macro-expanded operands remain supported. Add dedicated wrapper-header regression tests. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.28: implement #error/#warning diagnostics with logical source locations, no macro expansion of diagnostic text, whitespace normalization outside quoted tokens, conditional suppression and the historical Russian aliases #ошибка/#предупреждение. Add regression coverage and document the diagnostic-directive contract. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.27: implement zNNN/ZNNN integer-width suffixes with an optional U/u in #if expressions. Parse NNN as decimal, normalize valid 8/16/32/64-bit literals by sign or zero extension to the fixed 64-bit evaluator, reject widths above 64, warn and ignore invalid smaller widths, reject C L/LL suffixes and malformed suffix continuations. Remove the obsolete assertion -A action and -dMA modifier. Expand the manual with the normative conversion model and add dedicated regressions. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.26: replace the temporary hand-written #if parser with mcpp-expr.zubr generated by ZUBR 4.1.0; retain the current defined()/ macro-expansion pipeline, add an UCS-2 lexer using LibMPU iatoui() for numeric conversion, move fixed 64-bit expression semantics into mcpp-semantic.c/h, preserve short-circuit and historical shift behavior, and add dedicated regression coverage. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.25: allow `$` as a preprocessing-identifier continuation character but never as identifier start; parse -D macro declarators separately from replacement values so invalid suffixes are silently discarded instead of entering the replacement list; apply matching -U prefix handling; document shell quoting and add regressions. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.24: fix -dD provenance for command-line macros. Track builtin/source/command-line macro origin and emit # 0 "" for definitions installed through -D while preserving # 0 "" for predefined/builtin definitions. Add regression coverage. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.23: implement -D/-U command-line macros. Decode only their payloads from UTF-8 to strict UCS-2, reuse the ordinary #define/ #undef parser and macro engine, preserve action order after builtin/ predefined installation, support Unicode XID identifiers and function- like macros, reject invalid UTF-8/non-UCS-2 payloads, and add dedicated regression coverage. 2026-09-28 Andrey V. Kosteltsev * mcpu-cpp 0.0.22: replace the ASCII-only preprocessing-identifier predicates with LibMPUIO 1.0.4 Unicode 18.0.0 XID_Start/XID_Continue classification. Keep underscore as an explicit language identifier character, preserve case-sensitive macro names, require the UCS-2 ctype API at configure time, and add regression coverage for Cyrillic, Latin, Greek, combining marks, non-ASCII digits, macro parameters, #if/defined, ## rescanning. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.21: implement GNU-compatible ## token concatenation for object-like and function-like macros; use raw arguments next to ##, keep empty arguments as placemarkers, validate the pasted preprocessing token, rescan the resulting replacement list, preserve # stringification interaction, diagnose invalid/end-position uses, and add regressions. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.20: keep the quoted #lang implementation contract unchanged, strengthen its case-insensitive regression coverage, and synchronize every package-version regression expectation with the release version. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.19: require a quoted #lang language name; validate it case-insensitively against the internal language table only, reject empty or whitespace-containing names and multi-physical-line forms, preserve the original spelling inside quotes, normalize external whitespace in output, and add dedicated regression coverage. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.18: implement conditional-compilation control flow; consume #if/#ifdef/#ifndef/#elif/#else/#endif instead of emitting them, skip inactive branches, evaluate #if expressions with defined and the historical operator precedence. Restore GNU-compatible line control: generated line information uses # N "file" linemarkers, include entry and return use flags 1/2, and input #line updates __LINE__/__FILE__ instead of passing through to output. Add dedicated regression coverage. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.17: finish comment whitespace cleanup. Remove blanks left before end-of-line comments, including multi-line block comments, while preserving the separator required by comments between adjacent tokens. 2026-09-27 Andrey V. Kosteltsev * mcpu-cpp 0.0.16: implement -dD output; keep source #define directives and emit predefined definitions with built-in markers; remove whitespace left on comment-only lines; defer the UCS-2 range check until after comment removal and add dedicated regressions. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.13: implement function-macro stringification (#); preserve raw arguments for stringification, lazily expand ordinary argument occurrences, handle empty actual arguments correctly, keep ## rejected, and add dedicated stringification/dump/error regressions. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.12: correct INT/UINT DECIMAL_DIG semantics by computing decimal digits from the known language type width, excluding signs and terminating NUL characters; add exact full-range regression coverage. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.11: publish integer decimal-digit metadata for every LibMPU integer width and Real decimal/mantissa precision for every Real width through MPU_REAL_IO_LIMIT; replace FLOAT_WORD_ORDER with explicit MCPU byte/word-order macros, add maximum-width capability macros, and rename SIZEOF_PTRDIFF_T to SIZEOF_PTRDIFF. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.10: move configured size/ssize metadata fully into the MCPU namespace; use char8/char16-native SIZEOF names; add Real exponent storage size and maximum textual character-count metadata for every configured Real width through MPU_REAL_IO_LIMIT; extend -dM regressions. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.9: correct ptrdiff to signed int64; add the MCPU ssize profile; extend TYPE/WIDTH/SIZEOF metadata through NB_I_MAX * 8 for integers and MPU_REAL_IO_LIMIT for Real/Complex; define Complex WIDTH as the language parameter while keeping double storage size; add exhaustive predefined-range regression coverage. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.8: refine the predefined MCPU ABI contract: rename the preprocessor/version and LibMPU-profile macros, use char8/char16, cap textual numeric predefines at 256 bits, add LibMPU-derived decimal precision macros, fix pointer/ptrdiff width at 64 bits, and derive active-language subdirectories from configured system include roots. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.7: establish the first serious predefined ABI/environment layer using the LibMPU/LibMPUIO configure model and GNU GCC probes; add MCPU/fixed-width integer/Real/Complex/type-size/endian predefines, lazy LibMPU-generated Real limits, and the -dM/-dconfig inspection options. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.6: implement the neutral predefined-macro mechanism: __FILE__, __LINE__, __BASE_FILE__, __INCLUDE_LEVEL__, __DATE__, __TIME__ and __VERSION__; preserve include nesting, fixed startup timestamp and non-rescanned special expansion semantics. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.5: move project-owned M4 logic to acsite.m4, reserve m4/ for external macros, document the future explicit `make parser` Bison workflow, and implement function-like macro definitions/calls and argument expansion. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.4: implement the first macro-engine layer, add backslash-newline/comment preprocessing phases, object-like #define/#undef, recursive object-macro expansion and computed #include; add doc/mcpu-cpp.md as the implementation-order manual. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.3: make MCPU_CPP_INCLUDE_PATH a common include root visible in every language state, keep switched-language include paths as additional higher-priority configured user paths, and move the configuration hierarchy to /etc/mcpu/mcpu-cpp.conf and $HOME/.mcpu/mcpu-cpp.conf. 2026-09-25 Andrey V. Kosteltsev * mcpu-cpp 0.0.2: restore LANG_0 as the initial base language state, replace historical vasm with as, remove the temporary C-specific include path, define MCPU_CPP_INCLUDE_PATH as the include root of language 0, tighten the canonical #lang names, and add the public `make tests` target. 2026-09-24 Andrey V. Kosteltsev * mcpu-cpp 0.0.1: initial implementation based on the architecture and semantics required by the MCPU project with a UTF-8/UCS-2 text model.