Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #127958

Re: Dropping C

Subject Re: Dropping C
Newsgroups comp.lang.c
References <O2brC.21320$dj4.9265@fx07.am4>
From Richard Damon <Richard@Damon-Family.org>
Message-ID <eVhrC.14428$xT.1940@fx13.iad> (permalink)
Organization Forte - www.forteinc.com
Date 2018-03-17 19:54 -0400

Show all headers | View raw


On 3/17/18 12:07 PM, bartc wrote:
> On 16/03/2018 01:36, bartc wrote:
> 
> [Linking to my C compiler project]
> 
>  > Creating a one file C source is proving troublesome
> 
> As well as abandoning support for one-file C sources, I've decided for 
> now to also drop support for generating any C source at all.
> 
> I've only just realised that's making life more difficult rather than 
> simpler:
> 
> * My IDE supports 11 combinations of C compilers [including 32/64-bit 
> variations], which all work a little differently. Generating C that will 
> keep all happy is rare
> 
> * They all have different criteria for what constitute errors and warnings
> 
> * Generating code for a large project that is free of warnings is 
> difficult (and there will always be someone who will ramp it up 
> further). On some compilers, impossible.
> 
> * Working on my C compiler has drawn me in to a world of horrendous 
> looking configure scripts, makefiles, system header files, and source 
> files full of conditional code and dense macros.
> 
>   (For debugging certain apps, I've resorted to working with 
> preprocessed code, so that everything is just there, rather than 
> traipsing all over the source directory and having to keep looking up 
> macro.)
> 
> * There's also the risk that any code I write might be assumed to be 
> undefined behaviour, and turned into something else by a compiler.
> 
> * There's the problem with struct packing, where I need to know 
> /exactly/ how a C compiler might deal with it.
> 
> * And I can't use some original source features I want because C, or 
> some compilers, will have difficult.
> 
> Removing the intermediate C stage cuts right through all these problems.
> 
> (The cost: having to provide my own support for some targets. Not 
> benefiting by passing code through an optimising C compiler.)
> 
> 
>  > I'll put some docs on Github (https://github.com/bartg/langs) when I
>  > have time (it doesn't say much at the moment).
> 
> The C compiler project remains as a curiosity. It can compile my C 
> dialect with no problem, for new code, or for generated code (now no 
> longer used), but it can have a hard time if thrown an arbitrary open 
> source app. Maintaining it seriously is a huge effort.
> 
> Anyway, it is still there as a binary, but I don't know how buildable 
> source can be made available.
> 

One fundamental issues with your goals is that you seem to want your 
code to be warning free, for all implementations and all warning 
settings. This is fundamentally an impossibility. The standard puts NO 
restrictions no the generation of "Warnings", all it talks about are 
"Diagnostics" (things the implementation is required to make some level 
of complaint about, that complaint might be what we call an Error, or 
might just be a Warning), and the implementation is allowed to make any 
other comments it wants (it must 'accept' strictly conforming code, but 
it is allowed to be vocal about holding its nose up at it).

Practically, I have seen instances which would make it very hard if not 
impossible to get totally warning free code, as one implementation might 
suggest adding extra parenthesis to avoid possible confusion operator 
precedence, while if you add them another may complain that you have an 
unneeded parenthesis.

A warning free requirement might make sense with a limited and specified 
set of compilers, which the code is regularly tested against.

You also have a smaller issue with needing to know exactly how the 
compiler will generate certain things (like structs) and these are 
things that the standard doesn't precisely define, in part because it 
wants to allow freedom for implementations to generate efficient code. 
These are often specified in an ABI document, but that isn't normally in 
a form that readily can just be feed into an implementation, so if you 
need that sort of information you are going to need to digest it 
yourself, or generate code to interrogate the implementation.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Dropping C bartc <bc@freeuk.com> - 2018-03-17 16:07 +0000
  Re: Dropping C "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-03-18 00:41 +0800
  Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-17 19:54 -0400
    Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-18 13:19 +1300
      Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 02:42 -0700
    Re: Dropping C bartc <bc@freeuk.com> - 2018-03-18 01:28 +0000
      Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-17 21:41 -0400
        Re: Dropping C bartc <bc@freeuk.com> - 2018-03-18 11:25 +0000
          Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 04:33 -0700
          Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-19 00:05 +0100
            Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 00:24 +0000
              Re: Dropping C Richard Damon <Richard@Damon-Family.org> - 2018-03-18 21:15 -0400
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-18 19:00 -0700
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 14:04 +0100
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-19 06:08 -0700
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 14:29 -0700
              Re: Dropping C Noob <root@127.0.0.1> - 2018-03-19 14:34 +0100
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-19 06:39 -0700
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 15:17 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 15:03 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 15:36 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 17:01 +0000
                Re: Dropping C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2018-03-19 12:14 -0600
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 19:15 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-20 08:20 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 20:47 +0000
                Re: Dropping C Lowell Gilbert <lgusenet@be-well.ilk.org> - 2018-03-19 18:00 -0400
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 22:17 +0000
                Re: Dropping C Reinhardt Behm <rbehm@hushmail.com> - 2018-03-20 09:34 +0800
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 07:54 +0100
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-21 04:10 -0500
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 11:08 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 11:18 +0000
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-21 05:28 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 12:13 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 12:26 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 15:55 +0000
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 20:15 +0100
                Re: Dropping C Keith Thompson <kst-u@mib.org> - 2018-03-21 12:45 -0700
                Re: Dropping C supercat@casperkitty.com - 2018-03-21 13:46 -0700
                Killfiles (Was: Dropping C) gazelle@shell.xmission.com (Kenny McCormack) - 2018-03-21 21:42 +0000
                Re: Killfiles (Was: Dropping C) Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-22 04:22 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-21 20:21 +0000
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-21 22:21 -0700
                Re: Dropping C Reinhardt Behm <rbehm@hushmail.com> - 2018-03-20 09:32 +0800
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 10:01 +1300
                Re: Dropping C luser droog <luser.droog@gmail.com> - 2018-03-20 16:01 -0700
                Re: Dropping C Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2018-03-19 13:41 -0600
                Re: Dropping C luser droog <luser.droog@gmail.com> - 2018-03-19 12:52 -0700
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-19 20:15 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 20:38 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 22:00 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 01:45 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 03:05 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 21:09 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-20 18:26 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 10:58 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 14:22 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 13:58 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 17:14 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 16:31 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 17:14 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 07:31 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 18:51 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 08:01 +1300
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 19:03 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 19:22 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 08:25 +1300
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-20 19:33 +0000
                Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-21 09:34 +1300
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-20 19:49 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-21 11:27 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 01:27 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-19 17:03 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 23:13 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 00:23 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 00:55 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 02:29 +0100
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 02:04 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-20 03:31 +0100
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 20:18 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-21 21:32 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-21 20:52 +0000
                Re: Dropping C supercat@casperkitty.com - 2018-03-21 14:38 -0700
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-21 23:08 +0100
                Re: Dropping C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-03-22 13:37 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 15:41 +0100
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-22 14:58 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 17:37 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 17:09 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 18:27 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 17:35 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 18:46 +0100
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 18:22 +0000
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-22 19:38 +0100
                Re: Dropping C jameskuyper@verizon.net - 2018-03-22 12:19 -0700
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-22 20:23 +0000
                Re: Dropping C Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-03-23 06:10 -0700
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-23 14:54 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-23 16:55 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-23 17:46 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-24 02:50 +0100
                Re: Dropping C GOTHIER Nathan <nathan.gothier@gmail.com> - 2018-03-24 02:54 +0100
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-22 16:43 +0000
                Re: Dropping C Keith Thompson <kst-u@mib.org> - 2018-03-22 10:39 -0700
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-22 11:47 -0500
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-24 00:59 -0700
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 15:07 +0000
                Re: Dropping C scott@slp53.sl.home (Scott Lurndal) - 2018-03-19 15:37 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 17:16 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-19 20:30 +0000
                Re: Dropping C bartc <bc@freeuk.com> - 2018-03-19 21:24 +0000
                Re: Dropping C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-03-19 23:06 +0000
                Re: Dropping C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-03-20 14:04 +0000
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 15:32 -0700
                Re: Dropping C Robert Wessel <robertwessel2@yahoo.com> - 2018-03-19 19:03 -0500
                Re: Dropping C Spiros Bousbouras <spibou@gmail.com> - 2018-03-20 02:13 +0000
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-20 14:25 +0100
                Re: Dropping C jacobnavia <jacob@jacob.remcomp.fr> - 2018-03-21 18:36 +0100
                Re: Dropping C David Brown <david.brown@hesbynett.no> - 2018-03-19 23:33 +0100
                Re: Dropping C supercat@casperkitty.com - 2018-03-19 16:34 -0700
                Re: Dropping C asetofsymbols@gmail.com - 2018-03-20 00:58 -0700
                Re: Dropping C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-03-20 01:10 -0700
            Re: Dropping C Ian Collins <ian-news@hotmail.com> - 2018-03-19 14:25 +1300
  Re: Dropping C bartc <bc@freeuk.com> - 2018-03-21 12:19 +0000

csiph-web