summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog381
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.