On Wed, 20 Aug 2025 19:21:13 +0000, Schmitt, Michael <michael.schm...@dxc.com> 
wrote:

>So here we have a big difference between an optimizing compiler and 
>what an assembler program would do.

Realize C and GO are inefficient despite being optimizing compilers. They are 
missing critical features, the least of which is good assembler integration. 
You can include assembler but it is very painful. Only Unix is written in C.

IBM XL C is not a proper C because of IBM enhancements but is only somewhat 
more efficient.  You don't have a robust OS like z/OS with C. 

MSVC is not a proper C and you do not have MS Windows without it because it has 
a decent assembler.

int main() {
    int counter = 0;

    __asm {
        mov eax, counter   // Move the value of counter into EAX
        inc eax            // Increment EAX
        mov counter, eax   // Store the incremented value back into counter
    }

C and GO ignored critical optimizing logic despite Google GO fixing some minor 
C shortcomings.
1. Assembler code supported using the MSVC implementation. As an FYI, you can 
use offset, length and other C variable attributes. Using zArch MVC makes this 
a single optimized instruction.
2. No compile time support. Macros not supported by GO. C macros are not proper 
macros. CONSTEXPR is an abysmal attempt. Only HLASM has true macros. Simply 
put, the compiler cannot generate compile time code when the programmer does 
not have the ability a tool to provide that logic.

Realize that x86-64 is the market CPU leading architecture. Linux uses between 
an estimated 20% to 40% of x86-64 instructions / capabilities. Linux fails to 
improve on x86-64. It's pops is 5,000 pages. zArch pops is only 2,000 pages but 
a far more robust instruction set.

It's time for a new language that is an efficient hybrid of GO and assembler. 

Reply via email to