Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 31 15:06

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 24 07:47

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 23 02:04
    pthom commented #432
  • Jan 18 12:46

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 16 22:27
    ricejasonf commented #434
  • Jan 05 06:22
    ricejasonf commented #330
  • Jan 03 11:40

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Jan 02 00:33
    ricejasonf closed #434
  • Jan 02 00:33
    ricejasonf commented #434
  • Jan 02 00:04
    ricejasonf opened #434
  • Dec 27 2018 13:11

    ldionne on gh-pages

    Update benchmarks to 490dbf6 fo… (compare)

  • Dec 22 2018 11:56
    pthom commented #432
  • Dec 22 2018 11:55
    pthom commented #432
  • Dec 21 2018 15:48
    pthom synchronize #432
  • Dec 21 2018 09:19
    sdebionne opened #433
  • Dec 21 2018 00:08
    ricejasonf commented #432
  • Dec 21 2018 00:03
    ricejasonf commented #432
  • Dec 20 2018 23:36
    pthom commented #432
  • Dec 20 2018 23:36
    pthom commented #432
  • Dec 20 2018 23:13
    ricejasonf commented #432
Maik Klein
@MaikKlein
?
Jason Rice
@ricejasonf
meaning you can't get two failures
Maik Klein
@MaikKlein
I can only get one failure
Jason Rice
@ricejasonf
yeah.. nm :)
Maik Klein
@MaikKlein
because for 0, 0 <= 1 is true
:d
Jason Rice
@ricejasonf
@MaikKlein Regarding your question about 'previous template instantiations', precompiled header files might be the answer. I'm not sure to what extent it would make a difference, but it shaves off about 5 seconds (from 8 seconds total) from my convoluted primality test. A more extreme case could be tested by fiddling with the upper end of the range in expensive.hpp.
As you can see in the Makefile you can compile a .pch just like you can an object file.
Jason Rice
@ricejasonf
Apparently clang has modules implemented. I wonder if it would be feasible to export that map variable and tell clang to fully evaluate/optimize the AST to output a pch or header file that leaves all of the cruft behind.
Maik Klein
@MaikKlein
@ricejasonf interesting, haven't used pch's yet.
btw is there a way to benchmark the compile time? I tried -ftime-report in clang but it's not very helpful.
Maik Klein
@MaikKlein
I am thinking of something like
foo<a,b,c,d> at line 24 in foo.hpp took 1.54 seconds to instantiate.
Jason Rice
@ricejasonf
@MaikKlein idk. I was just using time make and it appears that Hana uses a ruby script that calls a make command
Maik Klein
@MaikKlein
I guess that works okay for isolated code, but I would really like to see where the bottleneck is in my current code base. I'll have a look at clang modules now and see if they give me any benefit.
Maik Klein
@MaikKlein
I guess I am also going to try templight, it even integrates kcachegrind
^ wtf is that image
ah it's his profile picture
Jason Rice
@ricejasonf
this oss?
your project that is
Maik Klein
@MaikKlein
My project will be open source
not sure if that is what you asked though :d. I am not the creator of templight
Jason Rice
@ricejasonf
is it on github?
Maik Klein
@MaikKlein
Not yet, it's in a very early state. It will be a 2d game framework with an entity component system.
Louis Dionne
@ldionne
@MaikKlein To find the compile-time bottlenecks in your code, first isolate the TUs that are problematic. Then, what I usually do is simply comment out instantiations and compile over and over with time clang++ ….
Also, I just found out about ccache. It caches files between compilations, and it’s really awesome (from what I can see so far).
Jason Rice
@ricejasonf
@ldionne I'm not sure if manual intervention is required for Travis to include my third commit and cancel the builds for the second commit.
I keep getting "There was an error while loading data, please try again" on the linked status page.
Louis Dionne
@ldionne
@ricejasonf It will automatically test any new commit that you push, and you can just leave it do its job on the current commits, even though that’s not strictly required.
Which status page?
Louis Dionne
@ldionne
I can see the jobs just fine.
jobs.tiff
Jason Rice
@ricejasonf
same link and everything... weird but nbd
Jason Rice
@ricejasonf
@ldionne It says some checks were not successful. I still see the error page on travis. :scream:
Louis Dionne
@ldionne
@ricejasonf It’s fine, it was just a timeout when downloading Boost. I restarted that job.
@ricejasonf Would you mind squashing these commits together, and then push —forceing to update the PR?
Otherwise, I can just squash it myself; you decide.
Jason Rice
@ricejasonf
I would like to do it
..once I figure it out :P
Louis Dionne
@ldionne

The following should work. Execute the commands one by one, and make sure it makes sense at each step, because I haven't proofread the steps and I don't want to delete your whole hard drive:

git checkout the-name-of-your-branch
# make sure your working directory is clean
git rebase -i HEAD~3

A file should pop-up in your default editor. Follow the instructions written in that file. Basically, you should put squash instead of pick in front of your 2 last commits. Once you're done, save it and close it. The rebase should take place, and you'll be asked to edit the commit message of the squashed commit; do it. Normally, you'll be left with a single commit containing the changes of your 3 current commits, and with the commit message that you'll have chosen. Now, you can push --force your new commit to your branch, overwriting the 3 previous commits:

git push --force

Again, take these steps with a grain of salt.

@ricejasonf Ah, I just saw that you already did it. Cool, seems like you figured it out.
Ok, so now we have a single logical commit. If I merged this, the history would make sense; there would be a single commit showing you added this feature, and not showing too much of the sausage making (the 3 patches on which I commented and which you improved).
Jason Rice
@ricejasonf
I did this
git reset --soft HEAD~3 && git commit
Louis Dionne
@ldionne
Oh, I guess it works too. But do check git rebase —interactive out, it’s wonderful.
Jason Rice
@ricejasonf
I should probably get more organized with my own project instead of grinding wip commits into master all of the time.
Louis Dionne
@ldionne
As you can see with Hana, I personally enforce a fairly strict discipline w.r.t. my Git usage, even when I am working alone on a project. At first it was a bit daunting, but now I’ve got my workflow and it’s really fast. I also find it much easier to search through my commit history and stuff like that, because the history makes sense.
Jason Rice
@ricejasonf
Yes, thanks for your help. I like how Hana is organized, but what is the rationale for separating declaration/definition with the fwd header files?