home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.c      Meh, in C you gotta define EVERYTHING      243,242 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 241,470 of 243,242   
   bart to David Brown   
   Re: New and improved version of cdecl   
   25 Oct 25 13:51:42   
   
   From: bc@freeuk.com   
      
   On 25/10/2025 12:04, David Brown wrote:   
   > On 24/10/2025 20:50, bart wrote:   
      
   > You are getting worked up about some text output that scrolled   
   > "endlessly" for a minute and a half?   
      
   You don't know when it's happening how long it will end up taking.   
      
   In the past, and on a slower machine with a spinning hard drive, some   
   builds have taken the best part of an hour (one for a binary that would   
   have been only 0.5MB).   
      
   But on the same machine, my stuff still worked more or less instantly.   
      
      
   >> If I was directly building it myself, then I would use -s with gcc.   
   >> But since the process is automatic via makefiles, I assumed it would   
   >> give me a working, production version, not a version needing to be   
   >> debugged!   
   >>   
   >   
   > Actually, on closer checking (not because /I/ care, but because /you/   
   > apparently care) it was not debugging information, but all the linking   
   > and symbolic information that is a normal part of elf format files when   
   > they are built (allowing for incremental linking, using the files as   
   > static libraries for other programs, tracing the programs, fault-   
   > finding, etc.).   
      
    From looking at the C sources which are 50Kloc (68Kloc with headers),   
   I'd expect an executable for x64 to be upwards of 500KB. I think 600KB   
   was mentioned as the stripped size.   
      
   This is one way of spotting if an executable is unreasonably large. This   
   can be important, even if you have vast amounts of storage. For example,   
   it might have been tampered with somehow. In any case, it is suspicious   
   and worth investigating.   
      
   >> CDECL translates a single C type specification into linear LTR form.   
   >> Or vice versa. That's what nearly everyone needs it for, and why it   
   >> exists. Why, what other stuff does it do?   
   >>   
   >   
   > RTFM.   
      
   OK, it does rather more than the --help summary suggests. It includes   
   defining typedefs for example (I haven't tried it).   
      
   For my purposes, CDECL has always been buggy in the past and not so   
   useful (I used the online version).   
      
   In any case, sometimes you want to 'explain' some complex type in   
   someone else's code, which involves macros and/or typedefs defined 1000s   
   of lines earlier, or in some nested header.   
      
   Then you can't just extract the line and give it to CDECL.   
      
   This is why my older compiler included special directives that could be   
   temporarily inserted into the code, and would generate the info during   
   compilation.   
      
      
   >> So, it's a hundred times bigger than necessary due to C++. That   
   >> explains that then. (Sorry, 20 times bigger because whoever provided   
   >> the build system decided it should include debug info to make it 5   
   >> times as big for no reason.)   
   >   
   > It is not a program for expanding or explaining C declarations.  It is a   
   > program for expanding or explaining C and C++ declarations.  C++ is not   
   > "unnecessary", it is part of what it does.   
      
      
   This is another matter. The CDECL docs talk about C and C++ type   
   declarations being 'gibberish'.   
      
   What do you feel about that, and the *need* for such a substantial tool   
   to help understand or write such declarations?   
      
   I would rather have put some effort into fixing the syntax so that such   
   tools are not necessary!   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca