annotate libinterp/options.h @ 29949:f254c302bb9c

remove JIT compiler from Octave sources As stated in the NEWS file entry added with this changeset, no one has ever seriously taken on further development of the JIT compiler in Octave since it was first added as part of a Google Summer of Code project in 2012 and it still does nothing significant. It is out of date with the default interpreter that walks the parse tree. Even though we have fixed the configure script to disable it by default, people still ask questions about how to build it, but it doesn’t seem that they are doing that to work on it but because they think it will make Octave code run faster (it never did, except for some extremely simple bits of code as examples for demonstration purposes only). * NEWS: Note change. * configure.ac, acinclude.m4: Eliminate checks and macros related to the JIT compiler and LLVM. * basics.txi, install.txi, octave.texi, vectorize.txi: Remove mention of JIT compiler and LLVM. * jit-ir.cc, jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.cc, jit-util.h, pt-jit.cc, pt-jit.h: Delete. * libinterp/parse-tree/module.mk: Update. * Array-jit.cc: Delete. * libinterp/template-inst/module.mk: Update. * test/jit.tst: Delete. * test/module.mk: Update. * interpreter.cc (interpreter::interpreter): Don't check options for debug_jit or jit_compiler. * toplev.cc (F__octave_config_info__): Remove JIT compiler and LLVM info from struct. * ov-base.h (octave_base_value::grab, octave_base_value::release): Delete. * ov-builtin.h, ov-builtin.cc (octave_builtin::to_jit, octave_builtin::stash_jit): Delete. (octave_builtin::m_jtype): Delete data member and all uses. * ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::m_jit_info): Delete data member and all uses. (octave_user_function::get_info, octave_user_function::stash_info): Delete. * options.h (DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete macro definitions and all uses. * octave.h, octave.cc (cmdline_options::cmdline_options): Don't handle DEBUG_JIT_OPTION, JIT_COMPILER_OPTION): Delete. (cmdline_options::debug_jit, cmdline_options::jit_compiler): Delete functions and all uses. (cmdline_options::m_debug_jit, cmdline_options::m_jit_compiler): Delete data members and all uses. (octave_getopt_options long_opts): Remove "debug-jit" and "jit-compiler" from the list. * pt-eval.cc (tree_evaluator::visit_simple_for_command, tree_evaluator::visit_complex_for_command, tree_evaluator::visit_while_command, tree_evaluator::execute_user_function): Eliminate JIT compiler code. * pt-loop.h, pt-loop.cc (tree_while_command::get_info, tree_while_command::stash_info, tree_simple_for_command::get_info, tree_simple_for_command::stash_info): Delete functions and all uses. (tree_while_command::m_compiled, tree_simple_for_command::m_compiled): Delete member variable and all uses. * usage.h (usage_string, octave_print_verbose_usage_and_exit): Remove [--debug-jit] and [--jit-compiler] from the message. * Array.h (Array<T>::Array): Remove constructor that was only intended to be used by the JIT compiler. (Array<T>::jit_ref_count, Array<T>::jit_slice_data, Array<T>::jit_dimensions, Array<T>::jit_array_rep): Delete. * Marray.h (MArray<T>::MArray): Remove constructor that was only intended to be used by the JIT compiler. * NDArray.h (NDArray::NDarray): Remove constructor that was only intended to be used by the JIT compiler. * dim-vector.h (dim_vector::to_jit): Delete. (dim_vector::dim_vector): Remove constructor that was only intended to be used by the JIT compiler. * codeql-analysis.yaml, make.yaml: Don't require llvm-dev. * subst-config-vals.in.sh, subst-cross-config-vals.in.sh: Don't substitute OCTAVE_CONF_LLVM_CPPFLAGS, OCTAVE_CONF_LLVM_LDFLAGS, or OCTAVE_CONF_LLVM_LIBS. * Doxyfile.in: Don't define HAVE_LLVM. * aspell-octave.en.pws: Eliminate jit, JIT, and LLVM from the list of spelling exceptions. * build-env.h, build-env.in.cc (LLVM_CPPFLAGS, LLVM_LDFLAGS, LLVM_LIBS): Delete variables and all uses. * libinterp/corefcn/module.mk (%canon_reldir%_libcorefcn_la_CPPFLAGS): Remove $(LLVM_CPPFLAGS) from the list. * libinterp/parse-tree/module.mk (%canon_reldir%_libparse_tree_la_CPPFLAGS): Remove $(LLVM_CPPFLAGS) from the list.
author John W. Eaton <jwe@octave.org>
date Tue, 10 Aug 2021 16:42:29 -0400
parents 853e4b7ae0d5
children 796f54d4ddbf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
29358
0a5b15007766 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 27957
diff changeset
3 // Copyright (C) 1993-2021 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
17777
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
29898
dffd1c943f1a main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29358
diff changeset
26 #if ! defined (octave_options_h)
dffd1c943f1a main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29358
diff changeset
27 #define octave_options_h 1
17777
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
21244
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 20791
diff changeset
29 #include "octave-config.h"
1473547f50f5 include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents: 20791
diff changeset
30
17777
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 #include <iosfwd>
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 // This is here so that it's more likely that the usage message and
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 // the real set of options will agree. Note: the '+' must come first
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 // to prevent getopt from permuting arguments!
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 static const char *short_opts = "+HWVdfhip:qvx";
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 // Long options. See the comments in getopt.h for the meanings of the
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 // fields in this structure.
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 #define BUILT_IN_DOCSTRINGS_FILE_OPTION 1
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 #define DOC_CACHE_FILE_OPTION 2
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 #define EVAL_OPTION 3
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 #define EXEC_PATH_OPTION 4
29890
bc19d9360bac main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29503
diff changeset
44 #define EXPERIMENTAL_TERMINAL_WIDGET_OPTION 5
bc19d9360bac main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29503
diff changeset
45 #define GUI_OPTION 6
bc19d9360bac main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29503
diff changeset
46 #define IMAGE_PATH_OPTION 7
bc19d9360bac main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29503
diff changeset
47 #define INFO_FILE_OPTION 8
bc19d9360bac main.cc: Use getopt to parse command line arguments (bug #60886).
Markus Mützel <markus.muetzel@gmx.de>
parents: 29503
diff changeset
48 #define INFO_PROG_OPTION 9
29949
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
49 #define LINE_EDITING_OPTION 10
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
50 #define NO_GUI_OPTION 11
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
51 #define NO_GUI_LIBS_OPTION 12
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
52 #define NO_INIT_FILE_OPTION 13
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
53 #define NO_INIT_PATH_OPTION 14
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
54 #define NO_LINE_EDITING_OPTION 15
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
55 #define NO_SITE_FILE_OPTION 16
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
56 #define PERSIST_OPTION 17
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
57 #define SERVER_OPTION 18
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
58 #define TEXI_MACROS_FILE_OPTION 19
f254c302bb9c remove JIT compiler from Octave sources
John W. Eaton <jwe@octave.org>
parents: 29899
diff changeset
59 #define TRADITIONAL_OPTION 20
22064
bd4f3d2ce52f provide wrapper for getopt
John W. Eaton <jwe@octave.org>
parents: 21244
diff changeset
60 struct octave_getopt_options long_opts[] =
19861
19755f4fc851 maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents: 19697
diff changeset
61 {
29892
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
62 { "braindead", octave_no_arg, nullptr, TRADITIONAL_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
63 { "built-in-docstrings-file", octave_required_arg, nullptr, BUILT_IN_DOCSTRINGS_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
64 { "debug", octave_no_arg, nullptr, 'd' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
65 { "doc-cache-file", octave_required_arg, nullptr, DOC_CACHE_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
66 { "echo-commands", octave_no_arg, nullptr, 'x' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
67 { "eval", octave_required_arg, nullptr, EVAL_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
68 { "exec-path", octave_required_arg, nullptr, EXEC_PATH_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
69 { "experimental-terminal-widget", octave_no_arg, nullptr, EXPERIMENTAL_TERMINAL_WIDGET_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
70 { "force-gui", octave_no_arg, nullptr, GUI_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
71 { "gui", octave_no_arg, nullptr, GUI_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
72 { "help", octave_no_arg, nullptr, 'h' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
73 { "image-path", octave_required_arg, nullptr, IMAGE_PATH_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
74 { "info-file", octave_required_arg, nullptr, INFO_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
75 { "info-program", octave_required_arg, nullptr, INFO_PROG_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
76 { "interactive", octave_no_arg, nullptr, 'i' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
77 { "line-editing", octave_no_arg, nullptr, LINE_EDITING_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
78 { "no-gui", octave_no_arg, nullptr, NO_GUI_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
79 { "no-gui-libs", octave_no_arg, nullptr, NO_GUI_LIBS_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
80 { "no-history", octave_no_arg, nullptr, 'H' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
81 { "no-init-file", octave_no_arg, nullptr, NO_INIT_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
82 { "no-init-path", octave_no_arg, nullptr, NO_INIT_PATH_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
83 { "no-line-editing", octave_no_arg, nullptr, NO_LINE_EDITING_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
84 { "no-site-file", octave_no_arg, nullptr, NO_SITE_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
85 { "no-window-system", octave_no_arg, nullptr, 'W' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
86 { "norc", octave_no_arg, nullptr, 'f' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
87 { "path", octave_required_arg, nullptr, 'p' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
88 { "persist", octave_no_arg, nullptr, PERSIST_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
89 { "quiet", octave_no_arg, nullptr, 'q' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
90 { "server", octave_no_arg, nullptr, SERVER_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
91 { "silent", octave_no_arg, nullptr, 'q' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
92 { "texi-macros-file", octave_required_arg, nullptr, TEXI_MACROS_FILE_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
93 { "traditional", octave_no_arg, nullptr, TRADITIONAL_OPTION },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
94 { "verbose", octave_no_arg, nullptr, 'V' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
95 { "version", octave_no_arg, nullptr, 'v' },
474f41101569 options.h: Use C++ nullptr instead of 0.
Markus Mützel <markus.muetzel@gmx.de>
parents: 29890
diff changeset
96 { nullptr, 0, nullptr, 0 }
17777
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97 };
ae8905fbf1f8 move usage and options strings and funtions to separate file
John W. Eaton <jwe@octave.org>
parents:
diff changeset
98
23796
4f12819a634f Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents: 23220
diff changeset
99 #endif