summaryrefslogtreecommitdiff
path: root/ChangeLog
blob: c0a0865a2317e4ea85f373394eeff536d76c1c39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
2026-10-11  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.4.1.
	* Add common Linux/i386 ILP32 syscall sysdeps for i586 and i686.
	* Reuse the existing 34 Linux syscall adapters and four conversion helpers
	  without duplicating them between CPU-generation subdirectories.
	* Repair the Autoconf/m4 quoting of the i[4567]86 shell pattern so the
	  generated i386 preconfigure fragment actually recognizes i586/i686.
	* Require the compiler to provide a real i386 ILP32 data model when an
	  i[4567]86 HOST triplet is selected; reject a forgotten -m32 early.
	* Enable the standard Autoconf large-file mechanism so off_t is 64 bits on
	  Linux/i386 while leaving the existing time_t overflow policy unchanged.
	* Keep x86_64 sysdeps and every guest-visible MCPU ABI unchanged.

2026-10-11  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Fixed warnings.

2026-10-09  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.4.0.
	* Bump version for public release.

2026-10-08  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.3.35.
	* Add CPU/system opcodes SETF=0x0010, CLRF=0x0011,
	  CLRCPUF=0x0012 and CLRMPUF=0x0013.
	* Define writable arithmetic/status flags as PSW bits 0..15: SETF/CLRF
	  accept AF..INXF, modify exactly one selected bit and reject HF/TF/IF.
	* Define PSW[7:0] as the CPU flag byte and PSW[15:8] as the MPU flag
	  byte; CLRCPUF clears only 0x000000ff and CLRMPUF only 0x0000ff00.
	* Preserve HF/TF/IF/MODE and every non-selected flag across the new
	  instructions; keep JSET/JCLR read selectors unchanged.
	* Keep existing LibMPU IADC/ISBB and rotate-through-carry semantics; the
	  new instructions only provide explicit initial flag state.
	* Update assembler, decoder/executor and mcpu-objdump opcode/disassembly
	  support.
	* Add regression coverage for flag writes, bulk clears, assembler rejection,
	  IADC/ISBB carry input and objdump output.
	* Update architecture PDF sources/PDF and English/Russian mcpu-as(1) and
	  libmcpu(7) manual pages.
	* Keep MELF, syscall, HLL Runtime ABI, CRT, linker, loader and lifecycle
	  contracts unchanged.

2026-10-06  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.3.34.
	* Make both PDF reference manuals independent of the LibMCPU package release
	  number; package history remains in NEWS.md/ChangeLog.
	* Replace the obsolete draft HLL/CRT text with the signed HLL Runtime ABI:
	  int32/int64/PTR64 signatures, normalized fini, mcpu-ld PROGRAM/MODEL
	  classification, automatic CRT insertion, McpuStartup ownership, MCPU Libc
	  hooks, PRE_RUNTIME/RUNNING, life status namespace and finalization.
	* Add complete reference appendices for mcpu-as directives, every public
	  OPCODE16 with operands/descriptions, PSW selectors and RCONST selectors.
	* Remove stale release-history and in-tree examples references from the PDF
	  manuals; examples are a separate package.
	* Correct syscall documentation to the stable host-independent MCPU errno ABI.
	* Keep ISA, MELF ABI, syscall ABI, HLL ABI, CRT and runtime/linker semantics
	  unchanged from the verified 0.3.33 baseline.

2026-10-06  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.3.33.
	* Make README.md version-independent and move release history responsibility
	  explicitly to NEWS.md and ChangeLog.
	* Remove hard-coded package release numbers from all English and Russian
	  man-page .TH source fields; installed --version/--dump-version remain the
	  authoritative release-number interface.
	* Expand README.md, libmcpu(7), mcpu-ld(1), mcpu-run(1) and mcpu-as(1) for
	  the signed HLL Runtime ABI v1, automatic PROGRAM/MODEL CRT selection,
	  McpuStartup and low-level/HLL lifecycle ownership.
	* Document fatal missing-CRT behavior and the canonical
	  <MCPU-root>/lib/mcpu CRT installation path.
	* Add a regression that prevents release-bound LibMCPU versions from
	  returning to README.md/man sources.
	* Keep ISA, MELF ABI, syscall ABI, HLL ABI, CRT and runtime/linker semantics
	  unchanged from the user-verified 0.3.32 baseline.

2026-10-06  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.3.32.
	* Make successful mcpu-as and mcpu-ld invocations quiet by default and
	  preserve their existing object summaries behind -v/--verbose.
	* Apply mcpu-ld verbose summaries to partial ET_REL, static ABI-v1
	  ET_EXEC, dynamic ABI-v3 ET_EXEC and ABI-v3 ET_DYN output.
	* Normalize installed utility --help option descriptions with an aligned
	  " - " separator and aligned continuation lines.
	* Indent mcpu-run Stage actions by four spaces.
	* Add regression coverage for quiet defaults and both verbose spellings.
	* Document -v/--verbose in the English and Russian mcpu-as(1) and
	  mcpu-ld(1) manual pages.
	* Keep ISA, MELF ABI, syscall ABI, HLL Runtime ABI, CRT and runtime
	  semantics unchanged from 0.3.31.

2026-10-06  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Release 0.3.31.
	* Remove the complete examples/ tree from LibMCPU; manual/book examples
	  are now intended to be distributed as a separate package.
	* Move the canonical mcpu-ld.conf source from top-level etc/ to
	  sysroot/etc/ without changing its installed <MCPU-root>/etc path.
	* Remove the obsolete sysroot/usr/src/mcpu/libc-stub and hll-emul
	  development trees.
	* Move the HLL/CRT-only assembler regression inputs into
	  tests/fixtures/hll so make check remains self-contained.
	* Keep ISA, MELF ABI, syscall ABI, HLL Runtime ABI, CRT behavior and
	  runtime/linker semantics unchanged from the verified 0.3.30 baseline.

2026-10-05  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.28.
	* Implement the signed MCPU HLL Runtime ABI v1 CRT bridge.
	* Add automatic PROGRAM/MODEL classification and CRT insertion to mcpu-ld
	  without new --program/--model options.
	* Add crt0.o/crt1.o/crti.o/crtn.o sources and install only the generated
	  CRT objects under the MCPU target root.
	* Add PRE_RUNTIME/RUNNING startup state, McpuStartup validation, int64 argc
	  bridging, MODEL life-status handling and ordered HLL finalization.
	* Make HLL roots, CRT-private symbols and internal libc hooks non-preemptible
	  in ABI-v3 executables.
	* Add never-installed libc-stub and mcpu-cc output emulators under sysroot;
	  keep the complete existing examples tree unchanged.
	* Add end-to-end HLL CRT regression coverage, including ET_DYN ownership
	  restrictions and pre-runtime startup failure.

2026-10-05  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.27.
	* Add guest-descriptor dup() and dup2() system calls as __NR_dup=0x126
	  and __NR_dup2=0x127.
	* Keep guest and HOST descriptor namespaces separate; implement both guest
	  calls over the HOST __cpu_sys_dup() adapter rather than HOST dup2().
	* Preserve borrowed HOST stdio, POSIX oldfd==newfd behavior, exact dup2
	  target replacement, and descriptor-flag clearing on real duplication.
	* Add tst-dup regression coverage and manual dup-basic/dup2-basic syscall
	  examples.

2026-10-05  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.26.
	* Move the canonical public MCPU assembler ABI headers to
	  sysroot/include/sys/asm/.
	* Install sys/asm headers only from the canonical sysroot tree.
	* Make tst-errno-abi consume public headers from sysroot, eliminating
	  the regression-test dependency on examples/.
	* Keep examples/syscalls/include/sys/asm/ as a standalone snapshot and
	  add an explicit maintainer sync target from sysroot to examples.
	* Copy historical regression assembler inputs into tests/fixtures/ and
	  remove all automatic-test references to examples/.

