Mercurial > hg > octave-lojdl
view libinterp/mkbuiltins @ 16442:302157614308
deprecate symbol_table::varref functions
* ov-usr-fcn.h (octave_user_function::argn_varref,
octave_user_function::nargin_varref,
octave_user_function::nargout_varref,
octave_user_function::varargin_varref): Delete unused variables.
* symtab.h (symbol_table::symbol_record::symbol_record_ref::assign,
symbol_table::symbol_record::symbol_record_ref::do_non_const_unary_op,
symbol_table::symbol_record::do_non_const_unary_op,
(symbol_table::symbol_record::is_undefined,
symbol_table::symbol_record::assign, symbol_table::assign,
symbol_table::force_assign, symbol_table::global_assign,
symbol_table::persistent_assign, symbol_table::top_level_assign,
symbol_table::do_assign, symbol_table::do_persistent_assign):
New functions.
(symbol_table::symbol_record::symbol_record_ref::varref):
Avoid calls to deprecated functions.
(symbol_table::varref, symbol_table::force_varref,
symbol_table::global_varref, symbol_table::persistent_varref,
symbol_table::top_level_varref, symbol_table::do_varref,
symbol_table::do_persistent_varref): Deprecate.
(symbol_table::symbol_reference::is_black_hole): New function.
* oct-lvalue.h, oct-lvalue.cc: Store symbol_reference instead of
pointer to octave_value object.
(octave_lvalue::value): Now const.
(octave_lvalue::object): Delete.
* pt-id.cc (tree_identifier::lvalue): Construct octave_lvalue from
sym, not sym->varref.
* ls-mat5.cc, oct-lvalue.cc, oct-lvalue.h, pt-jit.cc, error.cc,
load-save.cc, symtab.cc, symtab.h, variables.cc, ov-fcn-handle.cc,
ov-usr-fcn.cc, ov-usr-fcn.h, oct-parse.in.yy, pt-eval.cc, pt-id.h,
pt-idx.cc, mex.cc: Change all uses of varref functions to use assign
instead. Use varval instead of varref where appropriate.
* load-save.cc (install_loaded_variable): Don't manipulate
symbol_record directly.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sat, 06 Apr 2013 11:51:23 -0400 |
parents | bf0857c789f4 |
children |
line wrap: on
line source
#! /bin/sh # # Copyright (C) 1996-2012 John W. Eaton # # This file is part of Octave. # # Octave is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # Octave is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License # for more details. # # You should have received a copy of the GNU General Public License # along with Octave; see the file COPYING. If not, see # <http://www.gnu.org/licenses/>. if test $# -lt 2; then echo "usage: mkbuiltins --header|--source f1 f2 ..." 1>&2 exit 1 fi SED=${SED:-'sed'} make_header=false make_source=false case "$1" in --header) make_header=true shift ;; --source) make_source=true shift ;; *) echo "mkbuiltins: unrecognized option: $1" 1>&2 exit 1 ;; esac if $make_header; then cat << \EOF // DO NOT EDIT! Generated automatically by mkbuiltins. #if !defined (octave_builtin_defun_decls_h) #define octave_builtin_defun_decls_h 1 #include "oct-obj.h" #define DEFUN_DECL(name) \ extern OCTINTERP_API octave_value_list \ name (const octave_value_list& = octave_value_list (), int = 0); EOF $SED -n -e 's/ *\(XDEFUN\|XDEFCONSTFUN\)_INTERNAL *( *\([_A-Za-z][_A-Za-z0-9]*\) *,.*$/DEFUN_DECL (F\2);/p; s/^ *XDEFUNX_INTERNAL *( *"\([_A-Za-z][_A-Za-z0-9]*\)" *,.*$/DEFUN_DECL (F\1);/p' "$@" cat << \EOF #undef DEFUN_DECL #endif EOF else cat << \EOF // DO NOT EDIT! Generated automatically by mkbuiltins. #ifdef HAVE_CONFIG_H #include <config.h> #endif #include "defun.h" #include "help.h" #include "oct-obj.h" #include "variables.h" #include "builtins.h" #if defined (quad) #undef quad #endif #if defined (ENABLE_DYNAMIC_LINKING) #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, doc) #define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, doc) #else #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, doc) \ XDEFUN_INTERNAL(name, args_name, nargout_name, doc) #define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, doc) \ XDEFUNX_INTERNAL(name, fname, args_name, nargout_name, doc) #endif #define XDEFUN_FILE_NAME(name) \ std::string file = name; #define XDEFUN_INTERNAL(name, args_name, nargout_name, doc) \ extern DECLARE_FUN (name, args_name, nargout_name); \ install_builtin_function (F ## name, #name, file, doc); \ #define XDEFCONSTFUN_INTERNAL(name, args_name, nargout_name, doc) \ extern DECLARE_FUN (name, args_name, nargout_name); \ install_builtin_function (F ## name, #name, file, doc, false); \ #define XDEFUNX_INTERNAL(name, fname, args_name, nargout_name, doc) \ extern DECLARE_FUNX (fname, args_name, nargout_name); \ install_builtin_function (fname, name, file, doc); \ #define XDEFALIAS_INTERNAL(alias, name) \ alias_builtin (#alias, #name); #define XDEFCONST_INTERNAL(name, defn, doc) EOF for arg do fcn=`echo "$arg" | $SED 's,.*/,,; s/\.df//; s/-/_/g;'` echo "static void" echo "install_${fcn}_fcns (void)" echo "{" cat "$arg" echo "}" echo "" done cat << \EOF void install_builtins (void) { EOF for arg do fcn=`echo "$arg" | $SED 's,.*/,,; s/\.df//; s/-/_/g;'` echo " install_${fcn}_fcns ();" done cat << \EOF install_built_in_docstrings (); } EOF fi exit 0