Skip to content

Instantly share code, notes, and snippets.

@yutannihilation
Last active February 25, 2023 03:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yutannihilation/3fa914926df4ea7106cd972cd6b4f104 to your computer and use it in GitHub Desktop.
Save yutannihilation/3fa914926df4ea7106cd972cd6b4f104 to your computer and use it in GitHub Desktop.

1. List up non-APIs

$ Rscript -e 'cat(tools:::nonAPI, sep = "\n")' | sort -u > nonAPI.txt
$ cat nonAPI.txt
AllDevicesKilled
Brent_fmin
OutDec
PRIMOFFSET
RC_fopen
R_CStackLimit
R_CStackStart
R_CleanTempDir
R_ClearerrConsole
R_CollectFromIndex
R_CompiledFileName
R_Consolefile
R_DefCallbacks
R_DefParams
R_DefParamsEx
R_DirtyImage
R_FileExists
R_FreeStringBuffer
R_FunTab
R_GE_setVFontRoutines
R_GUIType
R_GetConnection
R_GetVarLocMISSING
R_GlobalContext
R_HistoryFile
R_HistorySize
R_Home
R_HomeDir
R_InputHandlers
R_Interactive
R_MethodsNamespace
R_NewHashedEnv
R_NoEcho
R_OpenCompiledFile
R_Outputfile
R_PV
R_ParseContext
R_ParseContextLast
R_ParseContextLine
R_ParseError
R_ParseErrorMsg
R_PolledEvents
R_ReadConnection
R_ReplDLLdo1
R_ReplDLLinit
R_RestoreGlobalEnv
R_RestoreGlobalEnvFromFile
R_RestoreHistory
R_RunExitFinalizers
R_SaveGlobalEnv
R_SaveGlobalEnvToFile
R_SelectEx
R_SetParams
R_SetWin32
R_SignalHandlers
R_SizeFromEnv
R_SrcfileSymbol
R_SrcrefSymbol
R_Suicide
R_TempDir
R_Visible
R_WriteConnection
R_addTaskCallback
R_cairoCdynload
R_checkActivity
R_checkActivityEx
R_data_class
R_deferred_default_method
R_execMethod
R_findVarLocInFrame
R_fopen
R_gc_torture
R_getTaskCallbackNames
R_get_arith_function
R_gzclose
R_gzgets
R_gzopen
R_ignore_SIGPIPE
R_isForkedChild
R_isMethodsDispatchOn
R_moduleCdynload
R_new_custom_connection
R_primitive_generic
R_primitive_methods
R_print
R_removeTaskCallback
R_runHandlers
R_running_as_main_program
R_setInternetRoutines
R_setLapackRoutines
R_setStartTime
R_setX11Routines
R_set_command_line_arguments
R_set_prim_method
R_set_quick_method_check
R_set_standardGeneric_ptr
R_setupHistory
R_strtod4
R_subassign3_dflt
R_taskCallbackRoutine
R_timeout_handler
R_timeout_val
R_wait_usec
Rconn_fgetc
Rconn_printf
Rdownload
RestoreAction
Rf_CleanEd
Rf_EncodeComplex
Rf_EncodeElement
Rf_EncodeEnvironment
Rf_EncodeInteger
Rf_EncodeLogical
Rf_EncodeReal
Rf_GPretty
Rf_KillAllDevices
Rf_NewEnvironment
Rf_PrintDefaults
Rf_ReplIteration
Rf_Seql
Rf_addTaskCallback
Rf_begincontext
Rf_callToplevelHandlers
Rf_checkArityCall
Rf_con_pushback
Rf_copyMostAttribNoTs
Rf_deparse1
Rf_deparse1line
Rf_dpptr
Rf_endEmbeddedR
Rf_endcontext
Rf_envlength
Rf_formatComplex
Rf_formatInteger
Rf_formatLogical
Rf_formatReal
Rf_initEmbeddedR
Rf_init_con
Rf_initialize_R
Rf_isProtected
Rf_jump_to_toplevel
Rf_mainloop
Rf_mbrtowc
Rf_mkFalse
Rf_printNamedVector
Rf_printRealVector
Rf_printVector
Rf_removeTaskCallbackByIndex
Rf_removeTaskCallbackByName
Rf_set_iconv
Rf_sortVector
Rf_strIsASCII
Rf_strchr
Rf_strrchr
Rf_ucstomb
Rf_utf8towcs
Rf_wcstoutf8
Rg_PolledEvents
Rg_set_col_ptrs
Rg_wait_usec
Ri18n_iswctype
Ri18n_wcswidth
Ri18n_wctype
Ri18n_wcwidth
Rsockclose
Rsockconnect
Rsocklisten
Rsockopen
Rsockread
Rsockwrite
Runzip
SaveAction
UNIMPLEMENTED_TYPE
addInputHandler
baseRegisterIndex
call_R
cg_
ch_
chol2inv_
chol_
csduplicated
currentTime
dcar
dcdr
do_Rprof
do_Rprofmem
do_X11
do_contourLines
do_edit
do_getGraphicsEventEnv
do_getSnapshot
do_playSnapshot
do_saveplot
do_set_prim_method
dqrrsd_
dqrxb_
dtype
dummy_fgetc
dummy_ii
dummy_vfprintf
editorcleanall
epslon_
extR_HTTPDCreate
extR_HTTPDStop
fdhess
fft_factor
fft_work
fpu_setup
freeRUser
free_R_HOME
getConnection
getDLLVersion
getInputHandler
getPRIMNAME
getRUser
getSelectedHandler
get_R_HOME
initStdinHandler
known_to_be_latin1
locale2charset
match5
matherr
max_contour_segments
mbcsToUcs2
memtrace_report
optif0
parseError
process_site_Renviron
process_system_Renviron
process_user_Renviron
ptr_R_Busy
ptr_R_ChooseFile
ptr_R_CleanUp
ptr_R_ClearerrConsole
ptr_R_EditFile
ptr_R_EditFiles
ptr_R_FlushConsole
ptr_R_ProcessEvents
ptr_R_ReadConsole
ptr_R_ResetConsole
ptr_R_ShowFiles
ptr_R_ShowMessage
ptr_R_Suicide
ptr_R_WriteConsole
ptr_R_WriteConsoleEx
ptr_R_addhistory
ptr_R_loadhistory
ptr_R_savehistory
ptr_do_dataentry
ptr_do_dataviewer
ptr_do_selectlist
pythag_
readconsolecfg
removeInputHandler
rg_
rs_
run_Rmainloop
rwarnc_
setup_Rmainloop
tql2_
tqlrat_
tred1_
tred2_
utf8locale
yylloc