2026-10-05  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.25.
	* Replace raw HOST errno syscall results with the stable MCPU errno ABI.
	* Add HOST-to-MCPU errno translation, public sys/asm/errno.h and the
	  LibMPU-compatible sys/asm/mpu-errno.h Math Processor Unit interface.
	* Migrate every existing syscall error path and add errno ABI regressions.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.11.
	* Added stat/fstat/lstat with fixed 128-byte struct __cpu_stat ABI.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.10.
	* Align examples/syscalls assembler syscall-number names with
	  cpu/cpu-syscalls.c: use __NR_* consistently.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.9.
	* cpu/Makefile.am: rename sysdeps dependency .Tpo files to .Plo.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.8.
	* Remove the erroneous top-level dist-hook added while packaging manual
	  examples; rely on the normal EXTRA_DIST rules so make distcheck does not
	  overwrite files in Automake's read-only distribution tree.
	* Keep every examples subtree except examples/syscalls byte-identical to
	  the 0.3.4 baseline.
	* Rewrite examples/syscalls run scripts as transparent manual demonstrations
	  without hidden PASS/FAIL tests, and expand its README into book-oriented
	  documentation of the descriptor-I/O ABI and all four examples.
	* Place scratch read buffers in .bss and use .zero only as the supported
	  NOBITS reservation directive inside .bss.
	* Preserve the 0.3.7 object-tool version-test fix and the 0.3.5 syscall ABI.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.7.
	* Make object-tool --version runner checks use Automake PACKAGE_VERSION
	  instead of the historical hard-coded 0.3.4 string.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.6.
	* Remove tst-syscall-runner.sh and tst-syscall-io-runner.sh from tests.
	* Keep examples/syscalls as a manual user/documentation tree, use installed
	  mcpu-* tools from PATH, and disable GNU make built-in suffix rules there.
	* Replace unsupported assembler label-subtraction immediates in examples
	  with MCPU PTR64 arithmetic using LEA/PDIFF.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.5.
	* Add SYS_read, SYS_write, SYS_lseek, SYS_open and SYS_close using the
	  MINIX-style VFS number block 0x100..0x105, leaving 0x104 reserved.
	* Add a per-cpu_context 256-entry guest descriptor namespace with borrowed
	  stdin/stdout/stderr and owned descriptors returned by SYS_open.
	* Add common PTR64 copyin/copyout/copyinstr validation and strict UTF-8
	  pathname validation at the guest/HOST boundary.
	* Add Linux/x86_64/LP64 sysdeps wrappers for POSIX open/close/read/write/
	  lseek with explicit MCPU-to-HOST flag, mode and whence translation.
	* Add examples/syscalls with canonical assembler headers, examples, run
	  scripts and book-oriented README; install headers under the MCPU root.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.4.
	* Add the HOST sysdeps configuration hierarchy for future syscall wrappers,
	  based on the historical LibMPU preconfigure/sysnames/VPATH model.
	* Add architecture preconfigure.ac/preconfigure fragments for i386, PowerPC,
	  SPARC and x86_64; x86_64 distinguishes x32/ILP32 and 64-bit LP64.
	* Add ordered Implies inheritance and GNU make vpath selection through the
	  substituted sysnames variable, with cpu/sysdeps/generic always last.
	* Reject HOST OS/CPU hierarchies not represented by LibMCPU sysdeps instead
	  of accepting a generic-only configuration.
	* Add no syscall wrappers and change no CPU, MELF or SYS_brk semantics.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* LibMCPU 0.3.3: remove tst-version-runner.sh from TESTS and EXTRA_DIST,
	  and remove the runner itself from the release source tree.
	* Keep the centralized --version/--dump-version implementation unchanged;
	  version reporting may be verified directly from the installed tools.
	* No CPU ISA, MELF ABI, linker, loader/runtime or syscall semantic changes.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.2.
	* Make tests/tst-version-runner.sh self-contained when CPU_AS, CPU_LD,
	  CPU_RUN and the other CPU_* tool variables are not exported.  Values
	  supplied by the Automake harness remain authoritative; otherwise the
	  runner resolves freshly built sibling utilities itself.
	* No CPU, MELF, runtime, binary-utility or syscall semantics changed.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.1.
	* Normalize --version output for every installed mcpu-* tool as
	  "<program> (MCPU) <version>" and add --dump-version for a bare version.
	* Add utils/mcpu-version.c/.h as the single implementation of version
	  formatting and link it into all nine command-line utilities.
	* Add a common regression for both version forms and synchronize bilingual
	  manual pages and command help.
	* Keep CPU ISA, frozen MELF ABI v3, linker, loader/runtime and syscall
	  semantics unchanged.

2026-10-04  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.3.0.
	* Start the SYSCALL development stage from the verified LibMCPU 0.2.28
	  binary-utility baseline.
	* Move English manual-page build/install rules from the top-level
	  Makefile.am to man/Makefile.am and Russian rules to man/ru/Makefile.am.
	* Add man and man/ru to the recursive Automake/configure output tree.
	* Keep CPU ISA, frozen MELF ABI v3, linker, loader/runtime, binary-utility
	  and syscall semantics unchanged.

2026-10-03  Andrey V. Kosteltsev  <support@radix-linux.su>

	* LibMCPU 0.2.28: finalize documentation for the verified 0.2.27
	  binary-utility stage without changing CPU/MELF execution semantics.
	* Add English and Russian mcpu-*(1) manual pages for every installed
	  utility and libmcpu(7) overview pages; install localized pages below
	  the Russian man tree.
	* Update both maintained PDF manuals for frozen ABI v3, the complete
	  binary-utility set and the non-ALLOC debug-metadata compatibility rule.
	* Synchronize README.md, NEWS.md and doc/src documentation sources.

