Re: Joy of this, Joy of that

Liste des GroupesRevenir à col misc 
Sujet : Re: Joy of this, Joy of that
De : 186283 (at) *nospam* ud0s4.net (186282@ud0s4.net)
Groupes : comp.os.linux.misc
Date : 26. Nov 2024, 04:59:29
Autres entêtes
Organisation : wokiesux
Message-ID : <_YOcnXSM0Is_2tj6nZ2dnZfqnPednZ2d@earthlink.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
On 11/25/24 4:07 AM, Richard Kettlewell wrote:
"186282@ud0s4.net" <186283@ud0s4.net> writes:
   Note though ... almost NO compu-geeks these days
   know ASM. As such they will not be enlightened
   about 'C' in that fashion. Today's geeks mostly
   start with Python and MIGHT go a little further,
   likely Rust.
>
   Just sayin'
>
   Things changed between 1984 and 2024.
>
   We Old Guys can kinda look at 'C' and see
   the ASM it's going to become. Later gens
   do not.
 It’s a common mental model for C, but it’s not accurate.  The language
spec leaves an awful lot of wiggle room for the generated code to
diverge from the “I can see the assembler” model and compilers take full
advantage of it.
 A simple example, based on a historical Linux kernel vulnerability
(CVE-2009-1897):
      int f(int *xp) {
         int x = *xp;
         if(!xp)
           return 0;
         return x;
     }
 In the “assembler” model it would compile to something like this:
         mov eax,dword ptr [rdi]
        cmp rdi,0
        jne L1
        mov eax,0
     L1:
        ret
 In fact at -O2 the test on xp is optimized out:
         mov eax, dword ptr [rdi]
        ret
 https://godbolt.org/z/caKeTMTxf to play further.
 
   Heh ... much of my 'C' looks like the top example, all
   straight-forward and readable. As I said somewhere, 'C'
   was the neat-o new lang back when I got started in things
   so I strongly trend towards the K&R look and feel even now.
   SO easy to write incomprehensible 'C' !
   I agree that the optimization tech has become VERY good
   these days. That final example shows how tight that
   particular bit CAN be made. How the compiler figures
   that out - NO idea ! Messing with microcontrollers
   can be helpful in teaching how to shrink ASM - ya always
   wanna save a few bytes, a few cycles.
   "Tight memory" means "Only four gigabytes" to the
   Gen-Z/A2 crowd  :-)

Date Sujet#  Auteur
4 Jan 26 o 

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal