diff options
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 381 |
1 files changed, 381 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..c902a5c --- /dev/null +++ b/ChangeLog @@ -0,0 +1,381 @@ +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 "<command-line>" + for definitions installed through -D while preserving # 0 "<built-in>" + 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. |