2026-10-03  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.27.
	* Add mcpu-objcopy as a MELF-to-MELF structural copy/editor with -j/--only-section, -R/--remove-section, --dump-section, --add-section, --update-section and --rename-section.
	* Restrict mutations to safe non-runtime metadata: added sections are non-ALLOC SHT_PROGBITS, update/rename operate only on safe non-ALLOC PROGBITS, and removal/filtering refuses runtime-critical or ET_REL link-critical sections.
	* Preserve PT_LOAD contents/program headers and frozen MELF ABI-v3 execution semantics; deliberately omit binary/ihex/srec, VMA/LMA, start-address and section-flag conversion modes.
	* Support deterministic static archives member-by-member while preserving their symbol-index semantics; reject ambiguous --dump-section on archive input.
	* Refactor the common MELF section parser/rebuilder from mcpu-strip into mcpu-object-edit.c/.h and use it from both mcpu-strip and mcpu-objcopy.
	* Add regressions for copy/add/dump/update/rename/remove, protected runtime/link sections, strict --only-section filtering, ET_REL relinking, archive editing and command-line errors.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.26.
	* Add mcpu-strip with in-place operation and -o/--output for MELF files and deterministic MCPU archives.
	* Remove ordinary non-allocated SHT_SYMTAB and now-unreferenced ordinary string tables only from ET_EXEC/ET_DYN; preserve ET_REL .symtab/.strtab as required link semantics.
	* Preserve .dynsym, .dynstr, .dynamic, all retained RELA sections, MCPU target/lifecycle metadata, load/model sections and program headers.
	* Rebuild and compact the non-ALLOC metadata tail, rebuild .shstrtab, remap surviving section references and retained symbol st_shndx values, and preserve input file mode.
	* Add regressions for current no-op ET_REL/ET_EXEC/ET_DYN/archive cases and for a synthetic valid ET_EXEC carrying removable ordinary .symtab/.strtab metadata; verify stripping shrinks it and leaves execution unchanged.
	* Keep frozen MELF ABI-v3, linker/runtime behavior, CPU ISA and archive semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.25.
	* Add mcpu-objdump for read-only section headers, full section contents, ordinary/dynamic symbol tables, RELA relocations and MCPU disassembly of MELF ET_REL, ET_EXEC, ET_DYN and UNIX static archives.
	* Add -d/-D/-r/-s/-t/-T/-h/-j with GNU-objdump-like meanings; -j is repeatable and filters section-oriented output.
	* Add __cpu_decode_at() so inspection code can decode an explicit PROGRAM byte buffer without replacing the live CPU context; retain __cpu_decode() as the runtime wrapper.
	* Make disassembly symbol-aware and print retained relocation records beside the instruction that contains each relocation field.
	* Continue through undecodable bytes with explicit .byte output rather than guessing instruction boundaries.
	* Install mcpu-objdump under the relocatable private MCPU bin directory and create the corresponding public relative symlink.
	* Add regressions for the common decoder, section filtering, symbols, dynamic symbols, relocations, disassembly, archives, grouped options and malformed input.
	* Keep frozen MELF ABI-v3, assembler encoding, linker/archive semantics, loader/runtime behavior and CPU execution semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.24.
	* Add mcpu-nm for read-only symbol inspection of MELF ET_REL, ET_EXEC, ET_DYN and UNIX static archives.
	* Read .symtab by default and .dynsym with -D; classify code/data/BSS/read-only/undefined/absolute/common/weak symbols with conventional one-letter codes.
	* Add external/undefined filters, lexical/numeric/reverse/no-sort modes, archive/member display and per-line file prefixes.
	* Install mcpu-nm under the relocatable private MCPU bin directory with the same public relative-symlink policy as the existing tools.
	* Add regressions for ordinary/dynamic symbols, filtering, sorting, ET_EXEC/ET_DYN, static archives, prefixes and malformed input.
	* Keep frozen MELF ABI-v3, mcpu-ld, mcpu-ar archive semantics, runtime loader and CPU ISA unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.23.
	* Add mcpu-ld --static as a library-selection modifier that forces every -lNAME lookup to use libNAME.a without changing the selected output mode.
	* Preserve ABI-v3 --dynamic/--shared output under --static while incorporating selected archive members directly and emitting no DT_NEEDED for them.
	* Preserve directory-major -L search order while skipping shared-only candidates under --static and continuing to later directories for libNAME.a.
	* Accept --static with ABI-v1 and -r, whose -l lookup is already archive-only, and fail rather than falling back to .so when no archive is available.
	* Add dedicated forced-static regressions for ABI-v1, ABI-v3 ET_EXEC/ET_DYN, -r, search order, missing archives and help text.
	* Keep frozen MELF ABI-v3, mcpu-ar archive format, runtime loader, dependency resolver, CPU ISA and runtime symbol-scope semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.22.
	* Add mcpu-ld -r partial relocatable linking, producing one current MELF ET_REL object from multiple ET_REL inputs.
	* Merge like-named sections in input order with alignment, rebase defined symbols and relocation offsets, preserve RELA records, and allow unresolved symbols to remain for a later final link.
	* Preserve LOCAL symbol identity across inputs and apply deterministic GLOBAL/WEAK merging; reject duplicate strong GLOBAL definitions during the partial link.
	* Allow -r to consume static libNAME.a archives with the existing selective extraction semantics; shared libraries are not eligible in relocatable-link mode.
	* Reject final-image-only options and modes with -r, including --dynamic, --shared, STACK/HEAP sizing and --soname.
	* Split release history from README.md into NEWS.md and keep README.md as a concise project/build/tool usage introduction.
	* Update the Russian MELF ABI manual from doc/src for frozen ABI v3, SONAME/NEEDED dependencies, static archives and mcpu-ld -r.
	* Add partial-link regressions covering retained relocations, unresolved references, LOCAL/GLOBAL/WEAK semantics, archive extraction and final-link execution.
	* Keep frozen MELF ABI-v3, runtime loader, dependency resolver, CPU ISA and runtime symbol-scope semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.21.
	* Teach mcpu-ld to consume UNIX static archives containing current MCPU MELF ET_REL members.
	* Allow ABI-v1 -lNAME to resolve libNAME.a; for ABI-v3 --dynamic/--shared search each library directory for libNAME.so first and libNAME.a second.
	* Extract only archive members needed by currently unresolved strong GLOBAL symbols; unresolved WEAK symbols do not trigger extraction.
	* Recompute unresolved symbols after each extraction and rescan the same archive until stable, including backward dependencies on earlier archive members.
	* Preserve one-pass ordering across separate -l operands; repeating an archive request can satisfy references introduced by intervening libraries.
	* Keep statically extracted members out of DT_NEEDED while preserving existing SONAME validation and dependency recording for selected ET_DYN providers.
	* Parse archive member bytes directly with the strict ET_REL reader rather than via temporary files, and keep correctness independent of the optional archive symbol index.
	* Add regressions for indexed/non-indexed archives, selective extraction, intra-archive rescans, WEAK behavior, inter-library order, ABI-v1 archive-only lookup and ABI-v3 .so/.a directory precedence.
	* Keep frozen MELF ABI-v3, runtime loader, CPU ISA, relocation and runtime symbol-scope semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.20.
	* Add mcpu-ar as a deterministic UNIX static-archive manager for current MCPU MELF ET_REL object modules.
	* Support r/q/d/t/p/x operations, standalone s, and c/s/v/D modifiers with traditional combined operation strings such as rcs.
	* Preserve member order; r replaces in place, q appends, and only validated MCPU ET_REL members are accepted.
	* Support short names, BSD #1/<length> extended names, and reading GNU // long-name tables with /offset references.
	* Write a real System-V/GNU-style archive symbol index containing defined GLOBAL/WEAK MCPU symbols; preserve/rebuild an existing index after archive mutations.
	* Make archive output reproducible by using deterministic member metadata and add regressions for create/list/print/extract/replace/append/delete/index/long-name/error behavior.
	* Install mcpu-ar under the relocatable MCPU private bin directory with the same public relative-symlink policy as the other MCPU utilities.
	* Keep mcpu-ld archive consumption, static -l fallback and partial relocatable linking deferred to later releases; frozen MELF ABI3 and runtime behavior are unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.19.
	* Replace mcpu-as historical #line source-location parsing with preprocessing line markers of the form # N, # N "filename" and # N "filename" flags..., with decimal N in 0..2147483647 and trailing flags ignored.
	* Ignore #pragma and #lang without advancing the logical diagnostic line counter; discard all other #... lines as assembler syntax while counting them as ordinary logical source lines.
	* Keep preprocessor source-control details out of mcpu-as --help and document them in the technical documentation instead.
	* Print each mcpu-readelf Section Headers entry on one wide physical line instead of wrapping every section into two lines; keep -W/--wide accepted for compatibility.
	* Add regressions for line-marker flags, filename retention, empty lines, #pragma/#lang counting, generic # lines, obsolete #line behavior and one-line section-header formatting.
	* Keep the frozen MELF ABI-v3, CPU ISA, linker, loader, dependency resolver, relocation and runtime symbol-scope semantics unchanged.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.18.
	* Freeze the completed MELF ABI-v3 wire/runtime dependency contract after the staged SONAME/NEEDED, link-time validation, recursive loading and deterministic symbol-scope work in 0.2.14--0.2.17.
	* Add MCPU_LD_PRELOAD as the environment counterpart of mcpu-run --ldpreload; environment entries are resolved first and command-line entries are appended after them.
	* Preserve rightmost-higher-priority explicit-preload semantics, so equal-strength command-line preloads naturally override environment preloads.
	* Keep MCPU_LD_PRELOAD independent of mcpu-ld.conf, --no-config and --sys-root; it uses the same effective library resolver after search-path/configuration policy has been established.
	* Make the regression environment explicitly start with an empty MCPU_LD_PRELOAD and add dedicated environment-preload and ABI-v3 freeze/end-to-end regressions.
	* Keep ABI-v1/ABI-v2 loader compatibility and make no CPU ISA, MELF-v3 wire-format, SONAME/NEEDED, -L/-l, search-path, relocation or symbol-scope changes.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.17.
	* Define deterministic ABI-v3 runtime symbol scope for mcpu-run: GLOBAL outranks WEAK; explicit --ldpreload is the highest equal-strength scope and remains rightmost-higher-priority; the main executable outranks normal dependencies; normal DT_NEEDED scope is breadth-first and left-to-right.
	* Replace recursive DFS dependency ordering with a stable breadth-first SONAME queue while preserving cycle termination and deduplication.
	* Pass the explicit-preload boundary separately from the resolved module list so the low-level loader does not infer scope classes from incidental path order.
	* Preserve the historical flat-preload behavior of direct cpu_dyn_load() compatibility callers while mcpu-run uses the scoped resolved loader path.
	* Add regressions for main/dependency priority, direct dependency order, explicit-preload override, GLOBAL/WEAK precedence, WEAK-only ordering, direct/transitive scope and diamond dependency graphs.
	* Keep MELF ABI version 3 and make no on-disk format, search-path or link-time -l changes.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.16.
	* Add recursive runtime resolution of ABI-v3 DT_NEEDED dependencies to mcpu-run using the existing MCPU library search policy.
	* Resolve each dependency by SONAME, validate the selected ABI-v3 ET_DYN image and require its DT_SONAME to match the requested DT_NEEDED identity exactly.
	* Resolve transitive dependencies recursively, deduplicate already registered SONAMEs and terminate dependency cycles without duplicate loads.
	* Keep filesystem/configuration search policy in a host-side dependency resolver and pass only the completed module list to a separate resolved low-level load path.
	* Load normal dependencies before explicit --ldpreload modules so the established explicit-preload override behavior remains intact; an ABI-v3 preload with a matching SONAME may satisfy a normal dependency.
	* Preserve the legacy no--l plus explicit --ldpreload workflow unchanged.
	* Add regressions for direct and transitive NEEDED loading, missing transitive dependencies, SONAME mismatch, dependency cycles and preload override of a normal dependency.
	* Convert the maintained pendulum example to the normal ABI-v3 dependency workflow with a librk4 SONAME symlink chain, -lrk4 link and no --ldpreload at runtime.
	* Keep MELF ABI version 3; ordinary dependency-graph symbol-scope policy remains a development item for 0.2.17.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.15.
	* Add mcpu-ld -l NAME / -lNAME for ABI-v3 dynamic outputs; -lNAME searches libNAME.so through explicit -L directories followed by the effective MCPU system library path.
	* Validate each selected provider as a complete ABI-v3 ET_DYN image, read its mandatory DT_SONAME and record that SONAME rather than the development link name or physical pathname in DT_NEEDED.
	* Validate strong undefined imports of ABI-v3 ET_EXEC against the exports of explicitly linked libraries before output is written; unresolved WEAK imports keep their existing optional semantics.
	* Deduplicate repeated direct dependencies by SONAME while preserving first-request order.
	* Permit ABI-v3 ET_DYN outputs to record direct NEEDED dependencies as well; ABI-v1 static output rejects -l.
	* Keep the verified explicit-preload workflow unchanged when no -l operands are supplied; recursive DT_NEEDED runtime loading remains deferred to 0.2.16.
	* Add regressions for SONAME symlink layouts, -L priority, config-based library lookup, missing/malformed providers, missing exports, duplicate SONAMEs and the 0.2.16 runtime boundary.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.14.
	* Introduce development MELF ABI-v3 dependency metadata while preserving ABI-v1 and ABI-v2 loader compatibility.
	* Define SHT_DYNAMIC/.dynamic and the 16-byte MElf64_Dyn wire format with DT_NULL, DT_NEEDED and DT_SONAME tags linked to .dynstr.
	* Make new mcpu-ld --dynamic/--shared outputs ABI-v3; require --soname=NAME for ABI-v3 ET_DYN and reject pathname SONAMEs.
	* Keep the historical ABI-v2 writer internally for compatibility regressions.
	* Extend mcpu-run dynamic parsing to accept ABI-v2 and ABI-v3, validate canonical .dynamic metadata and reject DT_NEEDED explicitly until recursive dependency loading is implemented.
	* Add mcpu-readelf -d/--dynamic and include dynamic metadata in -a.
	* Update dynamic/shared examples and regressions for ABI-v3 SONAME, ABI-v2 compatibility, ABI-v3 explicit preload and negative SONAME cases.
	* No recursive dependency loading, -l handling or NEEDED symbol validation is introduced in this release.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.13.
	* Add a common host-side MCPU library-search resolver shared by mcpu-ld and mcpu-run.
	* Add --library-path=DIR[:DIR...] / --library-path DIR[:DIR...] to mcpu-run; repeated options append explicit search directories in command-line order.
	* Resolve bare --ldpreload names through explicit directories followed by the effective MCPU_LD_SYSTEM_LIBRARY_PATH; pathnames containing '/' keep the historical direct-path behavior.
	* Add -L DIR and -LDIR to mcpu-ld so linker search state and --print-search-dirs use the same common ordering policy.
	* Keep -l deliberately unsupported until dependency metadata can give it real linker/NEEDED semantics.
	* Preserve existing --ldpreload list order and rightmost-higher-priority interposition after name resolution.
	* Add regressions for system/configured lookup, explicit-path priority, search-order changes, empty system paths, missing libraries, invalid path lists and mcpu-ld -L diagnostics.
	* No CPU ISA, MELF ABI, SONAME/NEEDED, relocation or dynamic-loader semantics change in this release.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.12.
	* Add --dump-config and --print-search-dirs diagnostic information actions to mcpu-ld and mcpu-run through the common mcpu_tool_options layer.
	* --dump-config reports the resolved runtime root, configuration enable/disable state, config-file read/not-found state, and effective MCPU_LD_SYSTEM_LIBRARY_PATH.
	* --print-search-dirs reports the effective MCPU library search order; an empty configured system path yields an empty list without fallback.
	* Diagnostic actions require no linker input or executable and honor --no-config and --sys-root exactly as normal execution does.
	* Add regressions for identical mcpu-ld/mcpu-run diagnostics, user overrides, empty search paths, malformed config handling and public help.
	* No CPU ISA, MELF ABI, library-resolution, NEEDED or existing dynamic-linking semantics change in this release.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.11.
	* Add a common relocatable MCPU runtime/configuration layer for mcpu-ld and mcpu-run.
	* Derive the default MCPU root from the real executable and use <runtime-root>/lib as the default MCPU system library tree.
	* Add the mcpu-ld.conf hierarchy <runtime-root>/etc -> /etc/mcpu -> $HOME/.mcpu/etc, with MCPU_LD_SYSTEM_LIBRARY_PATH as the effective system-library override.
	* Install only <runtime-root>/etc/mcpu-ld.conf; keep /etc/mcpu and per-user configuration under administrator/user control.
	* Add --no-config and --sys-root=PATH/--sys-root PATH to mcpu-ld and mcpu-run.  --sys-root implies --no-config and accepts absolute or invocation-relative paths.
	* Introduce mcpu_tool_options plus dedicated mcpu_ld_options and mcpu_run_options structures; pass parsed state explicitly through const option pointers to linker/runner execution components.
	* Add regressions for user-config location, old-path rejection, empty overrides, malformed-config suppression, absolute/relative sys-root and real mcpu-ld/mcpu-run behavior.
	* No CPU ISA, MELF ABI, library-search, NEEDED, or existing dynamic-linking semantics change in this release.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.10.
	* Add mcpu-readelf, a read-only MELF ABI1/ABI2 inspection utility for ET_REL, ET_EXEC and ET_DYN files.
	* Add -h/-l/-S/-s/-r/-A views for MELF file headers, program headers, section headers, symbol tables, RELA relocations and MCPU target/lifecycle metadata; add -e and -a aggregate modes plus GNU-readelf-like long aliases.
	* Install mcpu-readelf under $libdir/mcpu/bin and create the corresponding public symlink in $bindir beside mcpu-as, mcpu-ld and mcpu-run.
	* Add a readelf regression covering ET_REL, ABI-v2 ET_EXEC, ET_DYN, symbols, retained relocations, architecture metadata, --help/--version and rejection of non-MELF input.
	* No CPU ISA, MELF ABI, assembler, linker, loader or runtime semantics changed from 0.2.9.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.9.
	* Rework the Autoconf/Automake bootstrap following the MCPU project convention: project-owned macros live in acsite.m4, m4/ is reserved for external/vendor macros, and bootstrap regenerates Libtool/Autotools files while copying system macro packages.
	* Replace pkg-config dependency checks with AC_CHECK_LIBMPU(1.0.25) and AC_CHECK_LIBMPUIO(1.0.4), using LIBMPU_* and LIBMPUIO_* substitutions supplied by the system macro packages.
	* Install mcpu-as, mcpu-ld and mcpu-run under $libdir/mcpu/bin and create relative public symlinks in $bindir; libmcpu, public headers and pkg-config metadata keep their existing installation locations.
	* Add the make tests convenience target alongside make check and add configuration headlines, summary output and post-configure usage help.
	* No CPU ISA, MELF ABI, assembler, linker, loader or runtime semantics changed from 0.2.8.

