diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java index ea88bb799a4ab6fd7e6421bf41fe4e0f16e841c6..e0a7927923ef38ef5a32d764606beaeea7e45f1e 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/common/JavaUpCallsRFFIImpl.java @@ -71,6 +71,7 @@ import com.oracle.truffle.r.runtime.data.NativeDataAccess; import com.oracle.truffle.r.runtime.data.RArgsValuesAndNames; import com.oracle.truffle.r.runtime.data.RAttributable; import com.oracle.truffle.r.runtime.data.RAttributesLayout; +import com.oracle.truffle.r.runtime.data.RComplex; import com.oracle.truffle.r.runtime.data.RComplexVector; import com.oracle.truffle.r.runtime.data.RDataFactory; import com.oracle.truffle.r.runtime.data.RDoubleVector; @@ -84,6 +85,7 @@ import com.oracle.truffle.r.runtime.data.RLogicalVector; import com.oracle.truffle.r.runtime.data.RNull; import com.oracle.truffle.r.runtime.data.RObject; import com.oracle.truffle.r.runtime.data.RPromise; +import com.oracle.truffle.r.runtime.data.RRaw; import com.oracle.truffle.r.runtime.data.RPromise.EagerPromise; import com.oracle.truffle.r.runtime.data.RRawVector; import com.oracle.truffle.r.runtime.data.RShareable; @@ -140,6 +142,12 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI { } // Checkstyle: stop method name check + + @Override + public RComplexVector Rf_ScalarComplex(double real, double imag) { + return RDataFactory.createComplexVectorFromScalar(RComplex.valueOf(real, imag)); + } + @Override public RIntVector Rf_ScalarInteger(int value) { return RDataFactory.createIntVectorFromScalar(value); @@ -156,6 +164,11 @@ public abstract class JavaUpCallsRFFIImpl implements UpCallsRFFI { return RDataFactory.createLogicalVectorFromScalar(byteValue); } + @Override + public RRawVector Rf_ScalarRaw(int value) { + return RDataFactory.createRawVectorFromScalar(RRaw.valueOf((byte) value)); + } + @Override public RDoubleVector Rf_ScalarReal(double value) { return RDataFactory.createDoubleVectorFromScalar(value); diff --git a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java index 51b0437fec1e9cdd1437a3ba530d751642b42a2b..3ba0e88f2056102da145466cd099f511963c1bcf 100644 --- a/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java +++ b/com.oracle.truffle.r.ffi.impl/src/com/oracle/truffle/r/ffi/impl/upcalls/StdUpCallsRFFI.java @@ -156,10 +156,14 @@ import com.oracle.truffle.r.runtime.nmath.distr.Wilcox; public interface StdUpCallsRFFI { // Checkstyle: stop method name check + Object Rf_ScalarComplex(double real, double imag); + Object Rf_ScalarInteger(int value); Object Rf_ScalarLogical(int value); + Object Rf_ScalarRaw(int value); + Object Rf_ScalarReal(double value); Object Rf_ScalarString(Object value); diff --git a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h index 68e849869fa823349b0484e9203867c86dbaf182..d6486680dd1e055b545cdaae3ac32d93658f4c58 100644 --- a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h +++ b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcalls.h @@ -30,10 +30,12 @@ extern __thread void* *callbacks; // This is the complete set , including those not yet implemented +typedef SEXP (*call_Rf_ScalarComplex)(double real, double imag); typedef SEXP (*call_Rf_ScalarInteger)(int value); +typedef SEXP (*call_Rf_ScalarLogical)(int value); +typedef SEXP (*call_Rf_ScalarRaw)(int value); typedef SEXP (*call_Rf_ScalarReal)(double value); typedef SEXP (*call_Rf_ScalarString)(SEXP value); -typedef SEXP (*call_Rf_ScalarLogical)(int value); typedef SEXP (*call_Rf_allocVector)(SEXPTYPE t, R_xlen_t len); typedef SEXP (*call_Rf_allocArray)(SEXPTYPE t, SEXP dims); typedef SEXP (*call_Rf_alloc3DArray)(SEXPTYPE t, int x, int y, int z); diff --git a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcallsindex.h b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcallsindex.h index 37624dd9b8f6bc7a1a4bc6b540e69bea3e9ffe99..e987c23a84e2560b927f6305bc8605918a7722e6 100644 --- a/com.oracle.truffle.r.native/fficall/src/common/rffi_upcallsindex.h +++ b/com.oracle.truffle.r.native/fficall/src/common/rffi_upcallsindex.h @@ -123,233 +123,235 @@ #define Rf_NonNullStringMatch_x 94 #define Rf_PairToVectorList_x 95 #define Rf_PrintValue_x 96 -#define Rf_ScalarInteger_x 97 -#define Rf_ScalarLogical_x 98 -#define Rf_ScalarReal_x 99 -#define Rf_ScalarString_x 100 -#define Rf_VectorToPairList_x 101 -#define Rf_allocArray_x 102 -#define Rf_allocMatrix_x 103 -#define Rf_allocVector_x 104 -#define Rf_any_duplicated_x 105 -#define Rf_any_duplicated3_x 106 -#define Rf_asChar_x 107 -#define Rf_asCharacterFactor_x 108 -#define Rf_asInteger_x 109 -#define Rf_asLogical_x 110 -#define Rf_asReal_x 111 -#define Rf_bessel_i_x 112 -#define Rf_bessel_i_ex_x 113 -#define Rf_bessel_j_x 114 -#define Rf_bessel_j_ex_x 115 -#define Rf_bessel_k_x 116 -#define Rf_bessel_k_ex_x 117 -#define Rf_bessel_y_x 118 -#define Rf_bessel_y_ex_x 119 -#define Rf_beta_x 120 -#define Rf_choose_x 121 -#define Rf_classgets_x 122 -#define Rf_coerceVector_x 123 -#define Rf_cons_x 124 -#define Rf_copyListMatrix_x 125 -#define Rf_copyMatrix_x 126 -#define Rf_copyMostAttrib_x 127 -#define Rf_cospi_x 128 -#define Rf_dbeta_x 129 -#define Rf_dbinom_x 130 -#define Rf_dcauchy_x 131 -#define Rf_dchisq_x 132 -#define Rf_defineVar_x 133 -#define Rf_dexp_x 134 -#define Rf_df_x 135 -#define Rf_dgamma_x 136 -#define Rf_dgeom_x 137 -#define Rf_dhyper_x 138 -#define Rf_digamma_x 139 -#define Rf_dlnorm_x 140 -#define Rf_dlogis_x 141 -#define Rf_dnbeta_x 142 -#define Rf_dnbinom_x 143 -#define Rf_dnbinom_mu_x 144 -#define Rf_dnchisq_x 145 -#define Rf_dnf_x 146 -#define Rf_dnorm4_x 147 -#define Rf_dnt_x 148 -#define Rf_dpois_x 149 -#define Rf_dpsifn_x 150 -#define Rf_dsignrank_x 151 -#define Rf_dt_x 152 -#define Rf_dunif_x 153 -#define Rf_duplicate_x 154 -#define Rf_dweibull_x 155 -#define Rf_dwilcox_x 156 -#define Rf_error_x 157 -#define Rf_errorcall_x 158 -#define Rf_eval_x 159 -#define Rf_findFun_x 160 -#define Rf_findVar_x 161 -#define Rf_findVarInFrame_x 162 -#define Rf_findVarInFrame3_x 163 -#define Rf_fprec_x 164 -#define Rf_ftrunc_x 165 -#define Rf_gammafn_x 166 -#define Rf_getAttrib_x 167 -#define Rf_gsetVar_x 168 -#define Rf_inherits_x 169 -#define Rf_install_x 170 -#define Rf_installChar_x 171 -#define Rf_isNull_x 172 -#define Rf_isObject_x 173 -#define Rf_isString_x 174 -#define Rf_lbeta_x 175 -#define Rf_lchoose_x 176 -#define Rf_lengthgets_x 177 -#define Rf_lgamma1p_x 178 -#define Rf_lgammafn_x 179 -#define Rf_lgammafn_sign_x 180 -#define Rf_log1pexp_x 181 -#define Rf_log1pmx_x 182 -#define Rf_logspace_add_x 183 -#define Rf_logspace_sub_x 184 -#define Rf_match_x 185 -#define Rf_mkCharLenCE_x 186 -#define Rf_namesgets_x 187 -#define Rf_ncols_x 188 -#define Rf_nrows_x 189 -#define Rf_pbeta_x 190 -#define Rf_pbinom_x 191 -#define Rf_pcauchy_x 192 -#define Rf_pchisq_x 193 -#define Rf_pentagamma_x 194 -#define Rf_pexp_x 195 -#define Rf_pf_x 196 -#define Rf_pgamma_x 197 -#define Rf_pgeom_x 198 -#define Rf_phyper_x 199 -#define Rf_plnorm_x 200 -#define Rf_plogis_x 201 -#define Rf_pnbeta_x 202 -#define Rf_pnbinom_x 203 -#define Rf_pnbinom_mu_x 204 -#define Rf_pnchisq_x 205 -#define Rf_pnf_x 206 -#define Rf_pnorm5_x 207 -#define Rf_pnorm_both_x 208 -#define Rf_pnt_x 209 -#define Rf_ppois_x 210 -#define Rf_protect_x 211 -#define Rf_psigamma_x 212 -#define Rf_psignrank_x 213 -#define Rf_pt_x 214 -#define Rf_ptukey_x 215 -#define Rf_punif_x 216 -#define Rf_pweibull_x 217 -#define Rf_pwilcox_x 218 -#define Rf_qbeta_x 219 -#define Rf_qbinom_x 220 -#define Rf_qcauchy_x 221 -#define Rf_qchisq_x 222 -#define Rf_qexp_x 223 -#define Rf_qf_x 224 -#define Rf_qgamma_x 225 -#define Rf_qgeom_x 226 -#define Rf_qhyper_x 227 -#define Rf_qlnorm_x 228 -#define Rf_qlogis_x 229 -#define Rf_qnbeta_x 230 -#define Rf_qnbinom_x 231 -#define Rf_qnbinom_mu_x 232 -#define Rf_qnchisq_x 233 -#define Rf_qnf_x 234 -#define Rf_qnorm5_x 235 -#define Rf_qnt_x 236 -#define Rf_qpois_x 237 -#define Rf_qsignrank_x 238 -#define Rf_qt_x 239 -#define Rf_qtukey_x 240 -#define Rf_qunif_x 241 -#define Rf_qweibull_x 242 -#define Rf_qwilcox_x 243 -#define Rf_rbeta_x 244 -#define Rf_rbinom_x 245 -#define Rf_rcauchy_x 246 -#define Rf_rchisq_x 247 -#define Rf_rexp_x 248 -#define Rf_rf_x 249 -#define Rf_rgamma_x 250 -#define Rf_rgeom_x 251 -#define Rf_rhyper_x 252 -#define Rf_rlnorm_x 253 -#define Rf_rlogis_x 254 -#define Rf_rmultinom_x 255 -#define Rf_rnbinom_x 256 -#define Rf_rnbinom_mu_x 257 -#define Rf_rnchisq_x 258 -#define Rf_rnorm_x 259 -#define Rf_rpois_x 260 -#define Rf_rsignrank_x 261 -#define Rf_rt_x 262 -#define Rf_runif_x 263 -#define Rf_rweibull_x 264 -#define Rf_rwilcox_x 265 -#define Rf_setAttrib_x 266 -#define Rf_sign_x 267 -#define Rf_sinpi_x 268 -#define Rf_str2type_x 269 -#define Rf_tanpi_x 270 -#define Rf_tetragamma_x 271 -#define Rf_trigamma_x 272 -#define Rf_unprotect_x 273 -#define Rf_unprotect_ptr_x 274 -#define Rf_warning_x 275 -#define Rf_warningcall_x 276 -#define Rprintf_x 277 -#define SETCAD4R_x 278 -#define SETCADDDR_x 279 -#define SETCADDR_x 280 -#define SETCADR_x 281 -#define SETCAR_x 282 -#define SETCDR_x 283 -#define SETLENGTH_x 284 -#define SETLEVELS_x 285 -#define SET_ATTRIB_x 286 -#define SET_BODY_x 287 -#define SET_CLOENV_x 288 -#define SET_ENCLOS_x 289 -#define SET_FORMALS_x 290 -#define SET_NAMED_FASTR_x 291 -#define SET_OBJECT_x 292 -#define SET_RDEBUG_x 293 -#define SET_RSTEP_x 294 -#define SET_S4_OBJECT_x 295 -#define SET_STRING_ELT_x 296 -#define SET_SYMVALUE_x 297 -#define SET_TAG_x 298 -#define SET_TRUELENGTH_x 299 -#define SET_TYPEOF_x 300 -#define SET_VECTOR_ELT_x 301 -#define STRING_ELT_x 302 -#define SYMVALUE_x 303 -#define TAG_x 304 -#define TRUELENGTH_x 305 -#define TYPEOF_x 306 -#define UNSET_S4_OBJECT_x 307 -#define VECTOR_ELT_x 308 -#define forceSymbols_x 309 -#define getCCallable_x 310 -#define getConnectionClassString_x 311 -#define getEmbeddingDLLInfo_x 312 -#define getOpenModeString_x 313 -#define getSummaryDescription_x 314 -#define isSeekable_x 315 -#define octsize_x 316 -#define registerCCallable_x 317 -#define registerRoutines_x 318 -#define restoreHandlerStacks_x 319 -#define setDotSymbolValues_x 320 -#define unif_rand_x 321 -#define useDynamicSymbols_x 322 +#define Rf_ScalarComplex_x 97 +#define Rf_ScalarInteger_x 98 +#define Rf_ScalarLogical_x 99 +#define Rf_ScalarRaw_x 100 +#define Rf_ScalarReal_x 101 +#define Rf_ScalarString_x 102 +#define Rf_VectorToPairList_x 103 +#define Rf_allocArray_x 104 +#define Rf_allocMatrix_x 105 +#define Rf_allocVector_x 106 +#define Rf_any_duplicated_x 107 +#define Rf_any_duplicated3_x 108 +#define Rf_asChar_x 109 +#define Rf_asCharacterFactor_x 110 +#define Rf_asInteger_x 111 +#define Rf_asLogical_x 112 +#define Rf_asReal_x 113 +#define Rf_bessel_i_x 114 +#define Rf_bessel_i_ex_x 115 +#define Rf_bessel_j_x 116 +#define Rf_bessel_j_ex_x 117 +#define Rf_bessel_k_x 118 +#define Rf_bessel_k_ex_x 119 +#define Rf_bessel_y_x 120 +#define Rf_bessel_y_ex_x 121 +#define Rf_beta_x 122 +#define Rf_choose_x 123 +#define Rf_classgets_x 124 +#define Rf_coerceVector_x 125 +#define Rf_cons_x 126 +#define Rf_copyListMatrix_x 127 +#define Rf_copyMatrix_x 128 +#define Rf_copyMostAttrib_x 129 +#define Rf_cospi_x 130 +#define Rf_dbeta_x 131 +#define Rf_dbinom_x 132 +#define Rf_dcauchy_x 133 +#define Rf_dchisq_x 134 +#define Rf_defineVar_x 135 +#define Rf_dexp_x 136 +#define Rf_df_x 137 +#define Rf_dgamma_x 138 +#define Rf_dgeom_x 139 +#define Rf_dhyper_x 140 +#define Rf_digamma_x 141 +#define Rf_dlnorm_x 142 +#define Rf_dlogis_x 143 +#define Rf_dnbeta_x 144 +#define Rf_dnbinom_x 145 +#define Rf_dnbinom_mu_x 146 +#define Rf_dnchisq_x 147 +#define Rf_dnf_x 148 +#define Rf_dnorm4_x 149 +#define Rf_dnt_x 150 +#define Rf_dpois_x 151 +#define Rf_dpsifn_x 152 +#define Rf_dsignrank_x 153 +#define Rf_dt_x 154 +#define Rf_dunif_x 155 +#define Rf_duplicate_x 156 +#define Rf_dweibull_x 157 +#define Rf_dwilcox_x 158 +#define Rf_error_x 159 +#define Rf_errorcall_x 160 +#define Rf_eval_x 161 +#define Rf_findFun_x 162 +#define Rf_findVar_x 163 +#define Rf_findVarInFrame_x 164 +#define Rf_findVarInFrame3_x 165 +#define Rf_fprec_x 166 +#define Rf_ftrunc_x 167 +#define Rf_gammafn_x 168 +#define Rf_getAttrib_x 169 +#define Rf_gsetVar_x 170 +#define Rf_inherits_x 171 +#define Rf_install_x 172 +#define Rf_installChar_x 173 +#define Rf_isNull_x 174 +#define Rf_isObject_x 175 +#define Rf_isString_x 176 +#define Rf_lbeta_x 177 +#define Rf_lchoose_x 178 +#define Rf_lengthgets_x 179 +#define Rf_lgamma1p_x 180 +#define Rf_lgammafn_x 181 +#define Rf_lgammafn_sign_x 182 +#define Rf_log1pexp_x 183 +#define Rf_log1pmx_x 184 +#define Rf_logspace_add_x 185 +#define Rf_logspace_sub_x 186 +#define Rf_match_x 187 +#define Rf_mkCharLenCE_x 188 +#define Rf_namesgets_x 189 +#define Rf_ncols_x 190 +#define Rf_nrows_x 191 +#define Rf_pbeta_x 192 +#define Rf_pbinom_x 193 +#define Rf_pcauchy_x 194 +#define Rf_pchisq_x 195 +#define Rf_pentagamma_x 196 +#define Rf_pexp_x 197 +#define Rf_pf_x 198 +#define Rf_pgamma_x 199 +#define Rf_pgeom_x 200 +#define Rf_phyper_x 201 +#define Rf_plnorm_x 202 +#define Rf_plogis_x 203 +#define Rf_pnbeta_x 204 +#define Rf_pnbinom_x 205 +#define Rf_pnbinom_mu_x 206 +#define Rf_pnchisq_x 207 +#define Rf_pnf_x 208 +#define Rf_pnorm5_x 209 +#define Rf_pnorm_both_x 210 +#define Rf_pnt_x 211 +#define Rf_ppois_x 212 +#define Rf_protect_x 213 +#define Rf_psigamma_x 214 +#define Rf_psignrank_x 215 +#define Rf_pt_x 216 +#define Rf_ptukey_x 217 +#define Rf_punif_x 218 +#define Rf_pweibull_x 219 +#define Rf_pwilcox_x 220 +#define Rf_qbeta_x 221 +#define Rf_qbinom_x 222 +#define Rf_qcauchy_x 223 +#define Rf_qchisq_x 224 +#define Rf_qexp_x 225 +#define Rf_qf_x 226 +#define Rf_qgamma_x 227 +#define Rf_qgeom_x 228 +#define Rf_qhyper_x 229 +#define Rf_qlnorm_x 230 +#define Rf_qlogis_x 231 +#define Rf_qnbeta_x 232 +#define Rf_qnbinom_x 233 +#define Rf_qnbinom_mu_x 234 +#define Rf_qnchisq_x 235 +#define Rf_qnf_x 236 +#define Rf_qnorm5_x 237 +#define Rf_qnt_x 238 +#define Rf_qpois_x 239 +#define Rf_qsignrank_x 240 +#define Rf_qt_x 241 +#define Rf_qtukey_x 242 +#define Rf_qunif_x 243 +#define Rf_qweibull_x 244 +#define Rf_qwilcox_x 245 +#define Rf_rbeta_x 246 +#define Rf_rbinom_x 247 +#define Rf_rcauchy_x 248 +#define Rf_rchisq_x 249 +#define Rf_rexp_x 250 +#define Rf_rf_x 251 +#define Rf_rgamma_x 252 +#define Rf_rgeom_x 253 +#define Rf_rhyper_x 254 +#define Rf_rlnorm_x 255 +#define Rf_rlogis_x 256 +#define Rf_rmultinom_x 257 +#define Rf_rnbinom_x 258 +#define Rf_rnbinom_mu_x 259 +#define Rf_rnchisq_x 260 +#define Rf_rnorm_x 261 +#define Rf_rpois_x 262 +#define Rf_rsignrank_x 263 +#define Rf_rt_x 264 +#define Rf_runif_x 265 +#define Rf_rweibull_x 266 +#define Rf_rwilcox_x 267 +#define Rf_setAttrib_x 268 +#define Rf_sign_x 269 +#define Rf_sinpi_x 270 +#define Rf_str2type_x 271 +#define Rf_tanpi_x 272 +#define Rf_tetragamma_x 273 +#define Rf_trigamma_x 274 +#define Rf_unprotect_x 275 +#define Rf_unprotect_ptr_x 276 +#define Rf_warning_x 277 +#define Rf_warningcall_x 278 +#define Rprintf_x 279 +#define SETCAD4R_x 280 +#define SETCADDDR_x 281 +#define SETCADDR_x 282 +#define SETCADR_x 283 +#define SETCAR_x 284 +#define SETCDR_x 285 +#define SETLENGTH_x 286 +#define SETLEVELS_x 287 +#define SET_ATTRIB_x 288 +#define SET_BODY_x 289 +#define SET_CLOENV_x 290 +#define SET_ENCLOS_x 291 +#define SET_FORMALS_x 292 +#define SET_NAMED_FASTR_x 293 +#define SET_OBJECT_x 294 +#define SET_RDEBUG_x 295 +#define SET_RSTEP_x 296 +#define SET_S4_OBJECT_x 297 +#define SET_STRING_ELT_x 298 +#define SET_SYMVALUE_x 299 +#define SET_TAG_x 300 +#define SET_TRUELENGTH_x 301 +#define SET_TYPEOF_x 302 +#define SET_VECTOR_ELT_x 303 +#define STRING_ELT_x 304 +#define SYMVALUE_x 305 +#define TAG_x 306 +#define TRUELENGTH_x 307 +#define TYPEOF_x 308 +#define UNSET_S4_OBJECT_x 309 +#define VECTOR_ELT_x 310 +#define forceSymbols_x 311 +#define getCCallable_x 312 +#define getConnectionClassString_x 313 +#define getEmbeddingDLLInfo_x 314 +#define getOpenModeString_x 315 +#define getSummaryDescription_x 316 +#define isSeekable_x 317 +#define octsize_x 318 +#define registerCCallable_x 319 +#define registerRoutines_x 320 +#define restoreHandlerStacks_x 321 +#define setDotSymbolValues_x 322 +#define unif_rand_x 323 +#define useDynamicSymbols_x 324 -#define UPCALLS_TABLE_SIZE 323 +#define UPCALLS_TABLE_SIZE 325 #endif // RFFI_UPCALLSINDEX_H diff --git a/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h b/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h index 4252927b7b55bb9ae1b2e0453a004b964a0e9e95..5d7b516f784f47267a271c0e4b6ce15977f98c09 100644 --- a/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h +++ b/com.oracle.truffle.r.native/fficall/src/truffle_common/Rinternals_truffle_common.h @@ -144,13 +144,6 @@ int LENGTH(SEXP x) { return result; } -SEXP Rf_ScalarString(SEXP value) { - TRACE1(value); - SEXP result = ((call_Rf_ScalarString) callbacks[Rf_ScalarString_x])(value); - checkExitCall(); - return result; -} - SEXP Rf_mkString(const char *s) { TRACE0(); return ScalarString(Rf_mkChar(s)); @@ -300,6 +293,13 @@ void REvprintf(const char *format, va_list args) { UNIMPLEMENTED; } +SEXP Rf_ScalarComplex(Rcomplex value) { + TRACE0(); + SEXP result = ((call_Rf_ScalarComplex) callbacks[Rf_ScalarComplex_x])(value.r, value.i); + checkExitCall(); + return result; +} + SEXP Rf_ScalarInteger(int value) { TRACE0(); SEXP result = ((call_Rf_ScalarInteger) callbacks[Rf_ScalarInteger_x])(value); @@ -307,6 +307,20 @@ SEXP Rf_ScalarInteger(int value) { return result; } +SEXP Rf_ScalarLogical(int value) { + TRACE0(); + SEXP result = ((call_Rf_ScalarLogical) callbacks[Rf_ScalarLogical_x])(value); + checkExitCall(); + return result; +} + +SEXP Rf_ScalarRaw(Rbyte value) { + TRACE0(); + SEXP result = ((call_Rf_ScalarRaw) callbacks[Rf_ScalarRaw_x])(value); + checkExitCall(); + return result; +} + SEXP Rf_ScalarReal(double value) { TRACE0(); SEXP result = ((call_Rf_ScalarReal) callbacks[Rf_ScalarReal_x])(value); @@ -314,9 +328,9 @@ SEXP Rf_ScalarReal(double value) { return result; } -SEXP Rf_ScalarLogical(int value) { - TRACE0(); - SEXP result = ((call_Rf_ScalarLogical) callbacks[Rf_ScalarLogical_x])(value); +SEXP Rf_ScalarString(SEXP value) { + TRACE1(value); + SEXP result = ((call_Rf_ScalarString) callbacks[Rf_ScalarString_x])(value); checkExitCall(); return result; }