diff --git a/HISTORY.md b/HISTORY.md index f770eab01a..19cc210570 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -37,6 +37,8 @@ * Allow PCA to take different matrix types (#3677). + * Fix non-working `verbose` option for R bindings (#3691). + ### mlpack 4.3.0 ###### 2023-11-27 * Fix include ordering issue for `LinearRegression` (#3541). diff --git a/src/mlpack/bindings/R/mlpack/src/rcpp_mlpack.h b/src/mlpack/bindings/R/mlpack/src/rcpp_mlpack.h index bd9ecf3ef1..83f272e753 100644 --- a/src/mlpack/bindings/R/mlpack/src/rcpp_mlpack.h +++ b/src/mlpack/bindings/R/mlpack/src/rcpp_mlpack.h @@ -15,9 +15,6 @@ #include -// To suppress Found '__assert_fail', possibly from 'assert' (C). -#define BOOST_DISABLE_ASSERTS - // Rcpp has its own stream object which cooperates more nicely with R's i/o // And as of armadillo and mlpack, we can use this stream object as well. #if !defined(ARMA_COUT_STREAM) diff --git a/src/mlpack/bindings/R/print_R.cpp b/src/mlpack/bindings/R/print_R.cpp index 97615bf58c..259766427a 100644 --- a/src/mlpack/bindings/R/print_R.cpp +++ b/src/mlpack/bindings/R/print_R.cpp @@ -184,21 +184,10 @@ void PrintR(util::Params& params, << endl; for (const string& opt : inputOptions) { - if (opt != "verbose") - { - util::ParamData& d = parameters.at(opt); - params.functionMap[d.tname]["PrintInputProcessing"](d, NULL, NULL); - } + util::ParamData& d = parameters.at(opt); + params.functionMap[d.tname]["PrintInputProcessing"](d, NULL, NULL); } - // Special handling for verbose output. - cout << " if (verbose) {" << endl; - cout << " EnableVerbose()" << endl; - cout << " } else {" << endl; - cout << " DisableVerbose()" << endl; - cout << " }" << endl; - cout << endl; - // Mark output parameters as passed. cout << " # Mark all output options as passed." << endl; for (const string& opt : outputOptions) diff --git a/src/mlpack/bindings/R/r_method.cpp.in b/src/mlpack/bindings/R/r_method.cpp.in index 68e1928da9..3452ecfab4 100644 --- a/src/mlpack/bindings/R/r_method.cpp.in +++ b/src/mlpack/bindings/R/r_method.cpp.in @@ -17,6 +17,11 @@ void ${PROGRAM_NAME}_call(SEXP params, SEXP timers) util::Params& p = *Rcpp::as>(params); util::Timers& t = *Rcpp::as>(timers); + if (p.Has("verbose")) + Log::Info.ignoreInput = false; + else + Log::Info.ignoreInput = true; + BINDING_FUNCTION(p, t); }