2026-10-02  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.8.
	* Normalize C source and header formatting to the established LibMPU project style.
	* Keep dense initializer tables compact where they are intentionally tabular.
	* No functional changes: CPU ISA, MELF ABI, assembler, linker, loader, runtime, tests and examples are unchanged from 0.2.7.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.7.
	* Documentation-only cosmetic correction of 0.2.6.
	* Fix overlapping entries in the MELF canonical-section-name list.
	* Raise the SP line in architecture Figure 9 so it no longer crosses the label text.
	* Remove generated Markdown companions from doc/src/ and from the documentation build.
	* CPU, assembler, linker, loader, runtime, tests and examples are unchanged from 0.2.6.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.6.
	* Documentation-only release.
	* Restyled both maintained manuals with the memoir/Roboto book style.
	* Replaced text pseudo-diagrams with vector TikZ figures and restored real tables.
	* Added the HLL/CRT PROGRAM and MODEL contracts for main(), init(), life(), and optional fini().
	* Added Markdown companions under doc/src/.
	* CPU, assembler, linker, loader, runtime, tests and examples are unchanged from 0.2.5.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.5.
	* Replace the rigid `mcpu-as -c input.s output.o` interface with the normal UNIX-style `mcpu-as -o output.o input.s` command line.
	* Permit the single input source before or after `-o`; keep `-h/--help` and reject obsolete `-c` as an unknown option.
	* Update tests, examples, README and both maintained manuals to the new assembler syntax; CPU ISA and MELF ABI are unchanged.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.4.
	* Documentation-only release; keep library, assembler, linker, loader, runtime, tests, examples, ISA and MELF ABI unchanged from the user-verified 0.2.3 baseline.
	* Rework doc/libmcpu-bytecode-architecture-ru.pdf using the visual language of the LibCPU programming book sources: DejaVu Serif/Sans typography, proper tables and TikZ diagrams for STACK/SP, CALL argument blocks, FP, stack frames and dynamic stack scopes.
	* Restore tabular presentation of instruction/ABI layouts that had regressed into code-like pseudo-tables.
	* Rewrite doc/libmcpu-melf-abi-ru.pdf predominantly in Russian while retaining established technical terms, MELF identifiers and ABI names where appropriate.
	* Keep all editable XeLaTeX sources in doc/src/ and update them for LibMCPU 0.2.4.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.3.
	* Regression-test path correction only; keep the library, assembler, linker, loader, runtime, MELF ABI, documentation and examples unchanged from 0.2.2.
	* Update tests/tst-dynamic-runner.sh to load dynamic-main.s, dynamic-liba.s and dynamic-libb.s from examples/shared-libs/ after the 0.2.2 examples reorganization.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.2.
	* Examples/documentation-layout release only; keep cpu/, utils/, include/ and tests/ implementation sources unchanged from the verified 0.2.1 release.
	* Move editable documentation sources and build-docs.sh from doc/ to doc/src/, add doc/src/README, and leave only the maintained PDF manuals directly under doc/.
	* Add build/run help to every assembler example source.
	* Move dynamic-liba.s, dynamic-libb.s and dynamic-main.s to examples/shared-libs/, replace the former examples/_as.sh, examples/_ld.sh and examples/_run.sh workflow with examples/shared-libs/Makefile.
	* Move check-sys-brk.s and the three _ld_check-sys-brk-*.sh scripts to examples/sys-brk/ and adjust their utility paths to ../../utils/.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.1.
	* Documentation-and-examples release only; keep cpu/, utils/, include/ and tests/ implementation sources unchanged from the verified 0.2.0 release.
	* Replace doc/libmcpu-bytecode-architecture-ru.pdf with a new standalone current architecture/ABI reference and distribute its XeLaTeX source plus generated opcode/RCONST tables.
	* Replace doc/libmcpu-melf-abi-ru.pdf with a new standalone MELF reference whose section numbering starts at 1 and which integrates static ABI v1, startup-dynamic ABI v2, lifecycle, STACK/HEAP/startup contracts and the corrected LOCAL ET_DYN runtime-relocation rule.
	* Supersede the temporary 0.2.0 MELF erratum because its normative correction is now incorporated directly into both maintained PDF manuals.
	* Add doc/build-docs.sh and shared TeX style source so both PDF manuals are reproducibly rebuilt with XeLaTeX.
	* Add the user-verified examples/pendulum/ experiment unchanged from the supplied examples.tar.xz: pendulum ET_EXEC plus rk4.so ET_DYN, Makefile/build wrapper and TRACE experiment script.