2. List up non-APIs used in extendr

$ while read LINE; do res="$(grep -R -w ${LINE} ./extendr-*)"; if [ -n "${res}" ]; then echo -e "[[${LINE}]]\n${res}\n\n"; fi; done < ./nonAPI.txt
[[R_CStackLimit]]
./extendr-engine/src/lib.rs:            // eprintln!("R_CStackLimit={:016x}", R_CStackLimit);
./extendr-engine/src/lib.rs:            R_CStackLimit = usize::MAX;


[[R_CleanTempDir]]
./extendr-engine/src/lib.rs:        R_CleanTempDir();


[[R_RunExitFinalizers]]
./extendr-engine/src/lib.rs:        R_RunExitFinalizers();


[[Rf_endEmbeddedR]]
./extendr-engine/src/lib.rs:        //Rf_endEmbeddedR(0);


[[Rf_initEmbeddedR]]
./extendr-engine/src/lib.rs:            // Due to Rf_initEmbeddedR using __libc_stack_end
./extendr-engine/src/lib.rs:            // We can't call Rf_initEmbeddedR.
./extendr-engine/src/lib.rs:            //let res = unsafe { Rf_initEmbeddedR(1, args.as_mut_ptr()) };


[[Rf_initialize_R]]
./extendr-engine/src/lib.rs:            Rf_initialize_R(


[[setup_Rmainloop]]
./extendr-engine/src/lib.rs:            setup_Rmainloop();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment