26#if defined (HAVE_CONFIG_H)
53#include "builtin-defun-decls.h"
99DEFUN (__version_info__, args, ,
107 int nargin = args.
length ();
109 if (nargin != 0 && nargin != 4)
116 else if (nargin == 4)
120 vinfo.
assign (
"Name", args(0));
121 vinfo.
assign (
"Version", args(1));
122 vinfo.
assign (
"Release", args(2));
123 vinfo.
assign (
"Date", args(3));
193 exit_status = args(0).xnint_value (
"quit: STATUS must be an integer");
195 = args(1).xstring_value (
"quit: second argument must be a string");
200 error (R
"(quit: second argument must be string "force")");
204 if (args(0).is_string ())
207 = R
"(quit: option must be string "cancel" or "force")";
209 std::string opt = args(0).xstring_value (msg);
213 else if (opt ==
"force")
219 exit_status = args(0).xnint_value (
"quit: STATUS must be an integer");
226 if (interp.executing_finish_script ())
227 interp.cancel_quit (
true);
232 interp.quit (exit_status, force);
285 int nargin = args.length ();
287 if (nargin < 1 || nargin > 2)
290 std::string arg = args(0).xstring_value (
"atexit: FCN argument must be a string");
292 bool add_mode = (nargin == 2)
293 ? args(1).strict_bool_value (
"atexit: FLAG argument must be a logical value")
299 interp.add_atexit_fcn (arg);
302 bool found = interp.remove_atexit_fcn (arg);
305 retval =
ovl (found);
317 return ovl (interp.traditional ());
328 m_files.insert (file);
334 while (! m_files.empty ())
336 auto it = m_files.begin ();
348initialize_version_info ()
352 args(0) =
"GNU Octave";
354 args(2) = config::release ();
355 args(3) = OCTAVE_RELEASE_DATE;
363 error (
"Fortran procedure terminated by call to XERBLA");
367initialize_xerbla_error_handler ()
376 if (numeric_limits<double>::NaN () == -1)
377 F77_FUNC (xerbla, XERBLA) (
"octave", 13 F77_CHAR_ARG_LEN (6));
379 typedef void (*xerbla_handler_ptr) ();
381 typedef void (*octave_set_xerbla_handler_ptr) (xerbla_handler_ptr);
388 =
reinterpret_cast<octave_set_xerbla_handler_ptr
>
389 (libs.search (
"octave_set_xerbla_handler"));
396OCTAVE_NORETURN
static void
397lo_error_handler (
const char *fmt, ...)
400 va_start (args, fmt);
407OCTAVE_NORETURN
static void
408lo_error_with_id_handler (
const char *
id,
const char *fmt, ...)
411 va_start (args, fmt);
419initialize_error_handlers ()
432 : m_app_context (app_context),
439 m_error_system (*this),
440 m_help_system (*this),
441 m_input_system (*this),
442 m_output_system (*this),
443 m_history_system (*this),
444 m_dynamic_loader (*this),
446 m_load_save_system (*this),
448 m_symbol_table (*this),
449 m_stream_list (*this),
451 m_url_handle_manager (),
452 m_cdef_manager (*this),
453 m_gtk_manager (*this),
454 m_event_manager (*this),
455 m_gh_manager (nullptr),
456 m_interactive (false),
457 m_read_site_files (true),
458 m_read_user_files (m_app_context != nullptr),
459 m_init_trace (false),
460 m_traditional (false),
461 m_inhibit_startup_message (false),
462 m_load_path_initialized (false),
463 m_history_initialized (false),
464 m_interrupt_all_in_process_group (true),
465 m_cancel_quit (false),
466 m_executing_finish_script (false),
467 m_executing_atexit (false),
468 m_initialized (false)
476 throw std::runtime_error
477 (
"only one Octave interpreter may be active");
481#if defined (OCTAVE_HAVE_WINDOWS_UTF8_LOCALE)
483 std::setlocale (LC_ALL,
".UTF8");
485 std::setlocale (LC_ALL,
"");
488 std::setlocale (LC_NUMERIC,
"C");
489 std::setlocale (LC_TIME,
"C");
490 sys::env::putenv (
"LC_NUMERIC",
"C");
491 sys::env::putenv (
"LC_TIME",
"C");
500 initialize_xerbla_error_handler ();
502 initialize_error_handlers ();
515 bool line_editing =
false;
534 for (
const auto& pth : command_line_path)
537 std::string exec_path = options.
exec_path ();
538 if (! exec_path.empty ())
541 std::string image_path = options.
image_path ();
542 if (! image_path.empty ())
555 m_interactive = (! is_octave_program && stdin_is_tty
563 forced_interactive =
false;
567 if (forced_interactive)
568 m_interactive =
true;
571 if ((! m_interactive || forced_interactive)
573 line_editing =
false;
586 if (! docstrings_file.empty ())
587 Fbuilt_in_docstrings_file (*
this,
ovl (docstrings_file));
590 if (! doc_cache_file.empty ())
591 Fdoc_cache_file (*
this,
ovl (doc_cache_file));
593 std::string info_file = options.
info_file ();
594 if (! info_file.empty ())
595 Finfo_file (*
this,
ovl (info_file));
598 if (! info_program.empty ())
599 Finfo_program (*
this,
ovl (info_program));
602 if (! texi_macros_file.empty ())
603 Ftexi_macros_file (*
this,
ovl (texi_macros_file));
624 initialize_version_info ();
630 maximum_braindamage ();
635OCTAVE_THREAD_LOCAL
interpreter *interpreter::s_instance =
nullptr;
656 if (! m_history_initialized)
666 if (! read_history_file)
670 m_history_system.
initialize (read_history_file);
675 m_history_initialized =
true;
685 if (! m_load_path_initialized)
708 m_load_path.
set_add_hook ([
this] (
const std::string& dir) { this->execute_pkg_add (dir); });
712 m_load_path_initialized =
true;
730 if (! options.
gui ())
731 display_startup_message ();
734 display_startup_message ();
737 display_startup_message ();
766 m_initialized =
true;
781class cli_input_reader
786 : m_interpreter (interp), m_thread () { }
788 OCTAVE_DISABLE_CONSTRUCT_COPY_MOVE (cli_input_reader)
808 std::thread m_thread;
813 bool& incomplete_parse)
830 execute_startup_files ();
838 int status = execute_eval_option_code ();
841 exit_status = status;
857 int status = execute_command_line_file ();
860 exit_status = status;
874 exit_status = server_loop ();
881 exit_status = server_loop ();
889 cli_input_reader reader (*
this);
893 exit_status = server_loop ();
897 exit_status = main_loop ();
902 catch (
const exit_exception& xe)
904 exit_status = xe.exit_status ();
915#define OCTAVE_IGNORE_EXCEPTION(E) \
918 recover_from_exception (); \
920 std::cerr << "error: ignoring " #E " while preparing to exit" \
924#define OCTAVE_SAFE_CALL(F, ARGS) \
929 unwind_action restore_debug_on_error \
930 (&error_system::set_debug_on_error, &m_error_system, \
931 m_error_system.debug_on_error ()); \
933 unwind_action restore_debug_on_warning \
934 (&error_system::set_debug_on_warning, &m_error_system, \
935 m_error_system.debug_on_warning ()); \
937 m_error_system.debug_on_error (false); \
938 m_error_system.debug_on_warning (false); \
942 OCTAVE_IGNORE_EXCEPTION (const exit_exception&) \
943 OCTAVE_IGNORE_EXCEPTION (const interrupt_exception&) \
944 OCTAVE_IGNORE_EXCEPTION (const execution_exception&) \
945 OCTAVE_IGNORE_EXCEPTION (const std::bad_alloc&) \
950interpreter::shutdown ()
957 m_initialized =
false;
965 execute_atexit_fcns ();
1061interpreter::execute_atexit_fcns ()
1064 m_executing_atexit =
true;
1066 while (! m_atexit_fcns.empty ())
1068 std::string fcn = m_atexit_fcns.front ();
1070 m_atexit_fcns.pop_front ();
1079interpreter::display_startup_message ()
const
1099interpreter::execute_startup_files ()
1103 bool trace = m_init_trace;
1118 bool require_file =
false;
1120 std::string context;
1122 int exit_status = 0;
1131 int status = safe_source_file (config::local_site_defaults_file (),
1132 context, trace, require_file);
1135 exit_status = status;
1137 status = safe_source_file (config::site_defaults_file (),
1138 context, trace, require_file);
1141 exit_status = status;
1148 std::string ff_startup_m =
file_in_path (
"startup.m",
"");
1150 if (! ff_startup_m.empty ())
1152 int parse_status = 0;
1156 eval_string (std::string (
"startup"),
false, parse_status, 0);
1158 catch (
const interrupt_exception&)
1172 std::string user_config_dir = sys::env::get_user_config_directory ();
1174 std::string cfg_dir = user_config_dir + sys::file_ops::dir_sep_str ()
1177 std::string cfg_rc = sys::env::make_absolute (
"octaverc", cfg_dir);
1179 if (! cfg_rc.empty ())
1181 int status = safe_source_file (cfg_rc, context, trace,
1185 exit_status = status;
1192 bool home_rc_already_executed =
false;
1194 std::string initfile = sys::env::getenv (
"OCTAVE_INITFILE");
1196 if (initfile.empty ())
1197 initfile =
".octaverc";
1199 std::string home_dir = sys::env::get_home_directory ();
1201 std::string home_rc = sys::env::make_absolute (initfile, home_dir);
1203 std::string local_rc;
1205 if (! home_rc.empty ())
1207 int status = safe_source_file (home_rc, context, trace,
1211 exit_status = status;
1215 if (sys::file_exists (home_rc))
1220 local_rc = sys::env::make_absolute (initfile);
1222 home_rc_already_executed = sys::same_file (home_rc, local_rc);
1226 if (! home_rc_already_executed)
1228 if (local_rc.empty ())
1229 local_rc = sys::env::make_absolute (initfile);
1231 int status = safe_source_file (local_rc, context, trace,
1235 exit_status = status;
1239 if (m_interactive && trace)
1248interpreter::execute_eval_option_code ()
1250 if (! m_app_context)
1259 int parse_status = 0;
1263 eval_string (code_to_eval,
false, parse_status, 0);
1265 catch (
const interrupt_exception&)
1278 return parse_status;
1282interpreter::execute_command_line_file ()
1284 if (! m_app_context)
1292 unwind_action restore_interactive (interactive_fptr,
this, m_interactive);
1299 void (
application::*program_invocation_name_fptr) (const std::string&)
1302 (program_invocation_name_fptr, m_app_context,
1305 void (
application::*program_name_fptr) (const std::string&)
1310 m_interactive =
false;
1320 std::string fname = script_args[0];
1324 std::string context;
1326 bool require_file =
true;
1328 return safe_source_file (fname, context,
verbose, require_file);
1332interpreter::main_loop ()
1336 return m_evaluator.
repl ();
1340interpreter::server_loop ()
1354 return m_stream_list;
1360 return m_url_handle_manager;
1381 error (
"%s: symbol table scope missing", who.c_str ());
1395 std::string xdir = sys::file_ops::tilde_expand (dir);
1397 int cd_ok = sys::env::chdir (xdir);
1400 error (
"%s: %s", dir.c_str (), std::strerror (errno));
1422 m_evaluator.
mlock (skip_first);
1428 m_evaluator.
munlock (skip_first);
1434 return m_evaluator.
mislocked (skip_first);
1441 error (
"munlock: invalid value for NAME");
1464 error (
"mislocked: invalid value for NAME");
1472 bool retval =
false;
1495 bool silent,
int& parse_status,
1498 return m_evaluator.
eval_string (eval_str, silent, parse_status, nargout);
1503 bool silent,
int& parse_status)
1505 return m_evaluator.
eval_string (eval_str, silent, parse_status);
1510 bool silent,
int& parse_status,
1513 return m_evaluator.
eval_string (arg, silent, parse_status, nargout);
1520 return m_evaluator.
eval (try_code, nargout);
1525 const std::string& catch_code,
1528 return m_evaluator.
eval (try_code, catch_code, nargout);
1533 const std::string& try_code,
1536 return m_evaluator.
evalin (context, try_code, nargout);
1541 const std::string& try_code,
1542 const std::string& catch_code,
1545 return m_evaluator.
evalin (context, try_code, catch_code, nargout);
1562 return feval (std::string (name), args, nargout);
1573 error (
"feval: function '%s' not found", name.c_str ());
1577 return of->
call (m_evaluator, nargout, args);
1586 return fcn->
call (m_evaluator, nargout, args);
1614 std::list<octave_value_list> arg_list;
1615 arg_list.push_back (args);
1624 return xval.
subsref (
"(", arg_list, nargout);
1631 error (
"feval: first argument must be a string, inline function, or a function handle");
1652 error (
"feval: first argument must be a string, inline function, or a function handle");
1658 return feval (f_arg, tmp_args, nargout);
1664 return m_evaluator.
inputname (n, ids_only);
1721 return m_evaluator.
varval (name);
1728 m_evaluator.
assign (name, val);
1733 const std::string& name,
1736 m_evaluator.
assignin (context, name, val);
1741 const std::string& context,
bool verbose,
1762 return m_evaluator.
find (name);
1867std::list<std::string>
1873std::list<std::string>
1879std::list<std::string>
1885std::list<std::string>
1891std::list<std::string>
1903 static int sigint = 0;
1904 static bool first =
true;
1946 m_evaluator.
dbquit (
true);
1967 return m_input_system.
PS1 (args, nargout);
1973 return m_input_system.
PS1 ();
1979 return m_input_system.
PS1 (s);
1991 return m_input_system.
PS2 (args, nargout);
1997 return m_input_system.
PS2 ();
2003 return m_input_system.
PS2 (s);
2015 return m_evaluator.
PS4 (args, nargout);
2021 return m_evaluator.
PS4 ();
2027 return m_evaluator.
PS4 (s);
2041 if (! m_app_context)
2068std::set<std::string>
2103 m_tmp_files.
insert (file);
2119 bool cancel =
false;
2126 evalin (
"base",
"finish", 0);
2128 cancel = m_cancel_quit;
2152 throw exit_exception (exit_status);
2158 if (m_executing_atexit)
2161 m_atexit_fcns.push_front (fname);
2169 for (
auto it = m_atexit_fcns.begin ();
2170 it != m_atexit_fcns.end (); it++)
2174 m_atexit_fcns.erase (it);
2186interpreter::maximum_braindamage ()
2200 Foptimize_diagonal_matrix (
ovl (
false));
2201 Foptimize_permutation_matrix (
ovl (
false));
2202 Foptimize_range (
ovl (
false));
2213 m_error_system.
disable_warning (
"Octave:possible-matlab-short-circuit-operator");
2217interpreter::execute_pkg_add (
const std::string& dir)
2223 catch (
const interrupt_exception&)
2239interpreter::safe_source_file (
const std::string& file_name,
2240 const std::string& context,
2241 bool verbose,
bool require_file)
2247 catch (
const interrupt_exception&)
2263OCTAVE_END_NAMESPACE(octave)
void set_program_names(const std::string &pname)
void forced_interactive(bool arg)
void intern_argv(const string_vector &args)
bool have_eval_option_code() const
cmdline_options options() const
static std::string program_name()
bool is_octave_program() const
bool have_script_file() const
static std::string program_invocation_name()
bool line_editing() const
bool forced_interactive() const
bool experimental_terminal_widget() const
std::string texi_macros_file() const
bool inhibit_startup_message() const
std::string doc_cache_file() const
std::string image_path() const
bool read_site_files() const
string_vector remaining_args() const
bool read_user_files() const
std::string info_program() const
bool read_history_file() const
std::string exec_path() const
bool no_window_system() const
std::string code_to_eval() const
string_vector all_args() const
std::string info_file() const
std::string docstrings_file() const
bool echo_commands() const
bool set_initial_path() const
bool forced_line_editing() const
std::list< std::string > command_line_path() const
static void blink_matching_paren(bool flag)
static void restore_terminal_state()
static void add_event_hook(event_hook_fcn f)
static bool ignoring_entries()
static void clean_up_and_save(const std::string &="", int=-1)
static void ignore_entries(bool=true)
Vector representing the dimensions (size) of an Array.
octave_value image_path(const octave_value_list &args, int nargout)
octave_value exec_path(const octave_value_list &args, int nargout)
octave_value beep_on_error(const octave_value_list &args, int nargout)
void disable_warning(const std::string &id)
void save_exception(const execution_exception &ee)
void display_exception(const execution_exception &ee) const
void process_events(bool disable=false)
void interpreter_interrupted()
void directory_changed(const std::string &dir)
void start_gui(bool gui_app=false)
void unload_all_toolkits()
octave_value timestamp_format_string(const octave_value_list &args, int nargout)
void initialize(bool read_history_file=false)
octave_value global_varval(const std::string &name) const
octave_value varval(const std::string &name) const
void clear_variable(const std::string &name)
octave_value make_function_handle(const std::string &name)
void assignin(const std::string &context, const std::string &varname, const octave_value &val=octave_value())
bool isglobal(const std::string &name) const
void quit(int exit_status, bool force=false, bool confirm=true)
void clear_global_variables()
std::list< std::string > autoloaded_functions() const
void global_assign(const std::string &name, const octave_value &val=octave_value())
void install_variable(const std::string &name, const octave_value &value, bool global)
void add_debug_watch_expression(const std::string &expr)
bool at_top_level() const
void read_site_files(bool flag)
void add_atexit_fcn(const std::string &fname)
bool remove_atexit_fcn(const std::string &fname)
octave_value find(const std::string &name)
void mlock(bool skip_first=false) const
profiler & get_profiler()
void source_file(const std::string &file_name, const std::string &context="", bool verbose=false, bool require_file=true)
std::list< std::string > variable_names()
void top_level_assign(const std::string &name, const octave_value &val=octave_value())
std::set< std::string > debug_watch_expressions() const
octave_value_list eval(const std::string &try_code, int nargout)
octave_value_list eval_string(const std::string &eval_str, bool silent, int &parse_status, int nargout)
void clear_symbol_regexp(const std::string &pat)
void handle_exception(const execution_exception &ee)
bool experimental_terminal_widget() const
symbol_scope get_current_scope() const
void clear_symbol_pattern(const std::string &pat)
void clear_global_variable_regexp(const std::string &pattern)
void clear_global_variable(const std::string &name)
void set_PS1(const std::string &s)
int chdir(const std::string &dir)
std::list< std::string > user_function_names()
void clear_global_variable_pattern(const std::string &pattern)
void clear_function_regexp(const std::string &pat)
octave_value top_level_varval(const std::string &name) const
symbol_scope get_top_scope() const
void intern_nargin(octave_idx_type nargs)
void parse_and_execute(const std::string &input, bool &incomplete_parse)
bool is_variable(const std::string &name) const
interpreter(application *app_context=nullptr)
void clear_variable_regexp(const std::string &pattern)
bool mislocked(bool skip_first=false) const
tree_evaluator & get_evaluator()
void assign(const std::string &name, const octave_value &val=octave_value())
void initialize_history(bool read_history_file=false)
void clear_symbol(const std::string &name)
std::list< std::string > global_variable_names()
octave_value_list evalin(const std::string &context, const std::string &try_code, int nargout)
void read_user_files(bool flag)
std::string mfilename(const std::string &opt="") const
void initialize_load_path(bool set_initial_path=true)
void clear_debug_watch_expressions()
void inhibit_startup_message(bool flag)
void clear_variable_pattern(const std::string &pattern)
void clear_function_pattern(const std::string &pat)
bool is_local_variable(const std::string &name) const
std::list< std::string > top_level_variable_names()
void munlock(bool skip_first=false) const
octave_value_list feval(const char *name, const octave_value_list &args=octave_value_list(), int nargout=0)
Evaluate an Octave function (built-in or interpreted) and return the list of result values.
url_handle_manager & get_url_handle_manager()
symbol_scope require_current_scope(const std::string &who) const
std::string inputname(int n, bool ids_only=true) const
void clear_function(const std::string &name)
void remove_debug_watch_expression(const std::string &expr)
void recover_from_exception()
void clear_all(bool force=false)
void mark_for_deletion(const std::string &file)
void set_PS2(const std::string &s)
stream_list & get_stream_list()
void set_PS4(const std::string &s)
void clear_functions(bool force=false)
void set_add_hook(const std::function< void(const std::string &)> &f)
void initialize(bool set_initial_path=false)
void read_dir_config(const std::string &dir) const
std::function< void(const std::string &)> get_add_hook()
void execute_pkg_add(const std::string &dir)
void set_command_line_path(const std::string &p)
octave_value save_default_options(const octave_value_list &args, int nargout)
octave_value crash_dumps_octave_core(const octave_value_list &args, int nargout)
virtual octave_value_list call(octave::tree_evaluator &tw, int nargout=0, const octave_value_list &args=octave_value_list())
void resize(const dim_vector &dv, bool fill=false)
octave_idx_type nfields() const
octave_idx_type length() const
octave_idx_type numel() const
void assign(const std::string &k, const Cell &val)
octave_value_list slice(octave_idx_type offset, octave_idx_type len, bool tags=false) const
octave_idx_type length() const
bool is_function_handle() const
bool is_undefined() const
bool is_inline_function() const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
octave_function * function_value(bool silent=false) const
std::string string_value(bool force=false) const
octave_idx_type length() const
octave_idx_type numel() const
void clear_function(const std::string &name)
void clear_function_pattern(const std::string &pat)
void clear_functions(bool force=false)
octave_value find_function(const std::string &name, const symbol_scope &search_scope=symbol_scope::invalid())
void clear_mex_functions()
std::list< std::string > user_function_names()
void clear_function_regexp(const std::string &pat)
void insert(const std::string &file)
octave_value_list eval_string(const std::string &eval_str, bool silent, int &parse_status, int nargout)
bool is_global(const std::string &name) const
bool mislocked(bool skip_first=false) const
void clear_all(bool force=false)
void source_file(const std::string &file_name, const std::string &context="", bool verbose=false, bool require_file=true)
symbol_scope get_current_scope() const
octave_value echo(const octave_value_list &args, int nargout)
void set_PS4(const std::string &s)
void clear_global_variables()
void clear_global_variable(const std::string &name)
bool break_on_next_statement() const
std::string inputname(int n, bool ids_only=true) const
void munlock(bool skip_first=false) const
bool at_top_level() const
octave_value find(const std::string &name)
std::list< std::string > variable_names() const
bool is_local_variable(const std::string &name) const
bool in_debug_repl() const
profiler & get_profiler()
symbol_scope get_top_scope() const
void clear_symbol_pattern(const std::string &pattern)
void clear_symbol(const std::string &name)
void remove_debug_watch_expression(const std::string &expr)
void dbquit(bool all=false)
void clear_variable(const std::string &name)
bool is_variable(const std::string &name) const
void add_debug_watch_expression(const std::string &expr)
std::list< std::string > global_variable_names() const
void clear_global_variable_pattern(const std::string &pattern)
void assign(const std::string &name, const octave_value &val=octave_value())
void assignin(const std::string &context, const std::string &name, const octave_value &val=octave_value())
octave_value top_level_varval(const std::string &name) const
void clear_symbol_regexp(const std::string &pattern)
std::list< std::string > autoloaded_functions() const
void eval(std::shared_ptr< tree_statement_list > &stmt_list, bool interactive)
octave_value_list evalin(const std::string &context, const std::string &try_code, int nargout)
octave_value global_varval(const std::string &name) const
void top_level_assign(const std::string &name, const octave_value &val=octave_value())
void install_variable(const std::string &name, const octave_value &value, bool global)
void set_auto_fcn_var(stack_frame::auto_var_type avt, const octave_value &val=octave_value())
std::set< std::string > debug_watch_expressions() const
void clear_global_variable_regexp(const std::string &pattern)
void parse_and_execute(const std::string &input, bool &incomplete_parse)
void clear_debug_watch_expressions()
std::list< std::string > top_level_variable_names() const
void global_assign(const std::string &name, const octave_value &val=octave_value())
octave_value make_fcn_handle(const std::string &nm)
void mlock(bool skip_first=false) const
octave_value varval(const symbol_record &sym) const
octave_value PS4(const octave_value_list &args, int nargout)
std::string mfilename(const std::string &opt="") const
void clear_variable_regexp(const std::string &pattern)
void clear_variable_pattern(const std::string &pattern)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
#define DEFMETHOD(name, interp_name, args_name, nargout_name, doc)
Macro to define a builtin method.
#define DEFUN(name, args_name, nargout_name, doc)
Macro to define a builtin function.
#define DEFALIAS(alias, name)
Macro to define an alias for another existing function name.
octave_value_list Fconfirm_recursive_rmdir(const octave_value_list &args, int nargout)
void warning(const char *fmt,...)
void warning_with_id(const char *id, const char *fmt,...)
void verror_with_id_cfn(const char *id, const char *fmt, va_list args)
void verror_with_cfn(const char *fmt, va_list args)
void error(const char *fmt,...)
void octave_set_default_fpucw(void)
#define OCTAVE_SAFE_CALL(F, ARGS)
octave_value_list F__version_info__(const octave_value_list &args, int)
bool octave_interpreter_ready
sys::time Vlast_chdir_time
std::atomic< bool > octave_initialized
bool octave_interpreter_ready
sys::time Vlast_chdir_time
std::atomic< bool > octave_initialized
void set_liboctave_error_handler(OCTAVE_NORETURN liboctave_error_handler f)
void set_liboctave_warning_handler(liboctave_warning_handler f)
void set_liboctave_error_with_id_handler(OCTAVE_NORETURN liboctave_error_with_id_handler f)
void set_liboctave_warning_with_id_handler(liboctave_warning_with_id_handler f)
int release_unreferenced_dynamic_libraries()
T::size_type numel(const T &str)
octave_value_list Fprint_struct_array_contents(const octave_value_list &args, int nargout)
octave_value_list Fstruct_levels_to_print(const octave_value_list &args, int nargout)
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.
octave_value_list Ffixed_point_format(const octave_value_list &args, int nargout)
octave_value_list Fprint_empty_dimensions(const octave_value_list &args, int nargout)
std::atomic< bool > octave_signal_caught
std::atomic< sig_atomic_t > octave_interrupt_state
void(* octave_interrupt_hook)()
void(* octave_signal_hook)()
void respond_to_pending_signals()
std::atomic< bool > can_interrupt
interrupt_handler catch_interrupts()
void install_signal_handlers()
void octave_save_signal_mask(void)
void octave_unblock_signal_by_name(const char *signame)
bool octave_get_sig_number(const char *signame, int *signum)
int octave_kill_wrapper(pid_t pid, int signum)
void octave_restore_signal_mask(void)
pid_t octave_getpid_wrapper(void)
int octave_unlink_wrapper(const char *nm)
int octave_isatty_wrapper(int fd)
std::string file_in_path(const std::string &name, const std::string &suffix)
int symbol_exist(const std::string &name, const std::string &type)
std::string octave_startup_message(bool html)
F77_RET_T F77_FUNC(xerbla, XERBLA)(F77_CONST_CHAR_ARG_DEF(s_arg
void octave_set_xerbla_handler(xerbla_handler_fptr fcn)