Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Python recompile Date: Fri, 07 Mar 2025 11:52:16 -0800 Organization: None to speak of Lines: 26 Message-ID: <875xkk62kv.fsf@nosuchdomain.example.com> References: <20250304092827.708@kylheku.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Fri, 07 Mar 2025 20:52:21 +0100 (CET) Injection-Info: dont-email.me; posting-host="fe233383e8bda590fd9814f8824f4908"; logging-data="3898784"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+9eeWGayJc2hZrm9FmeOjw" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:2I15fccbqQ/CFXSPkiFy8dxjvPU= sha1:tH65CbQq7yGOsn7SuzWXObYY5ts= Bytes: 2606 bart writes: [...] > gcc generates a.exe so needs an extra option for that, but then so > does hello.c. tcc doesn't like '$' in names, so needs that special > option (why doesn't it just allow them?!). Probably because allowing '$' in identifiers is a non-standard extension, and the authors of tcc initially chose not to enable it by default. Different C compilers support different dialects when invoked with no additional options, chosen at the whim of the compiler developers. If you want a compiler that conforms to (a specified edition of) the standard *or* if you want to support '$' in identifiers, you have to find out how to do that for each compiler you're using. There's no requirement for any compiler to support any such extensions at all. But you know all that. Incidentally, tcc on my Ubuntu system does allow '$' in identifiers by default. It was enabled by default in release 0.9.27; 0.9.26 didn't have the option. You must be using some intermediate version. -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */