| Deutsch English Français Italiano |
|
<86y16pdgcs.fsf@linuxsc.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch <tr.17687@z991.linuxsc.com> Newsgroups: comp.lang.c Subject: Re: Baby X is bor nagain Date: Thu, 27 Jun 2024 18:08:03 -0700 Organization: A noiseless patient Spider Lines: 100 Message-ID: <86y16pdgcs.fsf@linuxsc.com> References: <v494f9$von8$1@dont-email.me> <v53lf7$34huc$1@dont-email.me> <v53vh6$368vf$1@dont-email.me> <v54se1$3bqsk$1@dont-email.me> <20240624160941.0000646a@yahoo.com> <v5bu5r$va3a$1@dont-email.me> <20240624181006.00003b94@yahoo.com> <v5c86d$11ac7$1@dont-email.me> <JEheO.108086$ED9b.74955@fx11.iad> <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> <867ceadtih.fsf@linuxsc.com> <v5krsp$2v9va$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Fri, 28 Jun 2024 03:08:04 +0200 (CEST) Injection-Info: dont-email.me; posting-host="3676fcdb950143c607d286a4991a0048"; logging-data="3146619"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19dSKT4TT5wtc+TU2ZwVh56NFu0Co4EEZQ=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:4iwljj7ix/ti/vItgzg6gZkwoV4= sha1:4p1AUq5exKm4ZT3YAGO35T4nmAQ= Bytes: 5840 bart <bc@freeuk.com> writes: > On 27/06/2024 21:23, Tim Rentsch wrote: > >> bart <bc@freeuk.com> writes: >> >>> On 26/06/2024 13:15, Ben Bacarisse wrote: >>> >>>> bart <bc@freeuk.com> writes: >>>> >>>>> On 25/06/2024 16:12, David Brown wrote: >>>> >>>> ... >>>> >>>>>> I /do/ use Python. I use it when it is an appropriate language to use, >>>>>> which is very different circumstances from when I use C (or >>>>>> C++). Different tools for different tasks. >>>>> >>>>> And yet neither of you are interested in answering my question, which was >>>>> why its simplistic bytecode compiler is acceptable in this scenario, but >>>>> would be considered useless if applied to C code. >>>> >>>> You throw out a lot of these sorts of question, by which I mean >>>> questions that you either /do/ know the answers to or which you /should/ >>>> know the answers to. >>>> >>>> If a software engineering student asked me this sort of "challenge" >>>> question it would immediately become homework: come up with at least two >>>> scenarios in which a simplistic C bytecode compiler would be an >>>> unacceptable tool to use, and two in which Python with a trivial >>>> bytecode compiler would be an acceptable tool to use. In each case >>>> explain why. Anyone who could not would get marked down on the course. >>> >>> I'm not sure what you're implying here. >>> >>> Some here are consistently saying that any compiler whose internal >>> processes are not at the scale or depth that you find in >>> professional', 'industrial scale' products like gcc, clang, icc, is >>> not worth bothering with and is basically a useless toy. >> >> After reading the above I decided to try tcc. I used tcc for >> the first time earlier today. >> >> First I tried using tcc for my most recent project. That >> didn't go anywhere, because that project relies on C11, >> and tcc doesn't support C11. >> >> Next I tried using tcc on a small part of my larger current >> project. That test involves compiling one .c file to produce a >> .o file, and linking with several other .o files to produce an >> executable, and running the executable. The .c file being >> compiled uses C99 and doesn't need C11. >> >> The first thing that came up is tcc doesn't support all of >> C99. There are some C99 features that tcc just doesn't >> understand. > > Which ones? I thought its C99 support was far more complete than > mine. I didn't post to have a conversation about tcc. I just thought people might be interested to hear about the trial. >> In this case the infringements were minor so I >> edited the source to work around the missing features. >> >> The second thing to come up is some language incompatibilities. >> There are language features that tcc understands, sort of, >> but implements them in a way that didn't work with my source >> code. To be fair, a case could be made that what tcc does >> conforms to the C standard. However, the code I had before >> works fine with gcc > > People develop sofware using compilers like gcc, and will naturally do > whatever it takes to make them work with that tool. They might > inadvertently use extensions. I routinely use -pedantic-errors for my compiles, and am totally intolerant of any warning or error messages. I very much doubt my builds use any extensions. >> After doing a trial run with the produced executable, I looked at >> the tcc man page. As best I can tell, tcc simply silently >> ignores the -fPIC option. > > I think that it tries to be a drop-in replacement for gcc, so supports > some of its options, even if they don't do anything. Like -O3. I would say tcc accepts the -fPIC option but does not support it. > Position-independent code seems to be a recent thing with gcc > tools. My tools didn't support it either, until a year ago when I > found out about ASLR. > > For most, PIC isn't a necessity. But tcc supports shared libraries, > and some kinds of relocation, if not full PIC, are necessary. Support for -fPIC is a must-have for that project. I'm not going to spend time investigating possible partial solutions when I already have other options available that are known to work.