Submitting author: @tesch1 (Michael Tesch)
Repository: https://gitlab.com/tesch1/cppduals
Version: v0.1.2
Editor: @danielskatz
Reviewer: @StewMH, @mdavezac
Archive: 10.5281/zenodo.3528307
Status badge code:
HTML: <a href="http://joss.theoj.org/papers/a6291c0d8c548ceed6728072eb5a3438"><img src="http://joss.theoj.org/papers/a6291c0d8c548ceed6728072eb5a3438/status.svg"></a>
Markdown: [](http://joss.theoj.org/papers/a6291c0d8c548ceed6728072eb5a3438)
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.)
@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.
โจ Please try and complete your review in the next two weeks โจ
paper.md
file include a list of authors with their affiliations?paper.md
file include a list of authors with their affiliations?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 :tada:.
:star: Important :star:
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:
@whedon commands
Attempting PDF compilation. Reticulating splines etc...
๐ @StewMH, @mdavezac - thanks for agreeing to review this submission. Your job, as stated in the first comment in this issue, is to go through the paper and the software repository, and check off the boxes in your list as you've done so. When you find something that is a problem, if it's brief, you can mention it here, and if it's less brief or an action for the submitter, open an issue in the software repository and mention this issue in it.
If you have any questions or problems, please tell me.
Hi @tesch1,
I tried compiling this with GCC 7.3 and got this error:
In file included from /home/smh/joss/cppduals/duals/dual_eigen:389:0,
from /home/smh/joss/cppduals/tests/sandbox.cpp:20:
/home/smh/joss/cppduals/duals/arch/AVX/ComplexDual.h: In function โPacket Eigen::internal::pset1(const typename Eigen::internal::unpacket_traits<Packet>::type&) [with Packet = Eigen::internal::Packet2cdf; typename Eigen::internal::unpacket_traits<Packet>::type = std::complex<duals::dual<float> >]โ:
/home/smh/joss/cppduals/duals/arch/AVX/ComplexDual.h:157:21: error: โ_mm256_set_m128โ was not declared in this scope
return Packet2cdf(_mm256_set_m128(v,v));
^~~~~~~~~~~~~~~
/home/smh/joss/cppduals/duals/arch/AVX/ComplexDual.h:157:21: note: suggested alternative: โ_mm256_set_epi8โ
return Packet2cdf(_mm256_set_m128(v,v));
^~~~~~~~~~~~~~~
_mm256_set_epi8
I think you need a workaround here. See e.g. https://github.com/opencv/opencv/pull/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:
https://gitlab.com/tesch1/cppduals/blob/master/duals/arch/AVX/Dual.h
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 #include <duals/dual_eigen>
. An upcoming update will clarify this in the README.
@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.
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.
๐ Any news on this from the authors or reviewers?
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,
Stewart
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 ๐
@tesch1 - please let us know when you have worked on the issues in https://gitlab.com/tesch1/cppduals/issues/4
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 notifications@github.com
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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYL5FL5AK7UHHXBIPDA3P2J5OPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXUMLGA#issuecomment-501794200,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYLY4YXGMRU6GAGHUJ63P2J5OPANCNFSM4HTUNXLQ
.
@whedon remind @tesch1 in 2 weeks
Reminder set for @tesch1 in 2 weeks
:wave: @tesch1, please update us on how things are progressing here.
๐ @tesch1, please update us on how things are progressing here.
๐ @tesch1, please update us on how things are progressing here.
๐ @tesch1, please update us on how things are progressing here.
@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.
Attempting PDF compilation from custom branch paper-3
. Reticulating splines etc...
@danielskatz It would appear that whedon does not correctly use custom branches from gitlab when generating pdfs (or I did the syntax wrong above?)
What didn't work? It looks like whedon generated a PDF. Is it not from the right branch?
It is not from the right branch.
๐ @arfon - can you help on this
What branch were you expecting changes from?
@whedon generate pdf from branch paper-3
Attempting PDF compilation from custom branch paper-3. Reticulating splines etc...
so... it works when you do it, or it was queued up somewhere and didn't complete / wasn't available until sometime after whedon posted 'Check article proof' I'm quite certain that the link above (after I sent the whedon command) had the wrong version.
every once in a while, my safari seems to get confused and delivers a cached version...
but glad it's ok now.
Can you let us know where you think things are in terms of addressing comments from the reviewers?
I've updated https://gitlab.com/tesch1/cppduals/issues/4 and merged changes into the master branch (which is currently building).
๐ @tesch1 - are you ready for reviewers to look at this again?
Yes, I believe I have addressed all the review items listed in the linked
"issue" above. The bullet points correspond to the checklist. Maybe that
wasn't clear from my previous message.
On Fri, Jul 26, 2019 at 11:56 AM Daniel S. Katz notifications@github.com
wrote:
๐ @tesch1 https://github.com/tesch1 - are you ready for reviewers to
look at this again?โ
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYLZHQC3RVVFZFQSQ7WDQBMUEPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD25E5DY#issuecomment-515526287,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYL475VDMDBW3TCPL6KLQBMUEPANCNFSM4HTUNXLQ
.
๐ @StewMH, @mdavezac - please take a look at this and see if your concerns have been sufficiently addressed
๐ @StewMH, @mdavezac - pinging again...
๐ @StewMH, @mdavezac - pinging again...
Sorry, let me address this today
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:
cd cppduals/build
cmake ../tests/
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/8.3.0-cebb0/x86_64-centos7/bin/gcc
-- Check for working C compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/8.3.0-cebb0/x86_64-centos7/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/8.3.0-cebb0/x86_64-centos7/bin/g++
-- Check for working CXX compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/8.3.0-cebb0/x86_64-centos7/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Warning (dev) at External_GTest.cmake:17 (set):
Cannot set "GTEST_INCLUDE_DIRS": current scope has no parent.
Call Stack (most recent call first):
CMakeLists.txt:16 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at External_GTest.cmake:18 (set):
Cannot set "GMOCK_INCLUDE_DIRS": current scope has no parent.
Call Stack (most recent call first):
CMakeLists.txt:16 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at External_GTest.cmake:31 (set):
Cannot set "GTEST_LIBRARY": current scope has no parent.
Call Stack (most recent call first):
CMakeLists.txt:16 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Error at CMakeLists.txt:21 (include_directories):
include_directories given empty-string as include directory.
CMake Error at CMakeLists.txt:24 (include_directories):
include_directories given empty-string as include directory.
Hi @StewMH - the tests directory is a dependent subdirectory of the base - so you need cmake ..
instead of cmake ../tests
. But also cmake flags to enable testing/benchmarking, from the base cppduals dir: (I'll update this in the docs too)
cd cppduals/
cmake -Bbuildx -H. -DCPPDUALS_EIGEN_LATEST=OFF -DCPPDUALS_TESTING=ON -DCPPDUALS_BENCHMARK=ON
cmake --build buildx --target all
cmake --build buildx --target test
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
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
Do you have openblas-devel installed, or can you install it?
On Friday, August 9, 2019, Stewart Martin-Haugh notifications@github.com
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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYL4M7GLNCZRRK2QPEVDQDWJZPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD37DXZA#issuecomment-519977956,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYLZKJNHL4IXSD5GWRGTQDWJZPANCNFSM4HTUNXLQ
.
๐ @StewMH - note that @tesch1 is trying to help with your issue, but needs your feedback to proceed.
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.
@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 <
[email protected]> 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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYL6HKVIWWK22DYIDBZLQFJOYPA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4SGXGY#issuecomment-522480539,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYLZTZMXOUK6BLUD65FLQFJOYPANCNFSM4HTUNXLQ
.
Hi @tesch1,
OK, I tried with Docker (Ubuntu flavour this time, but I can move to Red Hat):
Dockerfile:
FROM ubuntu:19.04
USER root
RUN apt update
RUN apt install -y g++ git cmake libopenblas-dev
With either gcc or clang it fails with:
Determining if the pthread_create exist failed with the following output:
Change Dir: /cppduals/buildx/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_64ae7/fast"
/usr/bin/make -f CMakeFiles/cmTC_64ae7.dir/build.make CMakeFiles/cmTC_64ae7.dir/build
make[1]: Entering directory '/cppduals/buildx/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_64ae7.dir/CheckSymbolExists.c.o
/usr/bin/cc -o CMakeFiles/cmTC_64ae7.dir/CheckSymbolExists.c.o -c /cppduals/buildx/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_64ae7
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_64ae7.dir/link.txt --verbose=1
/usr/bin/cc -rdynamic CMakeFiles/cmTC_64ae7.dir/CheckSymbolExists.c.o -o cmTC_64ae7
/usr/bin/ld: CMakeFiles/cmTC_64ae7.dir/CheckSymbolExists.c.o: in function `main':
CheckSymbolExists.c:(.text+0x1b): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_64ae7.dir/build.make:87: cmTC_64ae7] Error 1
make[1]: Leaving directory '/cppduals/buildx/CMakeFiles/CMakeTmp'
make: *** [Makefile:121: cmTC_64ae7/fast] Error 2
File /cppduals/buildx/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>
int main(int argc, char** argv)
{
(void)argv;
#ifndef pthread_create
return ((int*)(&pthread_create))[argc];
#else
(void)argc;
return 0;
#endif
}
Determining if the function sgemm_ exists failed with the following output:
Change Dir: /cppduals/buildx/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/make" "cmTC_bcc72/fast"
/usr/bin/make -f CMakeFiles/cmTC_bcc72.dir/build.make CMakeFiles/cmTC_bcc72.dir/build
make[1]: Entering directory '/cppduals/buildx/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_bcc72.dir/CheckFunctionExists.cxx.o
/usr/bin/c++ -g -Wall -Wpedantic -DCHECK_FUNCTION_EXISTS=sgemm_ -std=c++11 -o CMakeFiles/cmTC_bcc72.dir/CheckFunctionExists.cxx.o -c /cppduals/buildx/CMakeFiles/CheckFunctionExists/CheckFunctionExists.cxx
Linking CXX executable cmTC_bcc72
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bcc72.dir/link.txt --verbose=1
/usr/bin/c++ -g -Wall -Wpedantic -DCHECK_FUNCTION_EXISTS=sgemm_ CMakeFiles/cmTC_bcc72.dir/CheckFunctionExists.cxx.o -o cmTC_bcc72 /usr/lib/x86_64-linux-gnu/libopenblas.a
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libopenblas.a(blas_server.o): in function `blas_thread_init':
(.text+0x47a): undefined reference to `pthread_create'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libopenblas.a(blas_server.o): in function `goto_set_num_threads':
(.text+0x992): undefined reference to `pthread_create'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libopenblas.a(blas_server.o): in function `blas_thread_shutdown_':
(.text+0xbdb): undefined reference to `pthread_join'
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_bcc72.dir/build.make:88: cmTC_bcc72] Error 1
make[1]: Leaving directory '/cppduals/buildx/CMakeFiles/CMakeTmp'
make: *** [Makefile:121: cmTC_bcc72/fast] Error 2
I think in the past I've solved issues like this by explicitly linking to pthreads. Have you encountered it?
๐ @tesch1 - note we're waiting for you here...
@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.
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, notifications@github.com 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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AAGLVPT5A7VP4XNXYN7HOH3QGQ42ZA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5FS5LA#issuecomment-525020844,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGLVPVGRKX36UXTCL2EADTQGQ42ZANCNFSM4HTUNXLQ
.
@whedon remind @StewMH in 9 days
Reminder set for @StewMH in 9 days
:wave: @StewMH, please update us on how your review is going.
Hi @tesch1,
Unfortunately I get the same error with master branch, same Dockerfile.
Cheers,
Stewart
Hi @StewMH ,
I think I found the problem - it's because I'm requesting a static link of BLAS and for some reason ubuntu in particular doesnt automatically include pthreads. There's a merge pending (pipeline needs to finish) to fix it, but in the meantime explicitly setting the blas library that cmake searches for should get you past this. To try the workaround, add -DBLA_VENDOR=OpenBLAS
to the cmake command line. Or just wait a bit here for 'merge request' 14 to complete.
Cheers
Michael
Nearly there, I now get
[ 98%] Building CXX object tests/CMakeFiles/bench_eigen.dir/bench_eigen.cpp.o
In file included from /root/cppduals/duals/dual_eigen:391,
from /root/cppduals/tests/bench_eigen.cpp:20:
/root/cppduals/duals/arch/AVX/ComplexDual.h:503:2: warning: #warning is a GCC extension
#warning "AVX2 disabled: not vectorizing std::complex<dual<double>>"
^~~~~~~
/root/cppduals/duals/arch/AVX/ComplexDual.h:503:2: warning: #warning "AVX2 disabled: not vectorizing std::complex<dual<double>>" [-Wcpp]
c++: fatal error: Killed signal terminated program cc1plus
Cheers,
Stewart
That said, I now get the tests to work:
cmake --build buildx --target test
100% tests passed, 0 tests failed out of 331
With clang 8 I don't get as far:
/root/cppduals/duals/arch/AVX/ComplexDual.h:503:2: warning: "AVX2 disabled: not vectorizing std::complex<dual<double>>" [-W#warnings]
clang: error: unable to execute command: Killed
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 8.0.0-3 (tags/RELEASE_800/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/test_vectorize-0a00ab.cpp
clang: note: diagnostic msg: /tmp/test_vectorize-0a00ab.sh
clang: note: diagnostic msg:
I guess the template metaprogramming is a bit heavy?
```
๐ @tesch1 - any response?
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 complex<dual<>>
. The main idea of this project is to provide optimized templates, so I think there's not really room to reduce that.
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.
@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?
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
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 <
[email protected]> 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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYL57K4E7CYZVDNEK4ZDQMNIOLA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEABKQFQ#issuecomment-537045014,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYLZCJBX4MA35G2P3UCDQMNIOLANCNFSM4HTUNXLQ
.
that seems reasonable to me - maybe also a statement that unexpected user experiences should be submitted as issues?
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 notifications@github.com
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
https://github.com/openjournals/joss-reviews/issues/1487?email_source=notifications&email_token=AACOYL6RYYGD4AJYGQY6KNTQMNPDBA5CNFSM4HTUNXL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEABQ3NQ#issuecomment-537071030,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AACOYL2UQB6OZ5HPSW4A2K3QMNPDBANCNFSM4HTUNXLQ
.
๐ @StewMH - Can you now check off the rest of your review items? If so, please do. If not, please let us know which you cannot and why.
Done! Thanks everyone
๐ @tesch1 - to finish up now, I need you to
some suggestions on the paper:
"having unit dual part." <- "having a unit dual part."
"Template specializations which map the dual" <- "Template specializations that map the dual"
"A dual number had a real part" <- "A dual number has a real part"
"a specific cpu architecture" <- "a specific CPU architecture"
๐ @tesch1 - note that this is just waiting for you to finish some final details, then we can publish... It looks like you made the language changes, but I'm waiting for your response to the previous comment in the issue as well
Yeah, sorry, something changed on the gitlab releases api (or ... ?) and broke my release mechanism. I haven't had a chance to debug it yet, but wanted to do that first so that the paper corresponds to a particular release.
ok - please let me know when you are ready to proceed
@tesch1 - any news? I would like to get this published :)
๐ @tesch1 - any news? I would like to get this published :)
๐ @danielskatz - me too :)
1. deposit the repository in an archive (e.g. zenodo) and report the DOI here
10.5281/zenodo.3528307
2. tell me the latest version number here
v0.1.2
3. confirm that the paper text and references are final
Confirmed.
@whedon set 10.5281/zenodo.3528307 as archive
OK. 10.5281/zenodo.3528307 is the archive.
@whedon set v0.1.2 as version
OK. v0.1.2 is the version.
๐ @tesch1 - please update the zenodo metadata so that the title of repo matches the title of the paper here
@danielskatz - done. When there's a joss link/doi I could/would add that too. Is there a preferred model to follow?
Thanks - once the submission is accepted (hopefully in another 10 min or so), the DOI for the JOSS article will be shown here. You can certainly add this to the zenodo metadata.
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
There seem to be some issue in a couple of bib entries - can you merge https://gitlab.com/tesch1/cppduals/merge_requests/18 which I think should fix them?
Merged
@whedon generate pdf
Attempting PDF compilation. Reticulating splines etc...
@whedon accept
Attempting dry run of processing paper acceptance...
```Reference check summary:
OK DOIs
MISSING DOIs
INVALID DOIs
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/1087
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/1087, then you can now move forward with accepting the submission by compiling again with the flag deposit=true
e.g.
@whedon accept deposit=true
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
๐ฆ๐ฆ๐ฆ ๐ Tweet for this paper ๐ ๐ฆ๐ฆ๐ฆ
๐จ๐จ๐จ THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! ๐จ๐จ๐จ
Here's what you must now do:
Party like you just published a paper! ๐๐๐ฆ๐๐ป๐ค
Any issues? notify your editorial technical team...
Thanks to @StewMH and @mdavezac for reviewing!
@tesch1 - you can see the DOI above (https://doi.org/10.21105/joss.01487). It's not quite working for me yet, which could be a backlog in registering new DOIs, or it could be due to a server in my location - Once it works, I will close this issue and we will be done.
Ah, now the DOI resolves, but I don't yet see https://www.theoj.org/joss-papers/joss.01487/10.21105.joss.01487.pdf working.
Thanks to @StewMH and @mdavezac for reviewing!
I second that, Thanks gentlemen!! Also thank you, @danielskatz !
@tesch - does https://www.theoj.org/joss-papers/joss.01487/10.21105.joss.01487.pdf work for you?
@danielskatz nope, 404
@arfon, any thoughts on this?
Congrats, @tesch1! ๐พ
@arfon, any thoughts on this?
Looks like there's an issue with GitHub Pages right now: https://www.githubstatus.com/incidents/42hkbtl63nmn
OK, looks like the PDF URL is resolving now.
:tada::tada::tada: Congratulations on your paper acceptance! :tada::tada::tada:
If you would like to include a link to your paper from your README use the following code snippets:
Markdown:
[](https://doi.org/10.21105/joss.01487)
HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01487">
<img src="https://joss.theoj.org/papers/10.21105/joss.01487/status.svg" alt="DOI badge" >
</a>
reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.01487/status.svg
:target: https://doi.org/10.21105/joss.01487
This is how it will look in your documentation:
We need your help!
Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following: