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