-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Compilation fails R4.3.0 #136
Comments
But look at the path: It is a bug in the |
Apologies, I will follow up with them. |
Please let us now what happens so that we can close the issue. |
For what it is worth, I have consistently been able to build |
News to me, and I converted a large number (of my, mostly) packages that way. This one is @astamm's package though and he seems to be more firmly in the other camp. |
@eddelbuettel I wanted to convert to https://github.com/astamm/nloptr/blob/master/tests/testthat/test-cpp.R |
For the first (R) file, I skip all the time in (The true beauty of The other two I have to long at maybe longer than the current time of day (or night) permits, or maybe you help me but by highlighting a specific aspect. But generally speaking 'Turing-equivalence' still holds: if we can test it in one, we can test it in the other. We are talking C(++) code here, the whole point of Rcpp and alike is to make it possible to access C++ code from R. That said, I just pondered that this eve for another new (still tiny) project of a new header package ... |
I was not aware of the tinytest package which indeed seems like a nice lightweight unit testing framework with no additional dependencies. I am happy to move away from testthat in favour of this one. As @eddelbuettel mentions, there is probably a way to test the C++ functions by calling the corresponding R functions from R. I can take a look at that next week. |
Strong endorsement of That said, it's not a religious war. If you like |
@eddelbuettel, I'll put it on my todo list. Unfortunately, simply deleting the cpp files gave a whole host of errors when trying to compile. There must be some definitions that are necessary for the rest of the package, but nothing I could see immediately. The non-C tests should be simple to move, except for those where I relied on snapshots due to the complicated nature of the output. I'll have to figure out a way to replicate those. |
I was wondering the same thing, that is, what about snapshot tests with tinytest. For the C tests, I can remove them for the time being and we will use the |
Agreed. I have not had time to dig through the example file Avi listed in detail but ex ante a simple |
I've started porting the tests here: https://github.com/aadler/nloptr/tree/devel, but I've run into the following bottleneck. It seems that
A bit of digging shows that this is due to having C++ code somewhere in the mix but only linking with gcc and not g++. WHen testthat reigns, it calls g++ itself. I do not know how to fix that. I will restore the |
I got around the complaint issue by converting the |
Prior to using catch for testing C and C++ files, there was an empty And to make sure to extract all things catch-related, it might be good to remove everything I added in c685e96. |
Beautiful, @astamm, that did it! Unfortunately, total coverage now dropped to 96.32 (which is still excellent!) as check.derivatives went from 100 to 80. That's due to the loss of snapshot, but I may be able to bring it back up by adding some more focused tests. nloptr.c is stil over 90% covered. The R-based test suite must be triggering everything that the cpp file would have tested, so we don't need it. What's still uncovered are basically the error messages I cannot get to trigger, such as |
Awesome, thanks Avi! |
OK, I think I worked out all the bugs. What now, @astamm? I can merge it to my master and create a pull request, or I can wait until you or @eddelbuettel want to review it while it's still safely in my repo 😆 . Your call! |
Marvelous. Thanks a lot @aadler ! I am more than happy to receive directly your PR and merge it with the main master. Very nice work! And thanks also for the vignette update. Much appreciated! |
Replacing testthat with tinytest (Issue #136)
This should be resolved by #137 even though the original issue was with the catch library. |
# nloptr 2.1.1 This is a patch release to work around a bug in the CRAN checks. Specifically, one of the unit tests for the `isres()` algorithm was failing on some CRAN builds because convergence is stochastic with slightly different results even with the same fixed seed prior to calling the function. # nloptr 2.1.0 This release deprecates the default behavior of the inequality equations in any wrapper function which uses them. Currently, they are calibrated to be >= 0. This version allows for the equations to be consistent with the main `nloptr` function, which requires <= 0. In a future release, the default behavior will switch to assuming the calibration is <= 0, and eventually, the >= 0 behavior will be removed. It also includes a large number of safety and efficiency changes, and an expansion of the unit tests to 100% coverage for all files but one. The major changes include: * Reversed the direction of the inequality equations `hin` and `hinjac` in the wrapper functions which use them, bringing them into compliance with the main `nloptr` call. This addresses [Issue #148](astamm/nloptr#148); * Cleaned the Hock-Schittkowski problem no. 100, Hartmann 6-dimensional, and Powell exponential examples. This addresses [Issue #152](astamm/nloptr#152) and [Issue #156](astamm/nloptr#156); * Updated roxygen version; * Updated maintainer email; * Deal with NA returns from `parallel::detectCores()` (contributed by @jeroen in PR #150); * Setup rhub v2 checks; * Update cmake installation instructions on Mac with brew (#146); * Allow use of equality constraints with COBYLA (#135); * Replaced the unit testing framework of `testthat` with `tinytest` (See [Issue #136](astamm/nloptr#136)); * Brought coverage of `is.nloptr` to 100%. The only file not completely covered by unit tests is `nloptr.c`. The uncovered calls are error messages which get trapped by tests in R before the call gets to C; * Linted package for code correctness and consistency; * Updated vignette, DESCRIPTION, and NEWS; * Updated package website to use bootstrap 5; * Expanded unit tests: coverage now over 97% with no file below 90%; * Removed forcing `C++11`; * Added safety checks to C code; * Added many safety and efficiency enhancements to R code; * Most R code style made self-consistent; * Updated documentation and messages for accuracy and mathematical formatting * Updated Github actions; * Some bugfixes (e.g. in `isres` or the warning in `nl.grad`).
nloptr
fails to compile with the following errorcompilation-log.txt
The text was updated successfully, but these errors were encountered: