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 <20241125101701.894@kylheku.com>
Deutsch   English   Français   Italiano  
<20241125101701.894@kylheku.com>

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

Path: ...!eternal-september.org!feeder2.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: 80386 C compiler
Date: Mon, 25 Nov 2024 18:23:58 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <20241125101701.894@kylheku.com>
References: <vhvbhf$28opb$1@dont-email.me> <vhvsm9$2bmq9$1@dont-email.me>
 <vi0dt1$2el7m$1@dont-email.me>
Injection-Date: Mon, 25 Nov 2024 19:23:59 +0100 (CET)
Injection-Info: dont-email.me; posting-host="f9977fedc2ffa59bdc86577da413e783";
	logging-data="3073403"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19YDVhVUXW9PMy3HI0IaRvjEx7vxGTISfo="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:YrLsH/Gybxs7YqhdinUMAwPKx/Q=
Bytes: 2429

On 2024-11-24, Paul Edwards <mutazilah@gmail.com> wrote:
> "Janis Papanagnou" <janis_papanagnou+ng@hotmail.com> wrote in message
> news:vhvsm9$2bmq9$1@dont-email.me...
>> On 24.11.2024 15:00, Paul Edwards wrote:
>> >
>> > I have been after a public domain C compiler for decades.
>> > [...] I'm after C90 written in C90.
>>
>> Why formulate the latter condition if you can bootstrap?
>> (Did you mean; written in a "C" not more recent than C90?)
>
> Yes - written in C90 so that it can be maintained with
> just knowledge of C90.
>
> And also written in C90 so that it is written naturally
> for a C90 programmer, not using a subset of C90

But, do yourself a favor and, have it as an extension to allow
non-constant expressions to allow block scoped aggregates:

 void fn(int a)
 {
   int x[3] = { foo(), bar(), a }; /* not in C90 */

(You don't have to use it in the source code of the thing,
so it can be boostrapped by other C90 compilers without
the extension.)

Also, pin down the truncation behavior of / and % to match C99.
(Though, again, without relying on that in the C90 source
of the compiler.)

Define the behavior of a [0] array at the end of a struct,
so that the C90 struct hack is "blessed" in your implementation.
The C99 flexible array member cannot be used, after all.
You can have it so that [0] has the same semantics as C99 []
in that role.

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