2026-09-24  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.2.0.
	* Correct MELF ABI-v2 ET_DYN local relocation semantics: references to LOCAL symbols inside a shared object remain non-preemptible, but are retained as LOCAL runtime relocations so the startup linker can add the final runtime base of the referenced PROGRAM or DATA segment.
	* Emit LOCAL ET_DYN relocation targets in .dynsym ahead of GLOBAL/WEAK symbols and set the .dynsym sh_info boundary accordingly.  LOCAL dynamic symbols are never admitted to the interposition namespace.
	* Teach the startup dynamic loader to accept LOCAL .dynsym entries and resolve LOCAL runtime relocations strictly against the originating module instead of performing GLOBAL/WEAK winner lookup.
	* Add low-level PROGRAM/DATA rebasing regression coverage to tst-dynamic and an assembler/linker/loader end-to-end regression with an exported ET_DYN entry calling a private local helper after non-zero module placement.
	* Add doc/libmcpu-melf-abi-0.2.0-erratum-ru.txt as the normative correction to the pre-0.2.0 PDF wording for LOCAL ET_DYN relocations.
	* Preserve ABI-v1 static linking and the established ABI-v2 GLOBAL/WEAK interposition rules; MELF ABI version remains 2 because this release corrects the implementation of the existing ET_DYN runtime-address contract rather than introducing a new container ABI.

2026-09-22  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.9.
	* Add mcpu-run lifecycle stage actions --before-run, --after-init, --on-step and --after-run without changing the MCPU ISA or MELF ABI; existing END boundaries provide INIT/LIFE/FINI synchronization points and BEFORE_RUN is host-side.
	* Add typed comma-separated scalar/register print and set actions for registers and DATA/CONTROL/HEAP/INPUT/OUTPUT/TRACE.  One print action emits its scalar values on one line separated by spaces; repeated stage options remain ordered and supported.
	* Parse set-int-* and set-real-* values through LibMPUIO mpu_sscanf(), validate a whole action before applying its writes, and preserve guest PSW across host-side numeric parsing.
	* Keep raw stage access read-only: print-raw-* accepts exactly one dump per action, supports the existing binary raw-size suffixes and boundary clipping, and no set-raw-* actions are provided.
	* Add the explicit mcpu-run -- separator: the preferred syntax is "mcpu-run [runtime-options] -- executable [program-args...]" while the previous no-separator form remains compatible.  Tokens after -- are passed to the guest argv unchanged.
	* Add examples/life-print.s for two-register one-line output after every LIFE END and examples/argc-argv.s for argc/argv inspection with option-looking guest arguments.
	* Add end-to-end regression coverage for stage ordering, empty INIT stage behavior, LIFE actions, FINI-before-AFTER_RUN ordering, typed set/print lists, explicit -- argv separation, raw-list rejection and the deliberate absence of set-raw-*.
	* Document mcpu-run lifecycle test-bench actions, explicit argv separation and their relationship to MELF lifecycle boundaries in both bundled PDF documents.

2026-09-22  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.8.
	* Extend mcpu-run integer, real and raw-memory inspection to CONTROL, HEAP, INPUT, OUTPUT and TRACE in addition to the existing DATA/register output options.
	* Add binary K/KiB, M/MiB and G/GiB suffixes to the <bytes> operand of every mcpu-run --raw-* option, with overflow checks and clipping at the selected memory/section boundary.
	* Keep --raw-data bounded by the linked .data section while CONTROL/INPUT/OUTPUT/TRACE raw dumps are bounded by their segment sizes and HEAP raw dumps by the prepared HEAP size.
	* Align the mcpu-run --help option descriptions in one vertical column and document the --raw-* binary size suffixes there.
	* Add end-to-end regression coverage for integer/real inspection of DATA, CONTROL, HEAP, INPUT, OUTPUT and TRACE, all six raw-size suffix spellings, clipping, boundary rejection and overflow rejection.
	* Add the verified SYS_brk examples check-sys-brk.s and the grow/limit/shrink link-and-run scripts; keep the legacy MELF ABI-v1 main-basic invocation commented out in examples/_run.sh.

2026-09-22  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.7.
	* Add the first MCPU system-call ABI with the zero-operand SYSCALL opcode and fixed overlapping-register syscall area at the top of the register file.
	* Add SYS_brk as system call number 10, dispatched inside LibMCPU through a local table of function pointers; unimplemented system-call numbers return -ENOSYS.
	* Add _heap_brk as the architectural upper boundary of guest-accessible HEAP memory and implement internal __cpu_heap_brk() with immutable _heap_limit, transactional host-backing growth, stable PTR64 offsets and deterministic zeroing of released memory on shrink.
	* Define linker-owned _end as the non-preemptible executable HEAP pointer HEAP:16; _end is also the initial and minimum program break.
	* Extend mcpu-ld size parsing with binary K/KiB/M/MiB/G/GiB suffixes for STACK/HEAP options.
	* Document the HEAP/program-break model, _end, SYSCALL register ABI, SYS_brk semantics and future -host_errno syscall convention in both bundled PDF documents.
	* Add unit and end-to-end regressions for SYSCALL/SYS_brk, HEAP shrink/regrowth zeroing, host-backing growth, immutable HEAP limits, overlapping syscall registers, linker-defined _end in static/dynamic ET_EXEC, and binary size suffixes.

2026-09-22  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.6.
	* Edit the bundled PDF documentation for the LibMCPU rename: replace legacy LibCPU/libcpu.h/cpu-elf.h and cpu-as/cpu-ld/cpu-run references with LibMCPU/libmcpu.h/mcpu-elf.h and mcpu-as/mcpu-ld/mcpu-run, and update tools/cpu-* source paths to utils/mcpu-* where they appear.
	* No library, ISA, MELF ABI, assembler, linker, loader or runtime semantics changed from 0.1.5.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.4.
	* Packaging-only release; preserve the working 0.1.3 assembler, linker, loader, runtime, ABI and tests source code unchanged.
	* Regenerate the distributed Autotools files after the version bump and ensure generated files are newer than their input files, so an ordinary release build does not try to invoke aclocal/automake/autoconf.
	* No MELF ABI v1/v2, ISA, CALL ABI, #line, dynamic-linking or runtime semantics changed from 0.1.3.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.3.
	* Fix mcpu-as #line logical-line accounting across physically empty source lines.
	* Keep the assembler core diagnostic counter synchronized with physical source lines by preserving empty lines as whitespace-only parser lines; assembly semantics are unchanged.
	* Add tst-line-runner.sh regressions for native physical-line counting and the reported preprocessor shape: #line 4 "dyn.s", an empty line, .text, a label, then an error must report dyn.s:7.
	* Document that the logical #line counter advances across empty and comment-only lines.
	* No MELF ABI v1/v2, ISA, CALL ABI, dynamic-linking or runtime semantics changed from 0.1.2.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.2.
	* Fix tests/tst-immediate-exactness-runner.sh for the source-location diagnostics introduced in 0.1.1: mcpu-as errors now have the form "mcpu-as: file:line: error: ...", so the regression checks the source filename and line number instead of the obsolete contiguous "mcpu-as: error:" prefix.
	* No assembler, MELF ABI, ISA, dynamic-linking or runtime semantics changed from 0.1.1.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.1.
	* Add mcpu-as -h/--help with a detailed assembler/source-location help page.
	* Add mcpu-as #line decimal source-location directives for future preprocessor output.
	* #line controls the logical line of the immediately following source line and optionally changes the diagnostic filename; omitting the filename preserves the previous one.
	* Parse #line numbers strictly in decimal even with leading zeroes and accept the C99/C++11 range 0..2147483647.
	* Do not add __LINE__/__FILE__ assembler symbols; #line affects diagnostics only and is accepted for both .s and .S input names.
	* Add runner regression coverage for --help, filename/line remapping, decimal leading zeroes, zero and range rejection.
	* No MELF ABI v1/v2, ISA, CALL ABI, dynamic-linking or runtime semantics changed from 0.1.0.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.1.0.
	* Add MELF ABI version 2 startup dynamic linking while retaining ABI-v1 static ET_EXEC compatibility.
	* Add mcpu-ld --shared for ET_DYN helper libraries and mcpu-ld --dynamic for ABI-v2 ET_EXEC.
	* ABI-v2 ET_DYN permits only .text/.data/.bss allocated content and has no lifecycle, model segments, STACK or HEAP.
	* Add .dynsym/.dynstr as the runtime symbol ABI, separate from optional developer .symtab/.strtab information.
	* Retain GLOBAL/WEAK runtime RELA records in ABI-v2 outputs; LOCAL and lifecycle references remain statically bound.
	* Add mcpu-run --ldpreload=a.so:b.so explicit colon-separated preload list; no DT_NEEDED, implicit search paths, PLT/GOT, lazy binding or dlopen API.
	* Implement startup interposition immediately: strong GLOBAL beats WEAK; among equal bindings the rightmost preload wins, including preemption of definitions already present in main.
	* Keep _start/_life/_fini executable-private and non-preemptible.
	* Shared libraries have per-segment relative PROGRAM/DATA images; mcpu-run assigns final process bases and preserves one process-owned DATA NULL guard.
	* Permit explicit cross-library and cyclic symbol resolution because all preload modules are parsed before runtime RELA application.
	* Add dynamic-link regression coverage, shared/dynamic examples and strict --shared STACK/HEAP-option rejection.
	* Extend both doc/*.pdf references with a detailed MELF ABI-v2 startup-linking chapter and preserve the complete architecture PDF outline.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.25.
	* Add mcpu-run --int-data=<bits>@<addr> to print a signed integer object from DATA memory.
	* Add mcpu-run --raw-data=<bytes>@<addr> to dump bytes from the linked .data section with a 16-byte hexadecimal/ASCII view.
	* Raw DATA dumps are clipped at the end of .data and never read into .bss or other DATA-segment bytes.
	* Extend runner regression coverage for integer DATA output, raw dump formatting and .data-bound clipping.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.24.
	* Add the missing <stdint.h> include to tests/tst-melf.c so UINT64_MAX is declared explicitly.
	* Add -h/--help handling and detailed option help to mcpu-ld, matching mcpu-run style.
	* Add lifecycle-main-model.s demonstrating .init, CONTROL/INPUT/OUTPUT/TRACE, McpuStartup argc/argv handling and a normal main() that increments a counter by 2.
	* Add lifecycle-main-basic.s demonstrating the same _life -> main(argc, argv) bridge with _start_life: and ordinary DATA, without .init or model segments.
	* No MELF ABI or CPU execution semantics changed from 0.0.23.

2026-09-21  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.23.
	* Correct MELF target endian selection to use LibMPU boolean byte/word-order selector macros; MPU_BYTE_ORDER/MPU_WORD_ORDER themselves are numeric order tags (for example 1234), not 0/1 selectors.
	* Replaced the temporary LCPUOBJ1/raw executable path with the permanent MELF (MCPU ELF-derived) static object/executable ABI.
	* Added public include/mcpu-elf.h covering MELF identification, headers, sections, symbols, RELA relocations, target/lifecycle metadata, Program Headers and loader/startup contract.
	* mcpu-as -c now emits MELF64 ET_REL with .symtab/.strtab/.shstrtab, SHT_RELA, .mcpu.target and section-relative symbols.
	* Added .weak symbol declarations and ELF-style strong/weak resolution; unresolved weak pointer relocations with zero addend resolve to NULL.
	* Added real SHT_NOBITS .bss support; linker places .bss after file-backed DATA and preserves contribution alignment without storing zero payload bytes.
	* mcpu-ld now consumes MELF ET_REL, applies all five fixed relocation kinds, inserts the single DATA NULL guard and emits complete MELF ET_EXEC images.
	* Added mandatory _start and _life ET_EXEC lifecycle contract, optional _fini and assembler-only _start_life: shorthand for coincident _start/_life when .init is absent.
	* Added .mcpu.target and .mcpu.lifecycle metadata validation and full PTR64 sh_addr/st_value/p_vaddr semantics.
	* Added MELF Program Headers for PROGRAM/DATA/CONTROL/INPUT/OUTPUT/TRACE plus PT_MCPU_STACK and optional PT_MCPU_HEAP with explicit p_maxsz.
	* Removed mcpu-run STACK/HEAP sizing overrides; STACK/HEAP sizes are executable ABI selected by mcpu-ld and recorded in Program Headers.
	* Added persistent McpuStartup ABI with version, argc, argv and guest PTR64 argument strings in the high end of STACK.
	* mcpu-run now validates MELF ET_EXEC before allocating guest memory and follows the rule 'loader validates, never repairs'.
	* Added MELF ET_REL/ET_EXEC, BSS, startup, lifecycle, weak-symbol, relocation and malformed-loader regression coverage.
	* Updated assembler examples for the mandatory lifecycle ABI and MELF toolchain.
	* Expanded doc/*.pdf with the MELF ABI, linker/loader contract, startup ABI and 0.0.23 implementation model.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.22.
	* Added an explicit relocatable-object/linker model before fixing the final ELF representation.
	* Added .global/.globl and .extern symbol declarations; ordinary labels remain local unless exported.
	* Added .ptr for generic target-representation PTR64 data objects; .cptr remains the PROGRAM-pointer form.
	* Added relocation semantics for CODE64, DATA ADDR64, LEA PTR64 immediates and PTR64 data objects.
	* Relocatable expressions are restricted to SYMBOL + signed constant addend; absolute arithmetic remains assembler-evaluated.
	* Added per-object section alignment so linker concatenation preserves leading .align requirements.
	* Moved the DATA NULL guard responsibility to the linker for relocatable objects: each object DATA starts at offset zero, the final image gets one 16-byte guard.
	* Added temporary .lco development relocatable container with canonical MSB-first metadata and raw architectural section payloads.
	* Added mcpu-as -c and mcpu-ld development tools; mcpu-ld emits the existing raw executable sidecars for mcpu-run.
	* Added cross-object global/extern resolution, duplicate/undefined-symbol diagnostics, relocation application and lifecycle entry resolution.
	* Added relocatable/linker regression coverage and a two-module example returning 42.
	* Expanded the architecture PDF with symbols, bindings, addends, relocation types, alignment, DATA guard ownership, linker algorithm and future ELF mapping.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.21.
	* Assign PTR64 selectors 0x3..0x7 to CONTROL, INPUT, OUTPUT, TRACE and HEAP; selectors 0x8..0xF remain reserved.
	* Add independent anonymous mmap-backed CONTROL/INPUT/OUTPUT/TRACE/HEAP regions with guest access permissions.
	* Define TRACE as the current telemetry frame; accumulated history belongs to the runtime collector.
	* Add .control/.input/.output/.trace data sections and .init/.fini executable sections; .init/.text/.fini share one PROGRAM address space.
	* Define lifecycle ABI entries _start, _life and _fini and expose their numeric raw-image metadata.
	* Add END for cooperative phase completion and EXIT r32 for graceful final termination, plus explicit stop-reason/exit-status API.
	* Generalize LEA to emit a complete PTR64 immediate for data-like and PROGRAM labels without changing its binary size.
	* Add runtime HEAP SEG=0x7 with a 16-byte low guard, initial size and maximum limit; allocator and dynamic-growth services remain library/runtime concerns.
	* Extend mcpu-run with --heap-size, --heap-limit, --init-only and --steps and add a model lifecycle example/regression.
	* Keep the emitted .meta file a temporary raw-development manifest, not the final object/executable format.
	* Expand the architecture PDF with the model-memory map, lifecycle state/entry ABI, END/EXIT/HALT/fault distinctions, permissions, LEA PTR64 behavior and future heap allocator design.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.20.
	* Fix assembler source encoding as UTF-8.
	* Add .ucs2 for strict UTF-8-to-UCS-2 conversion with target-endian
	  16-bit DATA objects and a terminating zero code unit.
	* Add locale-independent .utf8 for exact UTF-8 bytes plus terminating zero.
	* Add raw .byte directive and .int as an alias of .integer.
	* Extend .integer/.int to accept value lists.
	* Add section-independent .equ absolute symbols with forward .equ references.
	* Add integer arithmetic expressions with +, -, *, /, %, unary +/- and
	  parentheses; DATA/CODE address fixups accept section-label expressions.
	* Add symbolic register addresses such as r64@table_ptr and expression
	  addresses such as r64@(table_ptr+8).
	* Add assembler directives/expressions regression coverage and example.
	* Expand the architecture PDF with the assembler/preprocessor boundary,
	  string encodings, expression grammar and directive semantics.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.19.
	* Enforce exact assembler immediate semantics for LDI/LDR/LDC.
	* LDR r32 literals must be exactly representable as Real32; r64 and
	  wider destinations must be exactly representable as Real64.
	* LDC components must be exactly representable as Real32; c64 remains
	  the minimum complex destination width.
	* LDI rejects signed-value loss in destinations narrower than 64 bits
	  and values outside signed Integer64 immediate range.
	* Diagnostics direct wider/higher-precision constants to DATA directives
	  and LOAD.
	* Add immediate-exactness regression tests and documentation.
	* Preserve PSW[15:0] around LibMPU conversion helpers used by LDI/LDR/LDC,
	  ICVT/RCVT, integer<->Real conversion, CCVT and CRTOC.
	* Add conversion-flag regression coverage so conversion implementation
	  details cannot clobber guest status flags.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.18.
	* Audited LibMCPU opcodes against the configured LibMPU 1.0.25 public value-level API.
	* Added all remaining non-modular integer shifts/rotates, INC/DEC/XCHG, copy/convert, full multiply, quotient+remainder divide and bit-length instructions.
	* Extended decoded instructions to four operands for IDIV/ISDIV.
	* Added missing Real sign/copy/compare, decomposition, rounding, remainder, log1p/expm1, inverse hyperbolic, integer/Real conversion and classification instructions.
	* Expanded RCONST with EPSILON, InD, signed NaN/Inf/min/max and signed-zero generators while retaining the complete mathematical constant family.
	* Added Complex real/imag extraction, Real-to-Complex, general/polar construction, conjugate, abs/norm/arg, equality predicates and copy/convert instructions.
	* Deliberately excluded modular arithmetic, textual conversion, Real-format metadata queries and LibMPU runtime/flag accessors from the CPU ISA.
	* Added direct LibMPU-vs-LibMCPU coverage regression and an executable assembler audit example.
	* Expanded the architecture PDF with the complete coverage matrix, instruction forms, width rules and assembler examples.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.17.
	* Fixed PTR64 comparison conventions: full-width equality and same-selector PDIFF ordering.
	* Fixed the normal stack ABI red-zone size at zero bytes.
	* Fixed reserved PTR64 selector rules for non-dereferencing versus address-space operations.
	* Added generic BSWAP raw-byte reversal for equal-width r8..r65536 register views.
	* BSWAP preserves PSW and uses source-snapshot semantics for in-place operation.
	* Added pointer-policy, reserved-segment and BSWAP regression coverage plus a runner example.
	* Expanded the architecture PDF with normative pointer comparison, red-zone, reserved-segment and external-byte-order guidance.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.16.
	* Fixed the split byte-order ABI: PROGRAM fields are canonical MSB-first, architectural data objects follow the configured LibMPU target representation.
	* Added __cpu_code_get_u16/u32/u64 and __cpu_code_put_u16/u32/u64 helpers for canonical bytecode fields.
	* Added __cpu_data_get_u16/u32/u64 and __cpu_data_put_u16/u32/u64 helpers for target data-object representation.
	* Exposed LibMCPU target byte-order/word-order aliases derived from LibMPU in libmcpu.h.
	* Reworked decoder, pointer/stack/control-flow object accesses and assembler fixups to use the explicit code/data helper domains.
	* Made .cptr the canonical assembler directive for PROGRAM PTR64 DATA objects; retained .codeptr as a compatibility alias.
	* Added byte-order/object-representation regression coverage for IMM64, integer/real/complex DATA objects, PTR64, CALL return PC and LOAD/BMOV/LOAD byte preservation.
	* Expanded the architecture PDF with the normative byte-order/object-representation model and assembler examples.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.15.
	* Fixed the normal-function PSW calling convention without adding PSW-writing opcodes.
	* Defined PSW[15:0] (all LibMPU arithmetic/status flags) as volatile across CALL.
	* Defined TF, IF and MODE as persistent control state that a normal callee must preserve.
	* Classified HF as execution state outside the ordinary function-call save/restore contract.
	* Kept CALL, CALLP and RET themselves PSW-neutral: they perform no hidden PSW save/restore.
	* Added public ABI masks for volatile status, persistent control and execution-state PSW domains.
	* Added PSW call-ABI regression tests and an assembler example showing callee flag clobbering.
	* Expanded the architecture PDF with normative PSW calling-convention rules and examples.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.14.
	* Added JMPP r64(PROGRAM PTR64) indirect jump instruction (opcode 0x4003).
	* Added CALLP r64(PROGRAM PTR64) indirect call instruction (opcode 0x4012).
	* CALLP pushes the same raw 64-bit next-PC CODE64 used by direct CALL; RET is unchanged.
	* Added atomic PROGRAM-pointer/range/stack validation for indirect control flow.
	* Added assembler JMPP/CALLP syntax with physical r64 operand checks.
	* Added .codeptr CODE-label DATA directive for PROGRAM PTR64 tables and forward fixups.
	* Added indirect-control assembler example covering CALLP and JMPP through a DATA table.
	* Added decoder/executor/fault/atomicity/.codeptr regression coverage and runner test.
	* Expanded the architecture PDF with indirect control-flow formats, detailed state transitions and jump-table pattern.

2026-09-20  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.13.
	* Replaced malloc-backed PROGRAM/DATA/STACK buffers with independent anonymous mmap() mappings.
	* Added separate internal architectural size and page-rounded host mapping capacity for every segment.
	* Added __cpu_program_protect(); PROGRAM is writable while loading and read-only after protection.
	* mcpu-run now loads .code/.data with open/fstat/read into anonymous mappings; image files are never mmap()ed.
	* Added 16-byte ABI maximum natural alignment, stack/call alignment and argument-block alignment constants.
	* Defined NULL PTR64 as all zero and reserved DATA[0..15] as the assembler NULL guard.
	* LOADP/STOREP/BMOV dereference of NULL now raises CPU_EXEC_POINTER_FAULT.
	* The assembler reserves the 16-byte DATA NULL guard and retains explicit-only .align semantics with no implicit directive alignment.
	* Updated ABI examples to use 16-byte call argument blocks where required and changed the real4096 example from .align 512 to ABI-natural .align 16.
	* Added anonymous-mmap/page-alignment/PROGRAM-protection regression coverage.
	* Expanded the architecture PDF with host-backing rules, DATA NULL guard, alignment/data-layout rules and formal argument-block layout.
	* HEAP is explicitly outside DATA and remains reserved for a future independent memory segment.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.12.
	* Added memory-to-memory block-copy instructions BMOV and BMOVI.
	* BMOV uses a runtime unsigned r64 byte count; BMOVI embeds an unsigned IMM64 byte count.
	* Block copies use memmove semantics, including overlap inside one architectural segment.
	* DATA and STACK are readable/writable block-copy spaces; PROGRAM is readable but never writable.
	* Added complete-range validation before modification, preserving destination memory on faults.
	* Added block-copy assembler support, example and regression tests.
	* Expanded the architecture PDF with compiler lowering for struct assignment, by-value aggregates and VLA/runtime copies.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.11.
	* Added dedicated 64-bit architectural FP as a STACK byte offset.
	* Empty allocated STACK now initializes SP = FP = stack_size.
	* Added PUSHFP, SETFP, RESTSP and POPFP frame-management instructions.
	* Added LDFP, STFP and LEAFP signed FP-relative addressing instructions.
	* Added SETSP for installing a validated STACK PTR64 as the dynamic stack top.
	* Added atomic bounds/fault handling for FP/SP management operations.
	* Added optional-FP prologue/epilogue and dynamic stack allocation ABI rules.
	* Added frame-pointer/dynamic-stack assembler example and regression tests.
	* Expanded the architecture PDF with compiler-oriented frame/VLA examples and diagrams.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.10.
	* Added PTR64 byte-offset arithmetic: PADD, PADDI, PSUB, PSUBI and PDIFF.
	* Pointer arithmetic preserves the 4-bit segment selector and operates only on the 60-bit offset.
	* Added signed OFF64 immediate forms and signed r64 displacement forms.
	* Added same-segment signed byte difference with PDIFF.
	* Added atomic 60-bit pointer overflow/underflow checks and PSW preservation.
	* Switched assembler signed-64 parsing paths to LibMPU fixed __mpu_int64_t values.
	* Added pointer-arithmetic assembler example and regression tests.
	* Updated the architecture PDF with normative pointer-arithmetic semantics and diagrams.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.9.
	* Added PTR64 segmented virtual pointers: 4-bit segment + 60-bit byte offset.
	* Defined DATA, STACK and read-only PROGRAM pointer segments; reserved 0x3..0xf.
	* Added LEA, LEASP, LOADP and STOREP machine instructions and assembler syntax.
	* Added public PTR64 construction/inspection helpers and pointer-fault status.
	* Fixed the C-like ABI for scalar/pointer/aggregate arguments and stack locals.
	* Fixed hidden PTR64 caller-provided storage for struct/union return values.
	* Added pointer and aggregate ABI examples and regression tests.
	* Rebuilt the architecture PDF with detailed PTR64 and C-like ABI diagrams.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.8.
	* Added CALL CODE64 and RET machine instructions.
	* CALL pushes the 64-bit next PC on STACK; RET pops it back to PC.
	* Added right-to-left stack argument convention and caller cleanup ABI.
	* Added 8 KiB Return Value Area at 0x7e000..0x7ffff.
	* Added canonical ABI return-register helper and public return-area constants.
	* Added CALL/RET assembler support, example and regression tests.
	* Updated the architecture PDF with detailed CALL ABI diagrams and examples.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.7.
	* Added malloc-backed STACK memory and downward-growing SP semantics.
	* Added signed 64-bit stack displacement encoding (OFF64).
	* Added PUSH, POP, LDSP, STSP and ADJSP machine instructions.
	* Added STACK bounds checking with atomic stack faults.
	* Added stack syntax to the test assembler and stack regression tests.
	* Added --int-reg and --stack-size options to mcpu-run.
	* Updated the architecture PDF with STACK, SP and SP-relative addressing.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.6.
	* Added 64-bit PROGRAM branch address encoding (CODE64).
	* Added JMP, JSET and JCLR machine instructions.
	* Added PSWBIT8 selectors for individual PSW flags.
	* Added forward/backward CODE labels to the test assembler.
	* Added JZ/JNZ/JC/JNC/JO/JNO/JS/JNS assembler aliases.
	* Updated __cpu_step() PC handling for taken branches.
	* Added control-flow example and regression test.
	* Updated the architecture PDF with CODE64 and branch semantics.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.5.
	* Require LibMPU 1.0.25 or later.
	* Added mcpu-run utility for loading and executing .code/.data images.
	* Added LibMPUIO 1.0.3 dependency for mcpu-run real-number output.
	* Added --real-reg, --real-data and --digits mcpu-run options.
	* Added 4096-bit 2.0 + PI assembler/runner example and regression test.

2026-09-19  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.4.
	* Added REG24, OPCODE16, IMM64 and ADDR64 machine encodings.
	* Added malloc-backed PROGRAM and DATA memory to the CPU context.
	* Added bytecode decoder, single-step and run execution.
	* Added LDI, LDR, LDC, LOAD, STORE and RCONST.
	* Added real and complex LibMPU-backed instruction families.
	* Added source-level c<bits>@addr complex views with physical width semantics.
	* Added test assembler and DATA directives for integer, real and complex constants.
	* Added detailed bytecode/operand architecture PDF in doc/.
	* Added bytecode and assembler regression tests.

2026-09-18  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.3.
	* Added decoded instruction and operand representation.
	* Added common instruction executor.
	* Added NOP, HALT, MOV and CLR instructions.
	* Added IADD, IADC, ISUB and ISBB integer instructions using LibMPU backend.
	* Added instruction/operand/register validation in the executor.
	* Added instruction and integer FLAGS regression test.

2026-09-18  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.2.
	* Added physical register-view resolver for r8 ... r65536.
	* Added register width, natural-alignment and bounds validation.
	* Added register-file width/alignment/bounds regression test.
	* Added overlapping register-view regression test.

2026-09-18  Andrey V. Kosteltsev  <support@radix-linux.su>

	* Version 0.0.1.
	* Added thread-local CPU context with 512 KiB register file.
	* Added PC, SP and logical 32-bit PSW integration with LibMPU flags.
	* Added HF, TF, IF and MODE control/status fields.
	* Added context/PSW regression test.