Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up[REVIEW]: cppduals: a nestable vectorized templated dual number library for C++11 #1487
Comments
This comment has been minimized.
This comment has been minimized.
Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @StewMH and @mdavezac, it looks like you're currently assigned as the reviewers for this paper If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews To fix this do the following two things:
For a list of things I can do to help you, just type:
|
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jun 5, 2019
If you have any questions or problems, please tell me. |
This comment has been minimized.
This comment has been minimized.
Hi @tesch1, I tried compiling this with GCC 7.3 and got this error:
I think you need a workaround here. See e.g. opencv/opencv#8080 for a similar issue. I didn't have any luck compiling it with Clang on Ubuntu either, so far. Also, it's Apache-licensed but you have MPL-licensed files: |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jun 6, 2019
Hi, Thanks for reviewing! Ah yeah, the "older gcc missing avx primitive". Just checked in an update/workaround. Does it compile for you now? Also, did you run into the same error(s) under clang, or was there something else? Regarding the licenses, yes, there are some files that were modified from Eigen, so retain the Eigen license. These are only included with |
This comment has been minimized.
This comment has been minimized.
@tesch1, have you considered dual licensing the non-eigen parts with MPL as well as Apache? That way, users can pick a format where the whole product is covered under a single license. |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jun 6, 2019
Oh yes, that's a great idea. I'll do that. I picked Apache+LLVM because libc++ uses it, and wanted to be broadly compatible with that, but dual-licensing is even better. |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jun 10, 2019
|
This comment has been minimized.
This comment has been minimized.
Hi, I have got past the missing avx primitive with GCC. Now the compilation runs for a while but fails with an ICE probably related to out-of-memory, at least on my VM. I can try a more powerful bare-metal machine, the VM only has 2G of RAM. Cheers, |
This comment has been minimized.
This comment has been minimized.
An issue has been filed in the original repo. @StewMH, I think I clicked on your checkboxes rather than mine at some point... I tried to undo the damage, but I do apologized if I made a mess of things |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jun 13, 2019
@tesch1 - please let us know when you have worked on the issues in https://gitlab.com/tesch1/cppduals/issues/4 |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jun 15, 2019
Thanks for the great comments. I'm currently on the road without a
computer for a couple weeks, and will let you know when the questions have
been addressed.
…On Thu, Jun 13, 2019 at 12:10 PM Daniel S. Katz ***@***.***> wrote:
@tesch1 <https://github.com/tesch1> - please let us know when you have
worked on the issues in https://gitlab.com/tesch1/cppduals/issues/4
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AACOYL5FL5AK7UHHXBIPDA3P2J5OPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXUMLGA#issuecomment-501794200>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACOYLY4YXGMRU6GAGHUJ63P2J5OPANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jun 17, 2019
This comment has been minimized.
This comment has been minimized.
Reminder set for @tesch1 in 2 weeks |
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jul 7, 2019
|
2 similar comments
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jul 12, 2019
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jul 19, 2019
|
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jul 19, 2019
@whedon generate pdf from branch paper-3 @StewMH - did you ever get it to compile? Some Eigen constructs can be quite demanding on compiler memory, especially in newer (> 3.3.7) versions. I've updated https://gitlab.com/tesch1/cppduals/issues/4 and merged changes into the master branch (which is currently building). Regarding licensing, have changed everything to MPL-2 for simplicity's sake. |
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jul 19, 2019
@danielskatz It would appear that whedon does not correctly use custom branches from gitlab when generating pdfs (or I did the syntax wrong above?) |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Jul 19, 2019
What didn't work? It looks like whedon generated a PDF. Is it not from the right branch? |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Jul 19, 2019
It is not from the right branch. |
This comment has been minimized.
This comment has been minimized.
Sorry, let me address this today |
This comment has been minimized.
This comment has been minimized.
Hi @tesch1 How do I build and test the package? It's a while since I looked at this, and I'm now getting some weird errors if I try to build the tests:
|
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Aug 9, 2019
•
Hi @StewMH - the tests directory is a dependent subdirectory of the base - so you need
Disclosure: I cant test this at the moment, because I just got a new machine and the latest Apple clang is crashing on building the tests, but it should work. Gah. Edit: ON not OFF |
This comment has been minimized.
This comment has been minimized.
OK, on Red Hat I have this issue:
But I do have a BLAS:
|
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Aug 9, 2019
Do you have openblas-devel installed, or can you install it?
…On Friday, August 9, 2019, Stewart Martin-Haugh ***@***.***> wrote:
OK, on Red Hat I have this issue:
-- Looking for sgemm_
-- Looking for sgemm_ - not found
CMake Error at /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Cmake/3.14.3/Linux-x86_64/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find BLAS (missing: BLAS_LIBRARIES)
Call Stack (most recent call first):
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Cmake/3.14.3/Linux-x86_64/share/cmake-3.14/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/Cmake/3.14.3/Linux-x86_64/share/cmake-3.14/Modules/FindBLAS.cmake:766 (find_package_handle_standard_args)
tests/CMakeLists.txt:98 (find_package)
But I do have a BLAS:
/usr/lib/libblas.so
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AACOYL4M7GLNCZRRK2QPEVDQDWJZPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD37DXZA#issuecomment-519977956>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACOYLZKJNHL4IXSD5GWRGTQDWJZPANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Aug 15, 2019
This comment has been minimized.
This comment has been minimized.
Hi @tesch1, I don't have root on those machines. I think I can do it in a docker image - let me try. Otherwise I can spin up a more powerful VM. It would be useful to have a list of prerequisites for each platform. |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Aug 19, 2019
@StewMH - if you go the docker route, a simple `sudo yum install
openblas-devel` should do the trick. (or -dev if you're in the debian
ecosystem)
BLAS is really just needed for benchmarking against BLAS, so having a BLAS
installation that we can build the test code against is a prerequisite.
I've added language to the benchmarking blurb in the README to clarify this
(not yet merged).
…On Mon, Aug 19, 2019 at 11:04 AM Stewart Martin-Haugh < ***@***.***> wrote:
Hi @tesch1 <https://github.com/tesch1>,
I don't have root on those machines. I think I can do it in a docker image
- let me try. Otherwise I can spin up a more powerful VM.
It would be useful to have a list of prerequisites for each platform.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AACOYL6HKVIWWK22DYIDBZLQFJOYPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4SGXGY#issuecomment-522480539>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACOYLZTZMXOUK6BLUD65FLQFJOYPANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
Hi @tesch1, OK, I tried with Docker (Ubuntu flavour this time, but I can move to Red Hat):
With either gcc or clang it fails with:
I think in the past I've solved issues like this by explicitly linking to pthreads. Have you encountered it? |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Aug 26, 2019
|
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Aug 26, 2019
@StewMH Oops, I checked in a fix for this last week but forgot to come back to you here. Shoudl work from the master branch now. |
This comment has been minimized.
This comment has been minimized.
Thanks, sorry I'm on holiday until 9th September now, but will check back
in with you then
…On Mon, 26 Aug 2019, 23:33 Michael Tesch, ***@***.***> wrote:
@StewMH <https://github.com/StewMH> Oops, I checked in a fix for this
last week but forgot to come back to you here. Shoudl work from the master
branch now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AAGLVPT5A7VP4XNXYN7HOH3QGQ42ZA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5FS5LA#issuecomment-525020844>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAGLVPVGRKX36UXTCL2EADTQGQ42ZANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Sep 1, 2019
This comment has been minimized.
This comment has been minimized.
Reminder set for @StewMH in 9 days |
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
Hi @tesch1, Unfortunately I get the same error with master branch, same Dockerfile. Cheers, Stewart |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Sep 16, 2019
Hi @StewMH , |
This comment has been minimized.
This comment has been minimized.
Nearly there, I now get
Cheers, Stewart |
This comment has been minimized.
This comment has been minimized.
That said, I now get the tests to work:
With clang 8 I don't get as far:
I guess the template metaprogramming is a bit heavy?
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Sep 29, 2019
|
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Oct 1, 2019
Sorry for the little delay, was upgrading to XCode 11 (apple clang 11), which doesn't have these issues. In general, the library works with other compilers, and uses the same metaprogramming that Eigen does, only with one extra layer in the case of What are the criteria here for the paper? I agree it should be usable, but I'm not sure it's possible for me to support every single buggy compiler by making workarounds for them. I've submitted bug reports to apple and gcc for the bugs I've found, now I'd say it's up to them to fix their compilers. |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Oct 1, 2019
@StewMH - It looks like you have options that work, and for those that do not, there are bugs in the compilers that have been reported. Given this, can you complete your review? |
This comment has been minimized.
This comment has been minimized.
Hi, I'd be happy with a statement in the documentation that it's confirmed to work with XCode + AppleClang, and that it may work on other platforms + compilers. With that in place I'm ready to sign off on it. Cheers, Stewart |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Oct 1, 2019
Hi,
How about this added to the readme in a section "Compiler notes"?
"XCode 11 (Apple Clang 11) is known to work. Also g++. Clang 8.0
appears to have some trouble with compiling the optimized templates for
Eigen,
as evidenced by its propensity to segfault when compiling the cppduals
test programs."
Cheers,
Michael
…On Tue, Oct 1, 2019 at 3:49 PM Stewart Martin-Haugh < ***@***.***> wrote:
Hi,
I'd be happy with a statement in the documentation that it's confirmed to
work with XCode + AppleClang, and that it may work on other platforms +
compilers. With that in place I'm ready to sign off on it.
Cheers,
Stewart
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AACOYL57K4E7CYZVDNEK4ZDQMNIOLA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEABKQFQ#issuecomment-537045014>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACOYLZCJBX4MA35G2P3UCDQMNIOLANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Oct 1, 2019
that seems reasonable to me - maybe also a statement that unexpected user experiences should be submitted as issues? |
This comment has been minimized.
This comment has been minimized.
tesch1
commented
Oct 2, 2019
I've added a section to the README "Compiler notes" to address this. I
believe this was the final outstanding issue?
…On Tue, Oct 1, 2019 at 4:46 PM Daniel S. Katz ***@***.***> wrote:
that seems reasonable to me - maybe also a statement that unexpected user
experiences should be submitted as issues?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1487?email_source=notifications&email_token=AACOYL6RYYGD4AJYGQY6KNTQMNPDBA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEABQ3NQ#issuecomment-537071030>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACOYL2UQB6OZ5HPSW4A2K3QMNPDBANCNFSM4HTUNXLQ>
.
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Oct 2, 2019
|
This comment has been minimized.
This comment has been minimized.
Done! Thanks everyone |
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Oct 4, 2019
|
This comment has been minimized.
This comment has been minimized.
danielskatz
commented
Oct 4, 2019
some suggestions on the paper: |
whedon commentedJun 5, 2019
•
edited by StewMH
Submitting author: @tesch1 (Michael Tesch)
Repository: https://gitlab.com/tesch1/cppduals
Version: v0.1.0
Editor: @danielskatz
Reviewer: @StewMH, @mdavezac
Archive: Pending
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@StewMH & @mdavezac, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @danielskatz know.
Review checklist for @StewMH
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?Review checklist for @mdavezac
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
paper.md
file include a list of authors with their affiliations?