Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <20240702173023.907@kylheku.com>
Deutsch   English   Français   Italiano  
<20240702173023.907@kylheku.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Kaz Kylheku <643-408-1753@kylheku.com>
Newsgroups: comp.lang.c
Subject: Re: Baby X is bor nagain
Date: Wed, 3 Jul 2024 00:47:26 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 67
Message-ID: <20240702173023.907@kylheku.com>
References: <v494f9$von8$1@dont-email.me> <v5cblg$11q0j$1@dont-email.me>
 <gEieO.108089$ED9b.25598@fx11.iad> <20240625113616.000075e0@yahoo.com>
 <mUzeO.141609$Cqra.55051@fx10.iad> <v5elql$1jmii$1@dont-email.me>
 <m3BeO.24907$Gurd.16179@fx34.iad> <v5empd$1jndv$2@dont-email.me>
 <v5eph4$1k6a9$1@dont-email.me> <87ed8jnbmf.fsf@bsb.me.uk>
 <v5jhls$2m7np$1@dont-email.me> <v5jm32$2nqvp$1@dont-email.me>
 <v5k3v2$2qllm$1@dont-email.me> <v5kfst$2svt3$1@dont-email.me>
 <v5kmlm$2u918$1@dont-email.me> <20240627201830.854@kylheku.com>
 <v5m2nl$39qob$3@dont-email.me> <87msn1l3e5.fsf@bsb.me.uk>
 <v5udks$13tjn$1@dont-email.me> <87bk3flty5.fsf@bsb.me.uk>
 <v61789$1mme1$1@dont-email.me> <87bk3f8hy5.fsf@bsb.me.uk>
 <v625m8$1rn2r$1@dont-email.me>
Injection-Date: Wed, 03 Jul 2024 02:47:26 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="30e244ac737476d78edd2cd6194d0a15";
	logging-data="1960897"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18zPFF+r3jH7uAjVP7elNQzViBNnpyVwHs="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:poxkTPdSpx/AZ0nD0Z2OfQgZC3k=
Bytes: 3769

On 2024-07-03, bart <bc@freeuk.com> wrote:
> I really, really don't remember. I've tinkered with Linux every so often 
> for 20, maybe 25 years. You used to be able to order a job-lot of CDs 
> with different versions. Few did much.

Every major distro I've ever used going back ti 1995 made it optional
to install just about everything, including the compiler suite.

A very popular desktop distro is Ubuntu. GCC is not a base package in
Ubuntu.

> Then there were various ones I tried under Virtual Box. All had gcc.

You might have been using some ready-to-run preinstalled Virtual Box
appliances, where someone already did the package selection for you and
included the dev tools.

If you have a program that uses a C compiler at run time, you will
have to ask the user to install one.

(If you make it work with something small like tcc, that would be
practical to bundle with your program in a self-contained way.
Doing that with GCC will bloat up your package.)

I 100% agree with you about the horrible compiler bloat.

It's like GCC is pregnant with octuplets: Two database engines (a boy
and a girl), a CAD suite, three operating system kernels, an office
productivity suite, ...

GCC doesn't produce much better code than it did 25 years ago,
and good luck running today's GCC on a machine from back then.

How you write your C still matters today, in spite of all the bloat.

I'e been using this snippet as a "litmus test" for decades:

  void insert_before(node *succ, node *ins)
  {
     ins->prev = succ->prev;
     ins->next = succ;
     succ->prev->next = ins;
     succ->prev = ins;
  }

GCC today generates the same code as some 28 years ago, and
just like 28 years ago, you can shave an instruction off
the target code using:

  void insert_before(node *succ, node *ins)
  {
     node *pred = succ->prev;

     ins->prev = pred;
     ins->next = succ;

     pred->next = ins;
     succ->prev = ins;
  }

For all the bloat and slow compilation, how you code still
matters, and decades-old tricks are still relevant.

-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca