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,744 of 243,242   
   bart to bart   
   Re: New and improved version of cdecl   
   01 Nov 25 14:56:58   
   
   From: bc@freeuk.com   
      
   On 01/11/2025 11:57, bart wrote:   
   > On 31/10/2025 22:01, Waldek Hebisch wrote:   
      
   >> Anyway, there could be a lot of different reasons for slowdown.   
   >> Fact that you get 3 times faster build using 'make -j' suggests   
   >> that some other program is competing for CPU and using more jobs   
   >> allows getting higher share of CPU.  If that affects only programs   
   >> running under WSL, than your numbers may or may not be relevant to   
   >> WSL experience, but are incomparable to Linux timings.  If slowdown   
   >> affects all programs on your machine, then you should be interested   
   >> in eliminating it, because it would also make your compiler faster.   
   >> But that is your machine, if you not curious what happens that   
   >> is OK.   
      
   > I've no idea what this is up to. But here, I managed to compile that   
   > file my way (I copied it to a place where the relevant headers were all   
   > in one place):   
   >   
   >     gcc -O2 -c a68g-conversion.c   
   >   
   > Now real time is 0.14 seconds (recall it was 0.45). User time is still   
   > 0.08s.   
   >   
   > So, what is all that crap that is making it 3 times slower? And do we   
   > need all those -Wall checks, given that this is a working, debugged   
   > program?   
   >   
   > I suggest a better approach would be to get rid of that rubbish and   
   > simplify it, rather than keep it in but having to call in reinforcements   
   > by employing extra cores, don't you think?   
      
   I can now compile and link the 106 C modules of A68G into an executable,   
   using my simple approach.   
      
   The @ file below is invoked as 'gcc -O2 @file'. For this test, all   
   relevant files are in one place for simplicity. Only a single invocation   
   of gcc is used (multiple invocations would be needed to parallise,   
   assuming gcc doesn't have such abilities itself).   
      
   It took 38 seconds (30 seconds user) on a single core. Using -O0, it   
   took 18/10 seconds.   
      
   The generated A68 binary is 1.7MB. If I use -Os instead of -O2, the size   
   is just 1MB, and build time is 35s elapsed. The benchmark is only   
   slightly slower.   
      
   It appears that the purpose of './configure' is to generate a 440-line   
   header called 'a68g-config.h'.   
      
   The BINDIR macro is needed only for plugin-script.c.   
      
   -----------------------------   
   -o a68 -s   
   -DBINDIR='"/usr/local/bin"'   
     --std=c17   
   a68g-apropos.c   
   a68g-bits.c   
   a68g-conversion.c   
   a68g-diagnostics.c   
   a68g-io.c   
   a68g-keywords.c   
   a68g-listing.c   
   a68g-mem.c   
   a68g-non-terminal.c   
   a68g-options.c   
   a68g-path.c   
   a68g-postulates.c   
   a68g-pretty.c   
   a68g.c   
   double-gamic.c   
   double-math.c   
   double.c   
   genie-assign.c   
   genie-call.c   
   genie-coerce.c   
   genie-declaration.c   
   genie-denotation.c   
   genie-enclosed.c   
   genie-formula.c   
   genie-hip.c   
   genie-identifier.c   
   genie-misc.c   
   genie-regex.c   
   genie-rows.c   
   genie-stowed.c   
   genie-unix.c   
   genie.c   
   moids-diagnostics.c   
   moids-misc.c   
   moids-size.c   
   moids-to-string.c   
   mp-bits.c   
   mp-complex.c   
   mp-gamic.c   
   mp-gamma.c   
   mp-genie.c   
   mp-math.c   
   mp-mpfr.c   
   mp-pi.c   
   mp.c   
   parser-annotate.c   
   parser-bottom-up.c   
   parser-brackets.c   
   parser-extract.c   
   parser-modes.c   
   parser-moids-check.c   
   parser-moids-coerce.c   
   parser-moids-equivalence.c   
   parser-refinement.c   
   parser-scanner.c   
   parser-scope.c   
   parser-taxes.c   
   parser-top-down.c   
   parser-victal.c   
   parser.c   
   plugin-basic.c   
   plugin-driver.c   
   plugin-folder.c   
   plugin-gen.c   
   plugin-inline.c   
   plugin-script.c   
   plugin-tables.c   
   plugin.c   
   prelude-bits.c   
   prelude-gsl.c   
   prelude-mathlib.c   
   prelude.c   
   rts-bool.c   
   rts-char.c   
   rts-curl.c   
   rts-curses.c   
   rts-enquiries.c   
   rts-formatted.c   
   rts-heap.c   
   rts-int128.c   
   rts-internal.c   
   rts-mach.c   
   rts-monitor.c   
   rts-parallel.c   
   rts-plotutils.c   
   rts-postgresql.c   
   rts-sounds.c   
   rts-stowed.c   
   rts-transput.c   
   rts-unformatted.c   
   single-blas.c   
   single-decomposition.c   
   single-fft.c   
   single-gamic.c   
   single-gsl.c   
   single-laplace.c   
   single-math.c   
   single-multivariate.c   
   single-physics.c   
   single-python.c   
   single-r-math.c   
   single-rnd.c   
   single-svd.c   
   single-torrix-gsl.c   
   single-torrix.c   
   single.c   
     -lncursesw -ldl -lpthread -lgmp -lquadmath -lrt -lm   
      
   --- 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