From: Steve Nickolas <usotsuki@buric.co>
To: tuhs@tuhs.org
Subject: [TUHS] Re: FD 2
Date: Mon, 30 Jan 2023 11:21:45 -0500 (EST) [thread overview]
Message-ID: <alpine.DEB.2.21.2301301115080.5005@sd-119843.dedibox.fr> (raw)
In-Reply-To: <CAEoi9W60rwcUwOS4wZooZtnRg3cUPbQFR5vDjXnVO0vxRtSMhw@mail.gmail.com>
On Mon, 30 Jan 2023, Dan Cross wrote:
> I think C is a language that people _think_ is simple to understand,
> and perhaps _was_ simple to understand, but is actually remarkably
> subtle and a _lot_ of people don't actually have a great handle on how
> it really works anymore. Particularly now, when the compiler people
> seem to be prizing optimization above all else and so even obvious
> behavior that's technically "undefined" results in unexpected behavior
> (e.g., `if (a > 0 && b > 0 && a*b) < 0) overflow(); // signed integer
> overflow is UB`. Maybe sadly, C hasn't been a portable macro assembler
> for decades now.
I always assume compiler braindeath. Always use parentheses; never assume
any specific order of precedence.
I've actually been bitten by compilers doing unexpectedly stupid things,
so I guard around them. I'll never merge two chars into a short with
c=(a<<8)|b;
I will ALWAYS do this:
c=a;
c<<=8;
c|=b;
because 16-bit MS-DOS compilers will ALWAYS manage to blunder that, though
32-bit compilers get it right (the sane thing to do would be to treat it
as a word bitshift, but the compiler treats it as a byteshift because a is
uint8_t).
I'll never do if (a==b&&c==d), always if ((a==b)&&(c==d)).
I always try to assume the compiler will wreck my code in hilariously
braindamaged ways and code so precisely that it cannot do so.
<snip>
> Imitation is the most sincere form of flattery.
The actual saying continues "...that mediocrity can make to greatness",
which changes the meaning a bit. ;p
-uso.
next prev parent reply other threads:[~2023-01-30 16:22 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-20 22:44 [TUHS] " ron minnich
2023-01-20 22:54 ` [TUHS] " G. Branden Robinson
2023-01-20 22:56 ` Rob Pike
2023-01-20 23:11 ` Larry McVoy
2023-01-20 23:14 ` Rob Pike
2023-01-20 23:22 ` Larry McVoy
2023-01-20 23:13 ` Douglas McIlroy
2023-01-21 3:37 ` Jon Steinhart
2023-01-21 15:42 ` Clem Cole
2023-01-21 17:34 ` Warner Losh
2023-01-21 17:50 ` Warner Losh
2023-01-21 18:26 ` Clem Cole
2023-01-21 18:37 ` Warner Losh
2023-01-22 11:05 ` Jonathan Gray
2023-01-22 21:23 ` Warner Losh
2023-01-22 22:10 ` ron minnich
2023-01-23 7:30 ` arnold
2023-01-23 8:32 ` James Johnston
2023-01-23 8:58 ` G. Branden Robinson
2023-01-23 11:49 ` Brantley Coile
2023-01-23 14:25 ` Ronald Natalie
2023-01-23 17:43 ` Brantley Coile
2023-01-23 16:59 ` Douglas McIlroy
2023-01-24 7:21 ` arnold
2023-01-29 18:51 ` Warner Losh
2023-01-29 19:20 ` Ron Natalie
2023-01-29 20:25 ` Warner Losh
2023-01-30 7:50 ` arnold
2023-01-30 8:09 ` Rob Pike
2023-01-30 15:02 ` Larry McVoy
2023-01-30 15:16 ` Dan Cross
2023-01-30 15:27 ` Larry McVoy
2023-01-30 15:35 ` Dan Cross
2023-01-30 15:45 ` Larry McVoy
2023-01-30 16:09 ` Dan Cross
2023-01-30 16:18 ` Larry McVoy
2023-01-30 19:03 ` Dan Cross
2023-01-30 19:12 ` Brantley Coile
2023-01-30 21:24 ` Larry McVoy
2023-01-30 22:15 ` Rob Pike
2023-01-30 22:50 ` ron minnich
2023-01-30 23:05 ` [TUHS] Child of plan9? (Re: " Bakul Shah
2023-01-31 3:19 ` [TUHS] " Andrew Warkentin
2023-01-30 16:21 ` Steve Nickolas [this message]
2023-01-30 16:27 ` [TUHS] " Larry McVoy
2023-01-30 16:32 ` ron minnich
2023-01-30 16:40 ` Clem Cole
2023-01-30 19:55 ` Lawrence Stewart
2023-01-31 21:27 ` Dave Horsfall
2023-01-30 16:48 ` Theodore Ts'o
2023-01-30 16:57 ` Andy Kosela
2023-01-30 17:04 ` Warner Losh
2023-01-30 20:38 ` Theodore Ts'o
2023-01-30 21:01 ` Warner Losh
2023-01-30 21:10 ` Clem Cole
2023-01-30 16:03 ` Bakul Shah
2023-01-30 16:07 ` Larry McVoy
2023-01-30 16:13 ` Bakul Shah
2023-01-30 16:22 ` Steve Nickolas
2023-01-30 16:17 ` Dan Cross
2023-01-30 16:18 ` Ralph Corderoy
2023-01-30 16:41 ` [TUHS] job control (Re: " Bakul Shah
2023-01-30 19:07 ` [TUHS] " Dan Cross
2023-01-30 13:26 ` John Cowan
2023-01-30 14:30 ` arnold
2023-01-30 0:25 ` Phil Budne
2023-01-30 2:08 ` Warner Losh
2023-01-21 18:27 ` Clem Cole
2023-01-22 10:56 ` Jaap Akkerhuis via TUHS
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.21.2301301115080.5005@sd-119843.dedibox.fr \
--to=usotsuki@buric.co \
--cc=tuhs@tuhs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).