diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index ee663ee..d7315b0 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -1,11 +1,6 @@
 /* eval.c */
 void eval_init(void);
 void eval_clear(void);
-char_u *func_name(void *cookie);
-linenr_T *func_breakpoint(void *cookie);
-int *func_dbg_tick(void *cookie);
-int func_level(void *cookie);
-int current_func_returned(void);
 void set_internal_string_var(char_u *name, char_u *value);
 int var_redir_start(char_u *name, int append);
 void var_redir_str(char_u *value, int value_len);
@@ -27,22 +22,21 @@
 varnumber_T call_func_retnr(char_u *func, int argc, char_u **argv, int safe);
 void *call_func_retstr(char_u *func, int argc, char_u **argv, int safe);
 void *call_func_retlist(char_u *func, int argc, char_u **argv, int safe);
-void *save_funccal(void);
-void restore_funccal(void *vfc);
-void prof_child_enter(proftime_T *tm);
-void prof_child_exit(proftime_T *tm);
 int eval_foldexpr(char_u *arg, int *cp);
 void ex_let(exarg_T *eap);
+void list_hashtable_vars(hashtab_T *ht, char_u *prefix, int empty, int *first);
+char_u *get_lval(char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags);
+void clear_lval(lval_T *lp);
 void *eval_for_line(char_u *arg, int *errp, char_u **nextcmdp, int skip);
 int next_for_item(void *fi_void, char_u *arg);
 void free_for_info(void *fi_void);
 void set_context_for_expression(expand_T *xp, char_u *arg, cmdidx_T cmdidx);
-void ex_call(exarg_T *eap);
 void ex_unlet(exarg_T *eap);
 void ex_lockvar(exarg_T *eap);
 int do_unlet(char_u *name, int forceit);
 void del_menutrans_vars(void);
 char_u *get_user_var_name(expand_T *xp, int idx);
+int eval0(char_u *arg, typval_T *rettv, char_u **nextcmd, int evaluate);
 int eval1(char_u **arg, typval_T *rettv, int evaluate);
 void partial_unref(partial_T *pt);
 int tv_equal(typval_T *tv1, typval_T *tv2, int ic, int recursive);
@@ -52,20 +46,25 @@
 int set_ref_in_list(list_T *l, int copyID, ht_stack_T **ht_stack);
 int set_ref_in_item(typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack);
 char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int dict_val);
+char_u *echo_string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
 char_u *tv2string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
 char_u *string_quote(char_u *str, int function);
 int string2float(char_u *text, float_T *value);
 char_u *get_function_name(expand_T *xp, int idx);
 char_u *get_expr_name(expand_T *xp, int idx);
-int call_func(char_u *funcname, int len, typval_T *rettv, int argcount_in, typval_T *argvars_in, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, partial_T *partial, dict_T *selfdict_in);
+int find_internal_func(char_u *name);
+int call_internal_func(char_u *name, int argcount, typval_T *argvars, typval_T *rettv);
 buf_T *buflist_find_by_name(char_u *name, int curtab_only);
-int func_call(char_u *name, typval_T *args, partial_T *partial, dict_T *selfdict, typval_T *rettv);
 void execute_redir_str(char_u *value, int value_len);
 void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);
 float_T vim_round(float_T f);
 long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
 char_u *get_callback(typval_T *arg, partial_T **pp);
 void free_callback(char_u *callback, partial_T *partial);
+int get_id_len(char_u **arg);
+char_u *find_name_end(char_u *arg, char_u **expr_start, char_u **expr_end, int flags);
+int eval_isnamec(int c);
+int eval_isnamec1(int c);
 void set_vim_var_nr(int idx, varnumber_T val);
 varnumber_T get_vim_var_nr(int idx);
 char_u *get_vim_var_str(int idx);
@@ -79,6 +78,7 @@
 char_u *v_exception(char_u *oldval);
 char_u *v_throwpoint(char_u *oldval);
 char_u *set_cmdarg(exarg_T *eap, char_u *oldarg);
+int handle_subscript(char_u **arg, typval_T *rettv, int evaluate, int verbose);
 typval_T *alloc_tv(void);
 void free_tv(typval_T *varp);
 void clear_tv(typval_T *varp);
@@ -88,11 +88,13 @@
 char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
 char_u *get_tv_string_chk(typval_T *varp);
 char_u *get_tv_string_buf_chk(typval_T *varp, char_u *buf);
+dictitem_T *find_var(char_u *name, hashtab_T **htp, int no_autoload);
 char_u *get_var_value(char_u *name);
 void new_script_vars(scid_T id);
 void init_var_dict(dict_T *dict, dictitem_T *dict_var, int scope);
 void unref_var_dict(dict_T *dict);
 void vars_clear(hashtab_T *ht);
+void vars_clear_ext(hashtab_T *ht, int free_val);
 int var_check_ro(int flags, char_u *name, int use_gettext);
 int var_check_func_name(char_u *name, int new_var);
 int valid_varname(char_u *varname);
@@ -102,25 +104,8 @@
 void ex_echo(exarg_T *eap);
 void ex_echohl(exarg_T *eap);
 void ex_execute(exarg_T *eap);
-void ex_function(exarg_T *eap);
-void free_all_functions(void);
-int translated_function_exists(char_u *name);
-char_u *get_expanded_name(char_u *name, int check);
-void func_dump_profile(FILE *fd);
-char_u *get_user_func_name(expand_T *xp, int idx);
-void ex_delfunction(exarg_T *eap);
-void func_unref(char_u *name);
-void func_ref(char_u *name);
-void ex_return(exarg_T *eap);
-int do_return(exarg_T *eap, int reanimate, int is_cmd, void *rettv);
-void discard_pending_return(void *rettv);
-char_u *get_return_cmd(void *rettv);
-char_u *get_func_line(int c, void *cookie, int indent);
-void func_line_start(void *cookie);
-void func_line_exec(void *cookie);
-void func_line_end(void *cookie);
-int func_has_ended(void *cookie);
-int func_has_abort(void *cookie);
+char_u *autoload_name(char_u *name);
+int script_autoload(char_u *name, int reload);
 int read_viminfo_varlist(vir_T *virp, int writing);
 void write_viminfo_varlist(FILE *fp);
 int store_session_globals(FILE *fd);
