diff --git a/runtime/autoload/ccomplete.vim b/runtime/autoload/ccomplete.vim
index 95a20e1..d8675fa 100644
--- a/runtime/autoload/ccomplete.vim
+++ b/runtime/autoload/ccomplete.vim
@@ -1,482 +1,523 @@
-" Vim completion script
-" Language:	C
-" Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2020 Nov 14
+vim9script noclear
 
-let s:cpo_save = &cpo
-set cpo&vim
+# Vim completion script
+# Language:     C
+# Maintainer:   Bram Moolenaar <Bram@vim.org>
+#		Rewritten in Vim9 script by github user lacygoill
+# Last Change:  2021 Dec 27
 
-" This function is used for the 'omnifunc' option.
-func ccomplete#Complete(findstart, base)
-  if a:findstart
-    " Locate the start of the item, including ".", "->" and "[...]".
-    let line = getline('.')
-    let start = col('.') - 1
-    let lastword = -1
+var prepended: string
+var grepCache: dict<list<dict<any>>>
+
+# This function is used for the 'omnifunc' option.
+def ccomplete#Complete(findstart: bool, abase: string): any # {{{1
+  if findstart
+    # Locate the start of the item, including ".", "->" and "[...]".
+    var line: string = getline('.')
+    var start: number = charcol('.') - 1
+    var lastword: number = -1
     while start > 0
       if line[start - 1] =~ '\w'
-	let start -= 1
+        --start
       elseif line[start - 1] =~ '\.'
-	if lastword == -1
-	  let lastword = start
-	endif
-	let start -= 1
-      elseif start > 1 && line[start - 2] == '-' && line[start - 1] == '>'
-	if lastword == -1
-	  let lastword = start
-	endif
-	let start -= 2
+        if lastword == -1
+          lastword = start
+        endif
+        --start
+      elseif start > 1 && line[start - 2] == '-'
+        && line[start - 1] == '>'
+        if lastword == -1
+          lastword = start
+        endif
+        start -= 2
       elseif line[start - 1] == ']'
-	" Skip over [...].
-	let n = 0
-	let start -= 1
-	while start > 0
-	  let start -= 1
-	  if line[start] == '['
-	    if n == 0
-	      break
-	    endif
-	    let n -= 1
-	  elseif line[start] == ']'  " nested []
-	    let n += 1
-	  endif
-	endwhile
+        # Skip over [...].
+        var n: number = 0
+        --start
+        while start > 0
+          --start
+          if line[start] == '['
+            if n == 0
+              break
+            endif
+            --n
+          elseif line[start] == ']'  # nested []
+            ++n
+          endif
+        endwhile
       else
-	break
+        break
       endif
     endwhile
 
-    " Return the column of the last word, which is going to be changed.
-    " Remember the text that comes before it in s:prepended.
+    # Return the column of the last word, which is going to be changed.
+    # Remember the text that comes before it in prepended.
     if lastword == -1
-      let s:prepended = ''
-      return start
+      prepended = ''
+      return byteidx(line, start)
     endif
-    let s:prepended = strpart(line, start, lastword - start)
-    return lastword
+    prepended = line[start : lastword - 1]
+    return byteidx(line, lastword)
   endif
 
-  " Return list of matches.
+  # Return list of matches.
 
-  let base = s:prepended . a:base
+  var base: string = prepended .. abase
 
-  " Don't do anything for an empty base, would result in all the tags in the
-  " tags file.
+  # Don't do anything for an empty base, would result in all the tags in the
+  # tags file.
   if base == ''
     return []
   endif
 
-  " init cache for vimgrep to empty
-  let s:grepCache = {}
+  # init cache for vimgrep to empty
+  grepCache = {}
 
-  " Split item in words, keep empty word after "." or "->".
-  " "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
-  " We can't use split, because we need to skip nested [...].
-  " "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
-  let items = []
-  let s = 0
-  let arrays = 0
+  # Split item in words, keep empty word after "." or "->".
+  # "aa" -> ['aa'], "aa." -> ['aa', ''], "aa.bb" -> ['aa', 'bb'], etc.
+  # We can't use split, because we need to skip nested [...].
+  # "aa[...]" -> ['aa', '[...]'], "aa.bb[...]" -> ['aa', 'bb', '[...]'], etc.
+  var items: list<string>
+  var s: number = 0
+  var arrays: number = 0
   while 1
-    let e = match(base, '\.\|->\|\[', s)
+    var e: number = base->charidx(match(base, '\.\|->\|\[', s))
     if e < 0
       if s == 0 || base[s - 1] != ']'
-	call add(items, strpart(base, s))
+        items->add(base[s :])
       endif
       break
     endif
     if s == 0 || base[s - 1] != ']'
-      call add(items, strpart(base, s, e - s))
+      items->add(base[s : e - 1])
     endif
     if base[e] == '.'
-      let s = e + 1	" skip over '.'
+      # skip over '.'
+      s = e + 1
     elseif base[e] == '-'
-      let s = e + 2	" skip over '->'
+      # skip over '->'
+      s = e + 2
     else
-      " Skip over [...].
-      let n = 0
-      let s = e
-      let e += 1
-      while e < len(base)
-	if base[e] == ']'
-	  if n == 0
-	    break
-	  endif
-	  let n -= 1
-	elseif base[e] == '['  " nested [...]
-	  let n += 1
-	endif
-	let e += 1
+      # Skip over [...].
+      var n: number = 0
+      s = e
+      ++e
+      while e < strcharlen(base)
+        if base[e] == ']'
+          if n == 0
+            break
+          endif
+          --n
+        elseif base[e] == '['  # nested [...]
+          ++n
+        endif
+        ++e
       endwhile
-      let e += 1
-      call add(items, strpart(base, s, e - s))
-      let arrays += 1
-      let s = e
+      ++e
+      items->add(base[s : e - 1])
+      ++arrays
+      s = e
     endif
   endwhile
 
-  " Find the variable items[0].
-  " 1. in current function (like with "gd")
-  " 2. in tags file(s) (like with ":tag")
-  " 3. in current file (like with "gD")
-  let res = []
-  if searchdecl(items[0], 0, 1) == 0
-    " Found, now figure out the type.
-    " TODO: join previous line if it makes sense
-    let line = getline('.')
-    let col = col('.')
-    if stridx(strpart(line, 0, col), ';') != -1
-      " Handle multiple declarations on the same line.
-      let col2 = col - 1
+  # Find the variable items[0].
+  # 1. in current function (like with "gd")
+  # 2. in tags file(s) (like with ":tag")
+  # 3. in current file (like with "gD")
+  var res: list<dict<any>>
+  if items[0]->searchdecl(false, true) == 0
+    # Found, now figure out the type.
+    # TODO: join previous line if it makes sense
+    var line: string = getline('.')
+    var col: number = charcol('.')
+    if line[: col - 1]->stridx(';') >= 0
+      # Handle multiple declarations on the same line.
+      var col2: number = col - 1
       while line[col2] != ';'
-	let col2 -= 1
+        --col2
       endwhile
-      let line = strpart(line, col2 + 1)
-      let col -= col2
+      line = line[col2 + 1 :]
+      col -= col2
     endif
-    if stridx(strpart(line, 0, col), ',') != -1
-      " Handle multiple declarations on the same line in a function
-      " declaration.
-      let col2 = col - 1
+    if line[: col - 1]->stridx(',') >= 0
+      # Handle multiple declarations on the same line in a function
+      # declaration.
+      var col2: number = col - 1
       while line[col2] != ','
-	let col2 -= 1
+        --col2
       endwhile
-      if strpart(line, col2 + 1, col - col2 - 1) =~ ' *[^ ][^ ]*  *[^ ]'
-	let line = strpart(line, col2 + 1)
-	let col -= col2
+      if line[col2 + 1 : col - 1] =~ ' *[^ ][^ ]*  *[^ ]'
+        line = line[col2 + 1 :]
+        col -= col2
       endif
     endif
     if len(items) == 1
-      " Completing one word and it's a local variable: May add '[', '.' or
-      " '->'.
-      let match = items[0]
-      let kind = 'v'
-      if match(line, '\<' . match . '\s*\[') > 0
-	let match .= '['
+      # Completing one word and it's a local variable: May add '[', '.' or
+      # '->'.
+      var match: string = items[0]
+      var kind: string = 'v'
+      if match(line, '\<' .. match .. '\s*\[') > 0
+        match ..= '['
       else
-	let res = s:Nextitem(strpart(line, 0, col), [''], 0, 1)
-	if len(res) > 0
-	  " There are members, thus add "." or "->".
-	  if match(line, '\*[ \t(]*' . match . '\>') > 0
-	    let match .= '->'
-	  else
-	    let match .= '.'
-	  endif
-	endif
+        res = line[: col - 1]->Nextitem([''], 0, true)
+        if len(res) > 0
+          # There are members, thus add "." or "->".
+          if match(line, '\*[ \t(]*' .. match .. '\>') > 0
+            match ..= '->'
+          else
+            match ..= '.'
+          endif
+        endif
       endif
-      let res = [{'match': match, 'tagline' : '', 'kind' : kind, 'info' : line}]
+      res = [{match: match, tagline: '', kind: kind, info: line}]
     elseif len(items) == arrays + 1
-      " Completing one word and it's a local array variable: build tagline
-      " from declaration line
-      let match = items[0]
-      let kind = 'v'
-      let tagline = "\t/^" . line . '$/'
-      let res = [{'match': match, 'tagline' : tagline, 'kind' : kind, 'info' : line}]
+      # Completing one word and it's a local array variable: build tagline
+      # from declaration line
+      var match: string = items[0]
+      var kind: string = 'v'
+      var tagline: string = "\t/^" .. line .. '$/'
+      res = [{match: match, tagline: tagline, kind: kind, info: line}]
     else
-      " Completing "var.", "var.something", etc.
-      let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
+      # Completing "var.", "var.something", etc.
+      res = line[: col - 1]->Nextitem(items[1 :], 0, true)
     endif
   endif
 
   if len(items) == 1 || len(items) == arrays + 1
-    " Only one part, no "." or "->": complete from tags file.
+    # Only one part, no "." or "->": complete from tags file.
+    var tags: list<dict<any>>
     if len(items) == 1
-      let tags = taglist('^' . base)
+      tags = taglist('^' .. base)
     else
-      let tags = taglist('^' . items[0] . '$')
+      tags = taglist('^' .. items[0] .. '$')
     endif
 
-    " Remove members, these can't appear without something in front.
-    call filter(tags, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
+    tags
+      # Remove members, these can't appear without something in front.
+      ->filter((_, v: dict<any>): bool =>
+                v->has_key('kind') ? v.kind != 'm' : true)
+      # Remove static matches in other files.
+      ->filter((_, v: dict<any>): bool =>
+                 !v->has_key('static')
+              || !v['static']
+              || bufnr('%') == bufnr(v['filename']))
 
-    " Remove static matches in other files.
-    call filter(tags, '!has_key(v:val, "static") || !v:val["static"] || bufnr("%") == bufnr(v:val["filename"])')
-
-    call extend(res, map(tags, 's:Tag2item(v:val)'))
+    res = extendnew(res, tags->map((_, v: dict<any>) => Tag2item(v)))
   endif
 
   if len(res) == 0
-    " Find the variable in the tags file(s)
-    let diclist = taglist('^' . items[0] . '$')
+    # Find the variable in the tags file(s)
+    var diclist: list<dict<any>> = taglist('^' .. items[0] .. '$')
+      # Remove members, these can't appear without something in front.
+      ->filter((_, v: dict<string>): bool =>
+                v->has_key('kind') ? v.kind != 'm' : true)
 
-    " Remove members, these can't appear without something in front.
-    call filter(diclist, 'has_key(v:val, "kind") ? v:val["kind"] != "m" : 1')
-
-    let res = []
-    for i in range(len(diclist))
-      " New ctags has the "typeref" field.  Patched version has "typename".
-      if has_key(diclist[i], 'typename')
-	call extend(res, s:StructMembers(diclist[i]['typename'], items[1:], 1))
-      elseif has_key(diclist[i], 'typeref')
-	call extend(res, s:StructMembers(diclist[i]['typeref'], items[1:], 1))
+    res = []
+    for i: number in len(diclist)->range()
+      # New ctags has the "typeref" field.  Patched version has "typename".
+      if diclist[i]->has_key('typename')
+        res = extendnew(res, diclist[i]['typename']->StructMembers(items[1 :], true))
+      elseif diclist[i]->has_key('typeref')
+        res = extendnew(res, diclist[i]['typeref']->StructMembers(items[1 :], true))
       endif
 
-      " For a variable use the command, which must be a search pattern that
-      " shows the declaration of the variable.
+      # For a variable use the command, which must be a search pattern that
+      # shows the declaration of the variable.
       if diclist[i]['kind'] == 'v'
-	let line = diclist[i]['cmd']
-	if line[0] == '/' && line[1] == '^'
-	  let col = match(line, '\<' . items[0] . '\>')
-	  call extend(res, s:Nextitem(strpart(line, 2, col - 2), items[1:], 0, 1))
-	endif
+        var line: string = diclist[i]['cmd']
+        if line[: 1] == '/^'
+          var col: number = line->charidx(match(line, '\<' .. items[0] .. '\>'))
+          res = extendnew(res, line[2 : col - 1]->Nextitem(items[1 :], 0, true))
+        endif
       endif
     endfor
   endif
 
-  if len(res) == 0 && searchdecl(items[0], 1) == 0
-    " Found, now figure out the type.
-    " TODO: join previous line if it makes sense
-    let line = getline('.')
-    let col = col('.')
-    let res = s:Nextitem(strpart(line, 0, col), items[1:], 0, 1)
+  if len(res) == 0 && items[0]->searchdecl(true) == 0
+    # Found, now figure out the type.
+    # TODO: join previous line if it makes sense
+    var line: string = getline('.')
+    var col: number = charcol('.')
+    res = line[: col - 1]->Nextitem(items[1 :], 0, true)
   endif
 
-  " If the last item(s) are [...] they need to be added to the matches.
-  let last = len(items) - 1
-  let brackets = ''
+  # If the last item(s) are [...] they need to be added to the matches.
+  var last: number = len(items) - 1
+  var brackets: string = ''
   while last >= 0
     if items[last][0] != '['
       break
     endif
-    let brackets = items[last] . brackets
-    let last -= 1
+    brackets = items[last] .. brackets
+    --last
   endwhile
 
-  return map(res, 's:Tagline2item(v:val, brackets)')
-endfunc
+  return res->map((_, v: dict<any>): dict<string> => Tagline2item(v, brackets))
+enddef
 
-func s:GetAddition(line, match, memarg, bracket)
-  " Guess if the item is an array.
-  if a:bracket && match(a:line, a:match . '\s*\[') > 0
+def GetAddition( # {{{1
+  line: string,
+  match: string,
+  memarg: list<dict<any>>,
+  bracket: bool
+): string
+  # Guess if the item is an array.
+  if bracket && match(line, match .. '\s*\[') > 0
     return '['
   endif
 
-  " Check if the item has members.
-  if len(s:SearchMembers(a:memarg, [''], 0)) > 0
-    " If there is a '*' before the name use "->".
-    if match(a:line, '\*[ \t(]*' . a:match . '\>') > 0
+  # Check if the item has members.
+  if SearchMembers(memarg, [''], false)->len() > 0
+    # If there is a '*' before the name use "->".
+    if match(line, '\*[ \t(]*' .. match .. '\>') > 0
       return '->'
     else
       return '.'
     endif
   endif
   return ''
-endfunc
+enddef
 
-" Turn the tag info "val" into an item for completion.
-" "val" is is an item in the list returned by taglist().
-" If it is a variable we may add "." or "->".  Don't do it for other types,
-" such as a typedef, by not including the info that s:GetAddition() uses.
-func s:Tag2item(val)
-  let res = {'match': a:val['name']}
+def Tag2item(val: dict<any>): dict<any> # {{{1
+# Turn the tag info "val" into an item for completion.
+# "val" is is an item in the list returned by taglist().
+# If it is a variable we may add "." or "->".  Don't do it for other types,
+# such as a typedef, by not including the info that GetAddition() uses.
+  var res: dict<any> = {match: val['name']}
 
-  let res['extra'] = s:Tagcmd2extra(a:val['cmd'], a:val['name'], a:val['filename'])
+  res['extra'] = Tagcmd2extra(val['cmd'], val['name'], val['filename'])
 
-  let s = s:Dict2info(a:val)
+  var s: string = Dict2info(val)
   if s != ''
-    let res['info'] = s
+    res['info'] = s
   endif
 
-  let res['tagline'] = ''
-  if has_key(a:val, "kind")
-    let kind = a:val['kind']
-    let res['kind'] = kind
+  res['tagline'] = ''
+  if val->has_key('kind')
+    var kind: string = val['kind']
+    res['kind'] = kind
     if kind == 'v'
-      let res['tagline'] = "\t" . a:val['cmd']
-      let res['dict'] = a:val
+      res['tagline'] = "\t" .. val['cmd']
+      res['dict'] = val
     elseif kind == 'f'
-      let res['match'] = a:val['name'] . '('
+      res['match'] = val['name'] .. '('
     endif
   endif
 
   return res
-endfunc
+enddef
 
-" Use all the items in dictionary for the "info" entry.
-func s:Dict2info(dict)
-  let info = ''
-  for k in sort(keys(a:dict))
-    let info  .= k . repeat(' ', 10 - len(k))
+def Dict2info(dict: dict<any>): string # {{{1
+# Use all the items in dictionary for the "info" entry.
+  var info: string = ''
+  for k: string in dict->keys()->sort()
+    info  ..= k .. repeat(' ', 10 - strlen(k))
     if k == 'cmd'
-      let info .= substitute(matchstr(a:dict['cmd'], '/^\s*\zs.*\ze$/'), '\\\(.\)', '\1', 'g')
+      info ..= dict['cmd']
+        ->matchstr('/^\s*\zs.*\ze$/')
+        ->substitute('\\\(.\)', '\1', 'g')
     else
-      let info .= a:dict[k]
+      var dictk: any = dict[k]
+      if typename(dictk) != 'string'
+        info ..= dictk->string()
+      else
+        info ..= dictk
+      endif
     endif
-    let info .= "\n"
+    info ..= "\n"
   endfor
   return info
-endfunc
+enddef
 
-" Parse a tag line and return a dictionary with items like taglist()
-func s:ParseTagline(line)
-  let l = split(a:line, "\t")
-  let d = {}
+def ParseTagline(line: string): dict<any> # {{{1
+# Parse a tag line and return a dictionary with items like taglist()
+  var l: list<string> = split(line, "\t")
+  var d: dict<any>
   if len(l) >= 3
-    let d['name'] = l[0]
-    let d['filename'] = l[1]
-    let d['cmd'] = l[2]
-    let n = 2
+    d['name'] = l[0]
+    d['filename'] = l[1]
+    d['cmd'] = l[2]
+    var n: number = 2
     if l[2] =~ '^/'
-      " Find end of cmd, it may contain Tabs.
+      # Find end of cmd, it may contain Tabs.
       while n < len(l) && l[n] !~ '/;"$'
-	let n += 1
-	let d['cmd'] .= "  " . l[n]
+        ++n
+        d['cmd'] ..= '  ' .. l[n]
       endwhile
     endif
-    for i in range(n + 1, len(l) - 1)
+    for i: number in range(n + 1, len(l) - 1)
       if l[i] == 'file:'
-	let d['static'] = 1
+        d['static'] = 1
       elseif l[i] !~ ':'
-	let d['kind'] = l[i]
+        d['kind'] = l[i]
       else
-	let d[matchstr(l[i], '[^:]*')] = matchstr(l[i], ':\zs.*')
+        d[l[i]->matchstr('[^:]*')] = l[i]->matchstr(':\zs.*')
       endif
     endfor
   endif
 
   return d
-endfunc
+enddef
 
-" Turn a match item "val" into an item for completion.
-" "val['match']" is the matching item.
-" "val['tagline']" is the tagline in which the last part was found.
-func s:Tagline2item(val, brackets)
-  let line = a:val['tagline']
-  let add = s:GetAddition(line, a:val['match'], [a:val], a:brackets == '')
-  let res = {'word': a:val['match'] . a:brackets . add }
+def Tagline2item(val: dict<any>, brackets: string): dict<string> # {{{1
+# Turn a match item "val" into an item for completion.
+# "val['match']" is the matching item.
+# "val['tagline']" is the tagline in which the last part was found.
+  var line: string = val['tagline']
+  var add: string = GetAddition(line, val['match'], [val], brackets == '')
+  var res: dict<string> = {word: val['match'] .. brackets .. add}
 
-  if has_key(a:val, 'info')
-    " Use info from Tag2item().
-    let res['info'] = a:val['info']
+  if val->has_key('info')
+    # Use info from Tag2item().
+    res['info'] = val['info']
   else
-    " Parse the tag line and add each part to the "info" entry.
-    let s = s:Dict2info(s:ParseTagline(line))
+    # Parse the tag line and add each part to the "info" entry.
+    var s: string = ParseTagline(line)->Dict2info()
     if s != ''
-      let res['info'] = s
+      res['info'] = s
     endif
   endif
 
-  if has_key(a:val, 'kind')
-    let res['kind'] = a:val['kind']
+  if val->has_key('kind')
+    res['kind'] = val['kind']
   elseif add == '('
-    let res['kind'] = 'f'
+    res['kind'] = 'f'
   else
-    let s = matchstr(line, '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
+    var s: string = line->matchstr('\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
     if s != ''
-      let res['kind'] = s
+      res['kind'] = s
     endif
   endif
 
-  if has_key(a:val, 'extra')
-    let res['menu'] = a:val['extra']
+  if val->has_key('extra')
+    res['menu'] = val['extra']
     return res
   endif
 
-  " Isolate the command after the tag and filename.
-  let s = matchstr(line, '[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
+  # Isolate the command after the tag and filename.
+  var s: string = line->matchstr('[^\t]*\t[^\t]*\t\zs\(/^.*$/\|[^\t]*\)\ze\(;"\t\|\t\|$\)')
   if s != ''
-    let res['menu'] = s:Tagcmd2extra(s, a:val['match'], matchstr(line, '[^\t]*\t\zs[^\t]*\ze\t'))
+    res['menu'] = s->Tagcmd2extra(val['match'], line->matchstr('[^\t]*\t\zs[^\t]*\ze\t'))
   endif
   return res
-endfunc
+enddef
 
-" Turn a command from a tag line to something that is useful in the menu
-func s:Tagcmd2extra(cmd, name, fname)
-  if a:cmd =~ '^/^'
-    " The command is a search command, useful to see what it is.
-    let x = matchstr(a:cmd, '^/^\s*\zs.*\ze$/')
-    let x = substitute(x, '\<' . a:name . '\>', '@@', '')
-    let x = substitute(x, '\\\(.\)', '\1', 'g')
-    let x = x . ' - ' . a:fname
-  elseif a:cmd =~ '^\d*$'
-    " The command is a line number, the file name is more useful.
-    let x = a:fname . ' - ' . a:cmd
+def Tagcmd2extra( # {{{1
+  cmd: string,
+  name: string,
+  fname: string
+): string
+# Turn a command from a tag line to something that is useful in the menu
+  var x: string
+  if cmd =~ '^/^'
+    # The command is a search command, useful to see what it is.
+    x = cmd
+      ->matchstr('^/^\s*\zs.*\ze$/')
+      ->substitute('\<' .. name .. '\>', '@@', '')
+      ->substitute('\\\(.\)', '\1', 'g')
+      .. ' - ' .. fname
+  elseif cmd =~ '^\d*$'
+    # The command is a line number, the file name is more useful.
+    x = fname .. ' - ' .. cmd
   else
-    " Not recognized, use command and file name.
-    let x = a:cmd . ' - ' . a:fname
+    # Not recognized, use command and file name.
+    x = cmd .. ' - ' .. fname
   endif
   return x
-endfunc
+enddef
 
-" Find composing type in "lead" and match items[0] with it.
-" Repeat this recursively for items[1], if it's there.
-" When resolving typedefs "depth" is used to avoid infinite recursion.
-" Return the list of matches.
-func s:Nextitem(lead, items, depth, all)
+def Nextitem( # {{{1
+  lead: string,
+  items: list<string>,
+  depth: number,
+  all: bool
+): list<dict<string>>
+# Find composing type in "lead" and match items[0] with it.
+# Repeat this recursively for items[1], if it's there.
+# When resolving typedefs "depth" is used to avoid infinite recursion.
+# Return the list of matches.
 
-  " Use the text up to the variable name and split it in tokens.
-  let tokens = split(a:lead, '\s\+\|\<')
+  # Use the text up to the variable name and split it in tokens.
+  var tokens: list<string> = split(lead, '\s\+\|\<')
 
-  " Try to recognize the type of the variable.  This is rough guessing...
-  let res = []
-  for tidx in range(len(tokens))
+  # Try to recognize the type of the variable.  This is rough guessing...
+  var res: list<dict<string>>
+  for tidx: number in len(tokens)->range()
 
-    " Skip tokens starting with a non-ID character.
+    # Skip tokens starting with a non-ID character.
     if tokens[tidx] !~ '^\h'
       continue
     endif
 
-    " Recognize "struct foobar" and "union foobar".
-    " Also do "class foobar" when it's C++ after all (doesn't work very well
-    " though).
-    if (tokens[tidx] == 'struct' || tokens[tidx] == 'union' || tokens[tidx] == 'class') && tidx + 1 < len(tokens)
-      let res = s:StructMembers(tokens[tidx] . ':' . tokens[tidx + 1], a:items, a:all)
+    # Recognize "struct foobar" and "union foobar".
+    # Also do "class foobar" when it's C++ after all (doesn't work very well
+    # though).
+    if (tokens[tidx] == 'struct'
+      || tokens[tidx] == 'union'
+      || tokens[tidx] == 'class')
+      && tidx + 1 < len(tokens)
+      res = StructMembers(tokens[tidx] .. ':' .. tokens[tidx + 1], items, all)
       break
     endif
 
-    " TODO: add more reserved words
-    if index(['int', 'short', 'char', 'float', 'double', 'static', 'unsigned', 'extern'], tokens[tidx]) >= 0
+    # TODO: add more reserved words
+    if ['int', 'short', 'char', 'float',
+        'double', 'static', 'unsigned', 'extern']->index(tokens[tidx]) >= 0
       continue
     endif
 
-    " Use the tags file to find out if this is a typedef.
-    let diclist = taglist('^' . tokens[tidx] . '$')
-    for tagidx in range(len(diclist))
-      let item = diclist[tagidx]
+    # Use the tags file to find out if this is a typedef.
+    var diclist: list<dict<any>> = taglist('^' .. tokens[tidx] .. '$')
+    for tagidx: number in len(diclist)->range()
+      var item: dict<any> = diclist[tagidx]
 
-      " New ctags has the "typeref" field.  Patched version has "typename".
-      if has_key(item, 'typeref')
-	call extend(res, s:StructMembers(item['typeref'], a:items, a:all))
-	continue
+      # New ctags has the "typeref" field.  Patched version has "typename".
+      if item->has_key('typeref')
+        res = extendnew(res, item['typeref']->StructMembers(items, all))
+        continue
       endif
-      if has_key(item, 'typename')
-	call extend(res, s:StructMembers(item['typename'], a:items, a:all))
-	continue
+      if item->has_key('typename')
+        res = extendnew(res, item['typename']->StructMembers(items, all))
+        continue
       endif
 
-      " Only handle typedefs here.
+      # Only handle typedefs here.
       if item['kind'] != 't'
-	continue
+        continue
       endif
 
-      " Skip matches local to another file.
-      if has_key(item, 'static') && item['static'] && bufnr('%') != bufnr(item['filename'])
-	continue
+      # Skip matches local to another file.
+      if item->has_key('static') && item['static']
+        && bufnr('%') != bufnr(item['filename'])
+        continue
       endif
 
-      " For old ctags we recognize "typedef struct aaa" and
-      " "typedef union bbb" in the tags file command.
-      let cmd = item['cmd']
-      let ei = matchend(cmd, 'typedef\s\+')
+      # For old ctags we recognize "typedef struct aaa" and
+      # "typedef union bbb" in the tags file command.
+      var cmd: string = item['cmd']
+      var ei: number = cmd->charidx(matchend(cmd, 'typedef\s\+'))
       if ei > 1
-	let cmdtokens = split(strpart(cmd, ei), '\s\+\|\<')
-	if len(cmdtokens) > 1
-	  if cmdtokens[0] == 'struct' || cmdtokens[0] == 'union' || cmdtokens[0] == 'class'
-	    let name = ''
-	    " Use the first identifier after the "struct" or "union"
-	    for ti in range(len(cmdtokens) - 1)
-	      if cmdtokens[ti] =~ '^\w'
-		let name = cmdtokens[ti]
-		break
-	      endif
-	    endfor
-	    if name != ''
-	      call extend(res, s:StructMembers(cmdtokens[0] . ':' . name, a:items, a:all))
-	    endif
-	  elseif a:depth < 10
-	    " Could be "typedef other_T some_T".
-	    call extend(res, s:Nextitem(cmdtokens[0], a:items, a:depth + 1, a:all))
-	  endif
-	endif
+        var cmdtokens: list<string> = cmd[ei :]->split('\s\+\|\<')
+        if len(cmdtokens) > 1
+          if cmdtokens[0] == 'struct'
+            || cmdtokens[0] == 'union'
+            || cmdtokens[0] == 'class'
+            var name: string = ''
+            # Use the first identifier after the "struct" or "union"
+            for ti: number in (len(cmdtokens) - 1)->range()
+              if cmdtokens[ti] =~ '^\w'
+                name = cmdtokens[ti]
+                break
+              endif
+            endfor
+            if name != ''
+              res = extendnew(res, StructMembers(cmdtokens[0] .. ':' .. name, items, all))
+            endif
+          elseif depth < 10
+            # Could be "typedef other_T some_T".
+            res = extendnew(res, cmdtokens[0]->Nextitem(items, depth + 1, all))
+          endif
+        endif
       endif
     endfor
     if len(res) > 0
@@ -485,155 +526,173 @@
   endfor
 
   return res
-endfunc
+enddef
 
+def StructMembers( # {{{1
+  atypename: string,
+  items: list<string>,
+  all: bool
+): list<dict<string>>
 
-" Search for members of structure "typename" in tags files.
-" Return a list with resulting matches.
-" Each match is a dictionary with "match" and "tagline" entries.
-" When "all" is non-zero find all, otherwise just return 1 if there is any
-" member.
-func s:StructMembers(typename, items, all)
-  " Todo: What about local structures?
-  let fnames = join(map(tagfiles(), 'escape(v:val, " \\#%")'))
+# Search for members of structure "typename" in tags files.
+# Return a list with resulting matches.
+# Each match is a dictionary with "match" and "tagline" entries.
+# When "all" is true find all, otherwise just return 1 if there is any member.
+
+  # Todo: What about local structures?
+  var fnames: string = tagfiles()
+    ->map((_, v: string) => escape(v, ' \#%'))
+    ->join()
   if fnames == ''
     return []
   endif
 
-  let typename = a:typename
-  let qflist = []
-  let cached = 0
-  if a:all == 0
-    let n = '1'	" stop at first found match
-    if has_key(s:grepCache, a:typename)
-      let qflist = s:grepCache[a:typename]
-      let cached = 1
+  var typename: string = atypename
+  var qflist: list<dict<any>>
+  var cached: number = 0
+  var n: string
+  if !all
+    n = '1'  # stop at first found match
+    if grepCache->has_key(typename)
+      qflist = grepCache[typename]
+      cached = 1
     endif
   else
-    let n = ''
+    n = ''
   endif
   if !cached
     while 1
-      exe 'silent! keepj noautocmd ' . n . 'vimgrep /\t' . typename . '\(\t\|$\)/j ' . fnames
+      execute 'silent! keepjumps noautocmd '
+        .. n .. 'vimgrep ' .. '/\t' .. typename .. '\(\t\|$\)/j '
+        .. fnames
 
-      let qflist = getqflist()
-      if len(qflist) > 0 || match(typename, "::") < 0
-	break
+      qflist = getqflist()
+      if len(qflist) > 0 || match(typename, '::') < 0
+        break
       endif
-      " No match for "struct:context::name", remove "context::" and try again.
-      let typename = substitute(typename, ':[^:]*::', ':', '')
+      # No match for "struct:context::name", remove "context::" and try again.
+      typename = typename->substitute(':[^:]*::', ':', '')
     endwhile
 
-    if a:all == 0
-      " Store the result to be able to use it again later.
-      let s:grepCache[a:typename] = qflist
+    if !all
+      # Store the result to be able to use it again later.
+      grepCache[typename] = qflist
     endif
   endif
 
-  " Skip over [...] items
-  let idx = 0
+  # Skip over [...] items
+  var idx: number = 0
+  var target: string
   while 1
-    if idx >= len(a:items)
-      let target = ''		" No further items, matching all members
+    if idx >= len(items)
+      target = ''  # No further items, matching all members
       break
     endif
-    if a:items[idx][0] != '['
-      let target = a:items[idx]
+    if items[idx][0] != '['
+      target = items[idx]
       break
     endif
-    let idx += 1
+    ++idx
   endwhile
-  " Put matching members in matches[].
-  let matches = []
-  for l in qflist
-    let memb = matchstr(l['text'], '[^\t]*')
-    if memb =~ '^' . target
-      " Skip matches local to another file.
-      if match(l['text'], "\tfile:") < 0 || bufnr('%') == bufnr(matchstr(l['text'], '\t\zs[^\t]*'))
-	let item = {'match': memb, 'tagline': l['text']}
+  # Put matching members in matches[].
+  var matches: list<dict<string>>
+  for l: dict<any> in qflist
+    var memb: string = l['text']->matchstr('[^\t]*')
+    if memb =~ '^' .. target
+      # Skip matches local to another file.
+      if match(l['text'], "\tfile:") < 0
+        || bufnr('%') == l['text']->matchstr('\t\zs[^\t]*')->bufnr()
+        var item: dict<string> = {match: memb, tagline: l['text']}
 
-	" Add the kind of item.
-	let s = matchstr(l['text'], '\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
-	if s != ''
-	  let item['kind'] = s
-	  if s == 'f'
-	    let item['match'] = memb . '('
-	  endif
-	endif
+        # Add the kind of item.
+        var s: string = l['text']->matchstr('\t\(kind:\)\=\zs\S\ze\(\t\|$\)')
+        if s != ''
+          item['kind'] = s
+          if s == 'f'
+            item['match'] = memb .. '('
+          endif
+        endif
 
-	call add(matches, item)
+        matches->add(item)
       endif
     endif
   endfor
 
   if len(matches) > 0
-    " Skip over next [...] items
-    let idx += 1
+    # Skip over next [...] items
+    ++idx
     while 1
-      if idx >= len(a:items)
-	return matches		" No further items, return the result.
+      if idx >= len(items)
+        return matches  # No further items, return the result.
       endif
-      if a:items[idx][0] != '['
-	break
+      if items[idx][0] != '['
+        break
       endif
-      let idx += 1
+      ++idx
     endwhile
 
-    " More items following.  For each of the possible members find the
-    " matching following members.
-    return s:SearchMembers(matches, a:items[idx :], a:all)
+    # More items following.  For each of the possible members find the
+    # matching following members.
+    return SearchMembers(matches, items[idx :], all)
   endif
 
-  " Failed to find anything.
+  # Failed to find anything.
   return []
-endfunc
+enddef
 
-" For matching members, find matches for following items.
-" When "all" is non-zero find all, otherwise just return 1 if there is any
-" member.
-func s:SearchMembers(matches, items, all)
-  let res = []
-  for i in range(len(a:matches))
-    let typename = ''
-    if has_key(a:matches[i], 'dict')
-      if has_key(a:matches[i].dict, 'typename')
-	let typename = a:matches[i].dict['typename']
-      elseif has_key(a:matches[i].dict, 'typeref')
-	let typename = a:matches[i].dict['typeref']
+def SearchMembers( # {{{1
+  matches: list<dict<any>>,
+  items: list<string>,
+  all: bool
+): list<dict<string>>
+
+# For matching members, find matches for following items.
+# When "all" is true find all, otherwise just return 1 if there is any member.
+  var res: list<dict<string>>
+  for i: number in len(matches)->range()
+    var typename: string = ''
+    var line: string
+    if matches[i]->has_key('dict')
+      if matches[i]['dict']->has_key('typename')
+        typename = matches[i]['dict']['typename']
+      elseif matches[i]['dict']->has_key('typeref')
+        typename = matches[i]['dict']['typeref']
       endif
-      let line = "\t" . a:matches[i].dict['cmd']
+      line = "\t" .. matches[i]['dict']['cmd']
     else
-      let line = a:matches[i]['tagline']
-      let e = matchend(line, '\ttypename:')
+      line = matches[i]['tagline']
+      var eb: number = matchend(line, '\ttypename:')
+      var e: number = charidx(line, eb)
       if e < 0
-	let e = matchend(line, '\ttyperef:')
+        eb = matchend(line, '\ttyperef:')
+        e = charidx(line, eb)
       endif
       if e > 0
-	" Use typename field
-	let typename = matchstr(line, '[^\t]*', e)
+        # Use typename field
+        typename = line->matchstr('[^\t]*', eb)
       endif
     endif
 
     if typename != ''
-      call extend(res, s:StructMembers(typename, a:items, a:all))
+      res = extendnew(res, StructMembers(typename, items, all))
     else
-      " Use the search command (the declaration itself).
-      let s = match(line, '\t\zs/^')
+      # Use the search command (the declaration itself).
+      var sb: number = line->match('\t\zs/^')
+      var s: number = charidx(line, sb)
       if s > 0
-	let e = match(line, '\<' . a:matches[i]['match'] . '\>', s)
-	if e > 0
-	  call extend(res, s:Nextitem(strpart(line, s, e - s), a:items, 0, a:all))
-	endif
+        var e: number = line
+          ->charidx(match(line, '\<' .. matches[i]['match'] .. '\>', sb))
+        if e > 0
+          res = extendnew(res, line[s : e - 1]->Nextitem(items, 0, all))
+        endif
       endif
     endif
-    if a:all == 0 && len(res) > 0
+    if !all && len(res) > 0
       break
     endif
   endfor
   return res
-endfunc
+enddef
+#}}}1
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
-
-" vim: noet sw=2 sts=2
+# vim: noet sw=2 sts=2
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 31843ee..c877ddb 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 23
+*change.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -259,6 +259,9 @@
 			line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 ==============================================================================
 3. Simple changes					*simple-change*
@@ -1374,6 +1377,9 @@
 
 							*:t*
 :t			Synonym for copy.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 :[range]m[ove] {address}			*:m* *:mo* *:move* *E134*
 			Move the lines given by [range] to below the line
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 1dc3ebe..1d81220 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 8.2.  Last change: 2021 Dec 04
+*cmdline.txt*   For Vim version 8.2.  Last change: 2021 Dec 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -705,6 +705,15 @@
 
 The basics are explained in section |10.3| of the user manual.
 
+In |Vim9| script a range needs to be prefixed with a colon to avoid ambiguity
+with continuation lines.  For example, "+" can be used for a range but is also
+a continuation of an expression: >
+	var result = start
+	+ print
+If the "+" is a range then it must be prefixed with a colon: >
+	var result = start
+	:+ print
+<
 						*:,* *:;*
 When separated with ';' the cursor position will be set to that line
 before interpreting the next line specifier.  This doesn't happen for ','.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index fc4080c..d6161b1 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 8.2.  Last change: 2021 Dec 11
+*editing.txt*   For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1147,6 +1147,9 @@
 			made.
 			When 'hidden' is set and there are more windows, the
 			current buffer becomes hidden, after writing the file.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 							*:exi* *:exit*
 :[range]exi[t][!] [++opt] [file]
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index cac76ba..9fd7f96 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -553,8 +553,6 @@
 
 These characters can be changed with the 'fillchars' option.
 
-These characters can be changed with the 'fillchars' option.
-
 Where the fold column is too narrow to display all nested folds, digits are
 shown to indicate the nesting level.
 
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 13d6c8a..b9a0600 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 8.2.  Last change: 2020 Aug 15
+*help.txt*	For Vim version 8.2.  Last change: 2021 Dec 27
 
 			VIM - main help file
 									 k
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 230afb1..5d25847 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 8.2.  Last change: 2021 Oct 24
+*insert.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1958,6 +1958,9 @@
 			inserted after the current line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 							*:i* *:in* *:insert*
 :{range}i[nsert][!]	Insert several lines of text above the specified
@@ -1965,6 +1968,9 @@
 			inserted before the current line.
 			Adding [!] toggles 'autoindent' for the time this
 			command is executed.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 These two commands will keep on asking for lines, until you type a line
 containing only a ".".  Watch out for lines starting with a backslash, see
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index b8806d2..479f447 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.2.  Last change: 2021 Dec 20
+*map.txt*       For Vim version 8.2.  Last change: 2021 Dec 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -356,7 +356,7 @@
 - In Select mode, |:map| and |:vmap| command mappings are executed in
   Visual mode.  Use |:smap| to handle Select mode differently.
 
-							*E1135* *E1136*
+							*E1255* *E1136*
 <Cmd> commands must terminate, that is, they must be followed by <CR> in the
 {rhs} of the mapping definition.  |Command-line| mode is never entered.
 
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 4412d56..36a7309 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 8.2.  Last change: 2021 Dec 13
+*motion.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -788,6 +788,9 @@
 						*:k*
 :[range]k{a-zA-Z'}	Same as :mark, but the space before the mark name can
 			be omitted.
+			This command is not supported in |Vim9| script,
+			because it is too easily confused with a variable
+			name.
 
 						*'* *'a* *`* *`a*
 '{a-z}  `{a-z}		Jump to the mark {a-z} in the current buffer.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e8773d9..1967167 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2021 Dec 21
+*options.txt*	For Vim version 8.2.  Last change: 2021 Dec 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index 02b675a..83fc193 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 8.2.  Last change: 2019 May 05
+*remote.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 049fabb..25f375e 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 8.2.  Last change: 2021 Nov 24
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -495,6 +495,9 @@
 		\ "very long regexp"
 		\ keepend
 
+In |Vim9| script the backslash can often be omitted, but not always.
+See |vim9-line-continuation|.
+
 There is a problem with the ":append" and ":insert" commands: >
    :1append
    \asdf
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 9b5fe38..c2db4e6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1414,7 +1414,7 @@
 +timers	various.txt	/*+timers*
 +title	various.txt	/*+title*
 +toolbar	various.txt	/*+toolbar*
-+unix	eval.txt	/*+unix*
++unix	builtin.txt	/*+unix*
 +user_commands	various.txt	/*+user_commands*
 +vartabs	various.txt	/*+vartabs*
 +vertsplit	various.txt	/*+vertsplit*
@@ -2123,6 +2123,8 @@
 :arga	editing.txt	/*:arga*
 :argadd	editing.txt	/*:argadd*
 :argd	editing.txt	/*:argd*
+:argded	editing.txt	/*:argded*
+:argdedupe	editing.txt	/*:argdedupe*
 :argdelete	editing.txt	/*:argdelete*
 :argdo	editing.txt	/*:argdo*
 :arge	editing.txt	/*:arge*
@@ -3584,7 +3586,7 @@
 <F9>	term.txt	/*<F9>*
 <Help>	helphelp.txt	/*<Help>*
 <Home>	motion.txt	/*<Home>*
-<Ignore>	eval.txt	/*<Ignore>*
+<Ignore>	builtin.txt	/*<Ignore>*
 <Insert>	insert.txt	/*<Insert>*
 <Leader>	map.txt	/*<Leader>*
 <Left>	motion.txt	/*<Left>*
@@ -3960,15 +3962,14 @@
 E1094	vim9.txt	/*E1094*
 E11	cmdline.txt	/*E11*
 E110	eval.txt	/*E110*
-E1109	eval.txt	/*E1109*
+E1109	builtin.txt	/*E1109*
 E111	eval.txt	/*E111*
-E1110	eval.txt	/*E1110*
-E1111	eval.txt	/*E1111*
-E1112	eval.txt	/*E1112*
-E1113	eval.txt	/*E1113*
+E1110	builtin.txt	/*E1110*
+E1111	builtin.txt	/*E1111*
+E1112	builtin.txt	/*E1112*
+E1113	builtin.txt	/*E1113*
 E112	eval.txt	/*E112*
 E113	eval.txt	/*E113*
-E1135	map.txt	/*E1135*
 E1136	map.txt	/*E1136*
 E1137	map.txt	/*E1137*
 E114	eval.txt	/*E114*
@@ -3991,21 +3992,22 @@
 E120	eval.txt	/*E120*
 E1200	options.txt	/*E1200*
 E1201	options.txt	/*E1201*
-E1205	eval.txt	/*E1205*
+E1205	builtin.txt	/*E1205*
 E121	eval.txt	/*E121*
-E1214	eval.txt	/*E1214*
+E1214	builtin.txt	/*E1214*
 E122	eval.txt	/*E122*
 E123	eval.txt	/*E123*
 E1231	map.txt	/*E1231*
-E1232	eval.txt	/*E1232*
-E1233	eval.txt	/*E1233*
+E1232	builtin.txt	/*E1232*
+E1233	builtin.txt	/*E1233*
 E1237	map.txt	/*E1237*
-E1239	eval.txt	/*E1239*
+E1239	builtin.txt	/*E1239*
 E124	eval.txt	/*E124*
 E1243	options.txt	/*E1243*
 E1244	message.txt	/*E1244*
 E1245	cmdline.txt	/*E1245*
 E125	eval.txt	/*E125*
+E1255	map.txt	/*E1255*
 E126	eval.txt	/*E126*
 E127	eval.txt	/*E127*
 E128	eval.txt	/*E128*
@@ -4131,7 +4133,7 @@
 E239	sign.txt	/*E239*
 E24	message.txt	/*E24*
 E240	remote.txt	/*E240*
-E241	eval.txt	/*E241*
+E241	builtin.txt	/*E241*
 E242	windows.txt	/*E242*
 E243	if_ole.txt	/*E243*
 E244	gui.txt	/*E244*
@@ -4257,10 +4259,10 @@
 E36	windows.txt	/*E36*
 E360	various.txt	/*E360*
 E363	options.txt	/*E363*
-E364	eval.txt	/*E364*
+E364	builtin.txt	/*E364*
 E365	print.txt	/*E365*
 E367	autocmd.txt	/*E367*
-E368	eval.txt	/*E368*
+E368	builtin.txt	/*E368*
 E369	pattern.txt	/*E369*
 E37	message.txt	/*E37*
 E370	various.txt	/*E370*
@@ -4348,7 +4350,7 @@
 E446	editing.txt	/*E446*
 E447	editing.txt	/*E447*
 E448	various.txt	/*E448*
-E449	eval.txt	/*E449*
+E449	builtin.txt	/*E449*
 E45	message.txt	/*E45*
 E452	eval.txt	/*E452*
 E453	syntax.txt	/*E453*
@@ -4358,7 +4360,7 @@
 E458	message.txt	/*E458*
 E459	message.txt	/*E459*
 E46	message.txt	/*E46*
-E460	eval.txt	/*E460*
+E460	builtin.txt	/*E460*
 E461	eval.txt	/*E461*
 E462	editing.txt	/*E462*
 E463	netbeans.txt	/*E463*
@@ -4561,7 +4563,7 @@
 E650	netbeans.txt	/*E650*
 E651	netbeans.txt	/*E651*
 E652	netbeans.txt	/*E652*
-E655	eval.txt	/*E655*
+E655	builtin.txt	/*E655*
 E656	netbeans.txt	/*E656*
 E657	netbeans.txt	/*E657*
 E658	netbeans.txt	/*E658*
@@ -4585,7 +4587,7 @@
 E674	print.txt	/*E674*
 E675	print.txt	/*E675*
 E676	options.txt	/*E676*
-E677	eval.txt	/*E677*
+E677	builtin.txt	/*E677*
 E678	pattern.txt	/*E678*
 E679	syntax.txt	/*E679*
 E68	pattern.txt	/*E68*
@@ -4607,12 +4609,12 @@
 E695	eval.txt	/*E695*
 E696	eval.txt	/*E696*
 E697	eval.txt	/*E697*
-E698	eval.txt	/*E698*
-E699	eval.txt	/*E699*
+E698	builtin.txt	/*E698*
+E699	builtin.txt	/*E699*
 E70	pattern.txt	/*E70*
-E700	eval.txt	/*E700*
-E701	eval.txt	/*E701*
-E702	eval.txt	/*E702*
+E700	builtin.txt	/*E700*
+E701	builtin.txt	/*E701*
+E702	builtin.txt	/*E702*
 E703	eval.txt	/*E703*
 E704	eval.txt	/*E704*
 E705	eval.txt	/*E705*
@@ -4635,10 +4637,10 @@
 E721	eval.txt	/*E721*
 E722	eval.txt	/*E722*
 E723	eval.txt	/*E723*
-E724	eval.txt	/*E724*
+E724	builtin.txt	/*E724*
 E725	eval.txt	/*E725*
-E726	eval.txt	/*E726*
-E727	eval.txt	/*E727*
+E726	builtin.txt	/*E726*
+E727	builtin.txt	/*E727*
 E728	eval.txt	/*E728*
 E729	eval.txt	/*E729*
 E73	tagsrch.txt	/*E73*
@@ -4649,9 +4651,9 @@
 E734	eval.txt	/*E734*
 E735	eval.txt	/*E735*
 E736	eval.txt	/*E736*
-E737	eval.txt	/*E737*
+E737	builtin.txt	/*E737*
 E738	eval.txt	/*E738*
-E739	eval.txt	/*E739*
+E739	builtin.txt	/*E739*
 E74	message.txt	/*E74*
 E740	eval.txt	/*E740*
 E741	eval.txt	/*E741*
@@ -4681,8 +4683,8 @@
 E763	spell.txt	/*E763*
 E764	options.txt	/*E764*
 E765	options.txt	/*E765*
-E766	eval.txt	/*E766*
-E767	eval.txt	/*E767*
+E766	builtin.txt	/*E766*
+E767	builtin.txt	/*E767*
 E768	message.txt	/*E768*
 E769	pattern.txt	/*E769*
 E77	message.txt	/*E77*
@@ -4702,8 +4704,8 @@
 E782	spell.txt	/*E782*
 E783	spell.txt	/*E783*
 E784	tabpage.txt	/*E784*
-E785	eval.txt	/*E785*
-E786	eval.txt	/*E786*
+E785	builtin.txt	/*E785*
+E786	builtin.txt	/*E786*
 E787	diff.txt	/*E787*
 E788	autocmd.txt	/*E788*
 E789	syntax.txt	/*E789*
@@ -4716,17 +4718,17 @@
 E795	eval.txt	/*E795*
 E796	editing.txt	/*E796*
 E797	spell.txt	/*E797*
-E798	eval.txt	/*E798*
-E799	eval.txt	/*E799*
+E798	builtin.txt	/*E798*
+E799	builtin.txt	/*E799*
 E80	message.txt	/*E80*
 E800	arabic.txt	/*E800*
-E801	eval.txt	/*E801*
-E802	eval.txt	/*E802*
-E803	eval.txt	/*E803*
+E801	builtin.txt	/*E801*
+E802	builtin.txt	/*E802*
+E803	builtin.txt	/*E803*
 E804	eval.txt	/*E804*
 E805	eval.txt	/*E805*
 E806	eval.txt	/*E806*
-E807	eval.txt	/*E807*
+E807	builtin.txt	/*E807*
 E808	eval.txt	/*E808*
 E809	cmdline.txt	/*E809*
 E81	map.txt	/*E81*
@@ -4780,8 +4782,8 @@
 E853	eval.txt	/*E853*
 E854	options.txt	/*E854*
 E855	autocmd.txt	/*E855*
-E858	eval.txt	/*E858*
-E859	eval.txt	/*E859*
+E858	builtin.txt	/*E858*
+E859	builtin.txt	/*E859*
 E86	windows.txt	/*E86*
 E860	textprop.txt	/*E860*
 E861	popup.txt	/*E861*
@@ -4807,8 +4809,8 @@
 E88	windows.txt	/*E88*
 E880	if_pyth.txt	/*E880*
 E881	autocmd.txt	/*E881*
-E882	eval.txt	/*E882*
-E883	eval.txt	/*E883*
+E882	builtin.txt	/*E882*
+E883	builtin.txt	/*E883*
 E884	eval.txt	/*E884*
 E885	sign.txt	/*E885*
 E886	starting.txt	/*E886*
@@ -4827,7 +4829,7 @@
 E898	channel.txt	/*E898*
 E899	eval.txt	/*E899*
 E90	message.txt	/*E90*
-E900	eval.txt	/*E900*
+E900	builtin.txt	/*E900*
 E901	channel.txt	/*E901*
 E902	channel.txt	/*E902*
 E903	channel.txt	/*E903*
@@ -4851,29 +4853,29 @@
 E92	message.txt	/*E92*
 E920	channel.txt	/*E920*
 E921	channel.txt	/*E921*
-E922	eval.txt	/*E922*
-E923	eval.txt	/*E923*
+E922	builtin.txt	/*E922*
+E923	builtin.txt	/*E923*
 E924	quickfix.txt	/*E924*
 E925	quickfix.txt	/*E925*
 E926	quickfix.txt	/*E926*
-E927	eval.txt	/*E927*
+E927	builtin.txt	/*E927*
 E928	message.txt	/*E928*
 E929	starting.txt	/*E929*
 E93	windows.txt	/*E93*
-E930	eval.txt	/*E930*
+E930	builtin.txt	/*E930*
 E931	message.txt	/*E931*
 E932	eval.txt	/*E932*
 E933	eval.txt	/*E933*
 E934	sign.txt	/*E934*
-E935	eval.txt	/*E935*
+E935	builtin.txt	/*E935*
 E936	autocmd.txt	/*E936*
 E937	autocmd.txt	/*E937*
-E938	eval.txt	/*E938*
+E938	builtin.txt	/*E938*
 E939	change.txt	/*E939*
 E94	windows.txt	/*E94*
 E940	eval.txt	/*E940*
-E941	eval.txt	/*E941*
-E942	eval.txt	/*E942*
+E941	builtin.txt	/*E941*
+E942	builtin.txt	/*E942*
 E943	message.txt	/*E943*
 E944	pattern.txt	/*E944*
 E945	pattern.txt	/*E945*
@@ -4889,13 +4891,13 @@
 E954	options.txt	/*E954*
 E955	terminal.txt	/*E955*
 E956	pattern.txt	/*E956*
-E957	eval.txt	/*E957*
+E957	builtin.txt	/*E957*
 E958	terminal.txt	/*E958*
 E959	diff.txt	/*E959*
 E96	diff.txt	/*E96*
 E960	options.txt	/*E960*
 E961	cmdline.txt	/*E961*
-E962	eval.txt	/*E962*
+E962	builtin.txt	/*E962*
 E963	eval.txt	/*E963*
 E964	textprop.txt	/*E964*
 E965	textprop.txt	/*E965*
@@ -4915,7 +4917,7 @@
 E978	eval.txt	/*E978*
 E979	eval.txt	/*E979*
 E98	diff.txt	/*E98*
-E980	eval.txt	/*E980*
+E980	builtin.txt	/*E980*
 E981	starting.txt	/*E981*
 E982	terminal.txt	/*E982*
 E983	message.txt	/*E983*
@@ -4930,11 +4932,11 @@
 E991	eval.txt	/*E991*
 E992	options.txt	/*E992*
 E993	popup.txt	/*E993*
-E994	eval.txt	/*E994*
+E994	builtin.txt	/*E994*
 E995	eval.txt	/*E995*
 E996	eval.txt	/*E996*
 E997	popup.txt	/*E997*
-E998	eval.txt	/*E998*
+E998	builtin.txt	/*E998*
 E999	repeat.txt	/*E999*
 EX	intro.txt	/*EX*
 EXINIT	starting.txt	/*EXINIT*
@@ -5069,7 +5071,7 @@
 OptionSet	autocmd.txt	/*OptionSet*
 OverTheSpot	mbyte.txt	/*OverTheSpot*
 P	change.txt	/*P*
-PATHEXT	eval.txt	/*PATHEXT*
+PATHEXT	builtin.txt	/*PATHEXT*
 PEP8	filetype.txt	/*PEP8*
 PHP_BracesAtCodeLevel	indent.txt	/*PHP_BracesAtCodeLevel*
 PHP_IndentFunctionCallParameters	indent.txt	/*PHP_IndentFunctionCallParameters*
@@ -5394,8 +5396,8 @@
 abandon	editing.txt	/*abandon*
 abbreviations	map.txt	/*abbreviations*
 abel.vim	syntax.txt	/*abel.vim*
-abs()	eval.txt	/*abs()*
-acos()	eval.txt	/*acos()*
+abs()	builtin.txt	/*abs()*
+acos()	builtin.txt	/*acos()*
 active-buffer	windows.txt	/*active-buffer*
 ada#Create_Tags()	ft_ada.txt	/*ada#Create_Tags()*
 ada#Jump_Tag()	ft_ada.txt	/*ada#Jump_Tag()*
@@ -5407,7 +5409,7 @@
 ada-extra-plugins	ft_ada.txt	/*ada-extra-plugins*
 ada-reference	ft_ada.txt	/*ada-reference*
 ada.vim	ft_ada.txt	/*ada.vim*
-add()	eval.txt	/*add()*
+add()	builtin.txt	/*add()*
 add-filetype-plugin	usr_05.txt	/*add-filetype-plugin*
 add-global-plugin	usr_05.txt	/*add-global-plugin*
 add-local-help	usr_05.txt	/*add-local-help*
@@ -5447,30 +5449,30 @@
 alt-input	debugger.txt	/*alt-input*
 alternate-file	editing.txt	/*alternate-file*
 amiga-window	starting.txt	/*amiga-window*
-and()	eval.txt	/*and()*
+and()	builtin.txt	/*and()*
 anonymous-function	eval.txt	/*anonymous-function*
 ant.vim	syntax.txt	/*ant.vim*
 ap	motion.txt	/*ap*
 apache.vim	syntax.txt	/*apache.vim*
-append()	eval.txt	/*append()*
-appendbufline()	eval.txt	/*appendbufline()*
+append()	builtin.txt	/*append()*
+appendbufline()	builtin.txt	/*appendbufline()*
 aquote	motion.txt	/*aquote*
 arabic.txt	arabic.txt	/*arabic.txt*
 arabicfonts	arabic.txt	/*arabicfonts*
 arabickeymap	arabic.txt	/*arabickeymap*
 arg-functions	usr_41.txt	/*arg-functions*
-argc()	eval.txt	/*argc()*
-argidx()	eval.txt	/*argidx()*
+argc()	builtin.txt	/*argc()*
+argidx()	builtin.txt	/*argidx()*
 arglist	editing.txt	/*arglist*
 arglist-position	editing.txt	/*arglist-position*
 arglist-quit	usr_07.txt	/*arglist-quit*
-arglistid()	eval.txt	/*arglistid()*
+arglistid()	builtin.txt	/*arglistid()*
 argument-list	editing.txt	/*argument-list*
-argv()	eval.txt	/*argv()*
+argv()	builtin.txt	/*argv()*
 argv-variable	eval.txt	/*argv-variable*
 arrow_modifiers	term.txt	/*arrow_modifiers*
 as	motion.txt	/*as*
-asin()	eval.txt	/*asin()*
+asin()	builtin.txt	/*asin()*
 asm.vim	syntax.txt	/*asm.vim*
 asm68k	syntax.txt	/*asm68k*
 asmh8300.vim	syntax.txt	/*asmh8300.vim*
@@ -5490,8 +5492,8 @@
 assert_report()	testing.txt	/*assert_report()*
 assert_true()	testing.txt	/*assert_true()*
 at	motion.txt	/*at*
-atan()	eval.txt	/*atan()*
-atan2()	eval.txt	/*atan2()*
+atan()	builtin.txt	/*atan()*
+atan2()	builtin.txt	/*atan2()*
 athena-intellimouse	gui.txt	/*athena-intellimouse*
 attr-list	syntax.txt	/*attr-list*
 author	intro.txt	/*author*
@@ -5553,9 +5555,9 @@
 backup-extension	version4.txt	/*backup-extension*
 backup-table	editing.txt	/*backup-table*
 balloon-eval	debugger.txt	/*balloon-eval*
-balloon_gettext()	eval.txt	/*balloon_gettext()*
-balloon_show()	eval.txt	/*balloon_show()*
-balloon_split()	eval.txt	/*balloon_split()*
+balloon_gettext()	builtin.txt	/*balloon_gettext()*
+balloon_show()	builtin.txt	/*balloon_show()*
+balloon_split()	builtin.txt	/*balloon_split()*
 bar	motion.txt	/*bar*
 bars	help.txt	/*bars*
 base_font_name_list	mbyte.txt	/*base_font_name_list*
@@ -5577,7 +5579,7 @@
 blob-index	eval.txt	/*blob-index*
 blob-literal	eval.txt	/*blob-literal*
 blob-modification	eval.txt	/*blob-modification*
-blob2list()	eval.txt	/*blob2list()*
+blob2list()	builtin.txt	/*blob2list()*
 blockwise-examples	visual.txt	/*blockwise-examples*
 blockwise-operators	visual.txt	/*blockwise-operators*
 blockwise-register	change.txt	/*blockwise-register*
@@ -5591,28 +5593,28 @@
 books	intro.txt	/*books*
 boolean	options.txt	/*boolean*
 break-finally	eval.txt	/*break-finally*
-browse()	eval.txt	/*browse()*
-browsedir()	eval.txt	/*browsedir()*
+browse()	builtin.txt	/*browse()*
+browsedir()	builtin.txt	/*browsedir()*
 browsefilter	editing.txt	/*browsefilter*
-bufadd()	eval.txt	/*bufadd()*
-bufexists()	eval.txt	/*bufexists()*
+bufadd()	builtin.txt	/*bufadd()*
+bufexists()	builtin.txt	/*bufexists()*
 buffer-functions	usr_41.txt	/*buffer-functions*
 buffer-hidden	windows.txt	/*buffer-hidden*
 buffer-list	windows.txt	/*buffer-list*
 buffer-variable	eval.txt	/*buffer-variable*
 buffer-write	editing.txt	/*buffer-write*
-buffer_exists()	eval.txt	/*buffer_exists()*
-buffer_name()	eval.txt	/*buffer_name()*
-buffer_number()	eval.txt	/*buffer_number()*
+buffer_exists()	builtin.txt	/*buffer_exists()*
+buffer_name()	builtin.txt	/*buffer_name()*
+buffer_number()	builtin.txt	/*buffer_number()*
 buffers	windows.txt	/*buffers*
 buffers-menu	gui.txt	/*buffers-menu*
-buflisted()	eval.txt	/*buflisted()*
-bufload()	eval.txt	/*bufload()*
-bufloaded()	eval.txt	/*bufloaded()*
-bufname()	eval.txt	/*bufname()*
-bufnr()	eval.txt	/*bufnr()*
-bufwinid()	eval.txt	/*bufwinid()*
-bufwinnr()	eval.txt	/*bufwinnr()*
+buflisted()	builtin.txt	/*buflisted()*
+bufload()	builtin.txt	/*bufload()*
+bufloaded()	builtin.txt	/*bufloaded()*
+bufname()	builtin.txt	/*bufname()*
+bufnr()	builtin.txt	/*bufnr()*
+bufwinid()	builtin.txt	/*bufwinid()*
+bufwinnr()	builtin.txt	/*bufwinnr()*
 bug-fixes-5	version5.txt	/*bug-fixes-5*
 bug-fixes-6	version6.txt	/*bug-fixes-6*
 bug-fixes-7	version7.txt	/*bug-fixes-7*
@@ -5620,13 +5622,17 @@
 bug-reports	intro.txt	/*bug-reports*
 bugreport.vim	intro.txt	/*bugreport.vim*
 bugs	intro.txt	/*bugs*
+builtin-function-details	builtin.txt	/*builtin-function-details*
+builtin-function-list	builtin.txt	/*builtin-function-list*
+builtin-functions	builtin.txt	/*builtin-functions*
 builtin-terms	term.txt	/*builtin-terms*
 builtin-tools	gui.txt	/*builtin-tools*
+builtin.txt	builtin.txt	/*builtin.txt*
 builtin_terms	term.txt	/*builtin_terms*
 byte-count	editing.txt	/*byte-count*
-byte2line()	eval.txt	/*byte2line()*
-byteidx()	eval.txt	/*byteidx()*
-byteidxcomp()	eval.txt	/*byteidxcomp()*
+byte2line()	builtin.txt	/*byte2line()*
+byteidx()	builtin.txt	/*byteidx()*
+byteidxcomp()	builtin.txt	/*byteidxcomp()*
 bzip2	pi_gzip.txt	/*bzip2*
 c	change.txt	/*c*
 c.vim	syntax.txt	/*c.vim*
@@ -5742,7 +5748,7 @@
 c_space_errors	syntax.txt	/*c_space_errors*
 c_syntax_for_h	syntax.txt	/*c_syntax_for_h*
 c_wildchar	cmdline.txt	/*c_wildchar*
-call()	eval.txt	/*call()*
+call()	builtin.txt	/*call()*
 carriage-return	intro.txt	/*carriage-return*
 case	change.txt	/*case*
 catch-all	eval.txt	/*catch-all*
@@ -5751,7 +5757,7 @@
 catch-order	eval.txt	/*catch-order*
 catch-text	eval.txt	/*catch-text*
 cc	change.txt	/*cc*
-ceil()	eval.txt	/*ceil()*
+ceil()	builtin.txt	/*ceil()*
 cfilter-plugin	quickfix.txt	/*cfilter-plugin*
 ch.vim	syntax.txt	/*ch.vim*
 ch_canread()	channel.txt	/*ch_canread()*
@@ -5796,7 +5802,7 @@
 changed-8.2	version8.txt	/*changed-8.2*
 changelist	motion.txt	/*changelist*
 changelog.vim	syntax.txt	/*changelog.vim*
-changenr()	eval.txt	/*changenr()*
+changenr()	builtin.txt	/*changenr()*
 changetick	eval.txt	/*changetick*
 changing	change.txt	/*changing*
 channel	channel.txt	/*channel*
@@ -5818,22 +5824,22 @@
 channel-use	channel.txt	/*channel-use*
 channel.txt	channel.txt	/*channel.txt*
 char-variable	eval.txt	/*char-variable*
-char2nr()	eval.txt	/*char2nr()*
+char2nr()	builtin.txt	/*char2nr()*
 characterwise	motion.txt	/*characterwise*
 characterwise-register	change.txt	/*characterwise-register*
 characterwise-visual	visual.txt	/*characterwise-visual*
-charclass()	eval.txt	/*charclass()*
-charcol()	eval.txt	/*charcol()*
+charclass()	builtin.txt	/*charclass()*
+charcol()	builtin.txt	/*charcol()*
 charconvert_from-variable	eval.txt	/*charconvert_from-variable*
 charconvert_to-variable	eval.txt	/*charconvert_to-variable*
-charidx()	eval.txt	/*charidx()*
+charidx()	builtin.txt	/*charidx()*
 charity	uganda.txt	/*charity*
 charset	mbyte.txt	/*charset*
 charset-conversion	mbyte.txt	/*charset-conversion*
-chdir()	eval.txt	/*chdir()*
+chdir()	builtin.txt	/*chdir()*
 chill.vim	syntax.txt	/*chill.vim*
-chmod	eval.txt	/*chmod*
-cindent()	eval.txt	/*cindent()*
+chmod	builtin.txt	/*chmod*
+cindent()	builtin.txt	/*cindent()*
 cinkeys-format	indent.txt	/*cinkeys-format*
 cino-#	indent.txt	/*cino-#*
 cino-(	indent.txt	/*cino-(*
@@ -5874,7 +5880,7 @@
 cino-}	indent.txt	/*cino-}*
 cinoptions-values	indent.txt	/*cinoptions-values*
 clear-undo	undo.txt	/*clear-undo*
-clearmatches()	eval.txt	/*clearmatches()*
+clearmatches()	builtin.txt	/*clearmatches()*
 client-server	remote.txt	/*client-server*
 client-server-name	remote.txt	/*client-server-name*
 clientserver	remote.txt	/*clientserver*
@@ -5907,7 +5913,7 @@
 cobol.vim	syntax.txt	/*cobol.vim*
 codeset	mbyte.txt	/*codeset*
 coding-style	develop.txt	/*coding-style*
-col()	eval.txt	/*col()*
+col()	builtin.txt	/*col()*
 coldfusion.vim	syntax.txt	/*coldfusion.vim*
 collapse	tips.txt	/*collapse*
 collate-variable	eval.txt	/*collate-variable*
@@ -5950,7 +5956,7 @@
 compl-thesaurusfunc	insert.txt	/*compl-thesaurusfunc*
 compl-vim	insert.txt	/*compl-vim*
 compl-whole-line	insert.txt	/*compl-whole-line*
-complete()	eval.txt	/*complete()*
+complete()	builtin.txt	/*complete()*
 complete-functions	insert.txt	/*complete-functions*
 complete-item-kind	insert.txt	/*complete-item-kind*
 complete-items	insert.txt	/*complete-items*
@@ -5959,17 +5965,17 @@
 complete-script-local-functions	cmdline.txt	/*complete-script-local-functions*
 complete_CTRL-E	insert.txt	/*complete_CTRL-E*
 complete_CTRL-Y	insert.txt	/*complete_CTRL-Y*
-complete_add()	eval.txt	/*complete_add()*
-complete_check()	eval.txt	/*complete_check()*
-complete_info()	eval.txt	/*complete_info()*
-complete_info_mode	eval.txt	/*complete_info_mode*
+complete_add()	builtin.txt	/*complete_add()*
+complete_check()	builtin.txt	/*complete_check()*
+complete_info()	builtin.txt	/*complete_info()*
+complete_info_mode	builtin.txt	/*complete_info_mode*
 completed_item-variable	eval.txt	/*completed_item-variable*
 completion-functions	usr_41.txt	/*completion-functions*
 complex-change	change.txt	/*complex-change*
 complex-repeat	repeat.txt	/*complex-repeat*
 compress	pi_gzip.txt	/*compress*
 conceal	syntax.txt	/*conceal*
-confirm()	eval.txt	/*confirm()*
+confirm()	builtin.txt	/*confirm()*
 connection-refused	message.txt	/*connection-refused*
 console-menus	gui.txt	/*console-menus*
 control	intro.txt	/*control*
@@ -5977,15 +5983,15 @@
 convert-to-HTML	syntax.txt	/*convert-to-HTML*
 convert-to-XHTML	syntax.txt	/*convert-to-XHTML*
 convert-to-XML	syntax.txt	/*convert-to-XML*
-copy()	eval.txt	/*copy()*
+copy()	builtin.txt	/*copy()*
 copy-diffs	diff.txt	/*copy-diffs*
 copy-move	change.txt	/*copy-move*
 copying	uganda.txt	/*copying*
 copyright	uganda.txt	/*copyright*
-cos()	eval.txt	/*cos()*
-cosh()	eval.txt	/*cosh()*
+cos()	builtin.txt	/*cos()*
+cosh()	builtin.txt	/*cosh()*
 count	intro.txt	/*count*
-count()	eval.txt	/*count()*
+count()	builtin.txt	/*count()*
 count-bytes	tips.txt	/*count-bytes*
 count-items	tips.txt	/*count-items*
 count-variable	eval.txt	/*count-variable*
@@ -6068,7 +6074,7 @@
 cscope-options	if_cscop.txt	/*cscope-options*
 cscope-suggestions	if_cscop.txt	/*cscope-suggestions*
 cscope-win32	if_cscop.txt	/*cscope-win32*
-cscope_connection()	eval.txt	/*cscope_connection()*
+cscope_connection()	builtin.txt	/*cscope_connection()*
 cscopepathcomp	if_cscop.txt	/*cscopepathcomp*
 cscopeprg	if_cscop.txt	/*cscopeprg*
 cscopequickfix	if_cscop.txt	/*cscopequickfix*
@@ -6095,7 +6101,7 @@
 current-directory	editing.txt	/*current-directory*
 current-file	editing.txt	/*current-file*
 current_compiler	quickfix.txt	/*current_compiler*
-cursor()	eval.txt	/*cursor()*
+cursor()	builtin.txt	/*cursor()*
 cursor-blinking	options.txt	/*cursor-blinking*
 cursor-down	intro.txt	/*cursor-down*
 cursor-functions	usr_41.txt	/*cursor-functions*
@@ -6135,22 +6141,22 @@
 debug-win32	debug.txt	/*debug-win32*
 debug-windbg	debug.txt	/*debug-windbg*
 debug.txt	debug.txt	/*debug.txt*
-debugbreak()	eval.txt	/*debugbreak()*
+debugbreak()	builtin.txt	/*debugbreak()*
 debugger-compilation	debugger.txt	/*debugger-compilation*
 debugger-features	debugger.txt	/*debugger-features*
 debugger-support	debugger.txt	/*debugger-support*
 debugger.txt	debugger.txt	/*debugger.txt*
 dec-mouse	options.txt	/*dec-mouse*
 decada_members	ft_ada.txt	/*decada_members*
-deepcopy()	eval.txt	/*deepcopy()*
+deepcopy()	builtin.txt	/*deepcopy()*
 defaults.vim	starting.txt	/*defaults.vim*
 defaults.vim-explained	usr_05.txt	/*defaults.vim-explained*
 definition-search	tagsrch.txt	/*definition-search*
 definitions	intro.txt	/*definitions*
-delete()	eval.txt	/*delete()*
+delete()	builtin.txt	/*delete()*
 delete-insert	change.txt	/*delete-insert*
 delete-menus	gui.txt	/*delete-menus*
-deletebufline()	eval.txt	/*deletebufline()*
+deletebufline()	builtin.txt	/*deletebufline()*
 deleting	change.txt	/*deleting*
 demoserver.py	channel.txt	/*demoserver.py*
 design-assumptions	develop.txt	/*design-assumptions*
@@ -6180,7 +6186,7 @@
 dict-functions	usr_41.txt	/*dict-functions*
 dict-identity	eval.txt	/*dict-identity*
 dict-modification	eval.txt	/*dict-modification*
-did_filetype()	eval.txt	/*did_filetype()*
+did_filetype()	builtin.txt	/*did_filetype()*
 diff	diff.txt	/*diff*
 diff-diffexpr	diff.txt	/*diff-diffexpr*
 diff-mode	diff.txt	/*diff-mode*
@@ -6190,8 +6196,8 @@
 diff-slow	diff.txt	/*diff-slow*
 diff.txt	diff.txt	/*diff.txt*
 diff.vim	syntax.txt	/*diff.vim*
-diff_filler()	eval.txt	/*diff_filler()*
-diff_hlID()	eval.txt	/*diff_hlID()*
+diff_filler()	builtin.txt	/*diff_filler()*
+diff_hlID()	builtin.txt	/*diff_hlID()*
 diff_translations	diff.txt	/*diff_translations*
 digraph	digraph.txt	/*digraph*
 digraph-arg	change.txt	/*digraph-arg*
@@ -6199,10 +6205,10 @@
 digraph-table	digraph.txt	/*digraph-table*
 digraph-table-mbyte	digraph.txt	/*digraph-table-mbyte*
 digraph.txt	digraph.txt	/*digraph.txt*
-digraph_get()	eval.txt	/*digraph_get()*
-digraph_getlist()	eval.txt	/*digraph_getlist()*
-digraph_set()	eval.txt	/*digraph_set()*
-digraph_setlist()	eval.txt	/*digraph_setlist()*
+digraph_get()	builtin.txt	/*digraph_get()*
+digraph_getlist()	builtin.txt	/*digraph_getlist()*
+digraph_set()	builtin.txt	/*digraph_set()*
+digraph_setlist()	builtin.txt	/*digraph_setlist()*
 digraphs	digraph.txt	/*digraphs*
 digraphs-changed	version6.txt	/*digraphs-changed*
 digraphs-default	digraph.txt	/*digraphs-default*
@@ -6252,7 +6258,7 @@
 dying-variable	eval.txt	/*dying-variable*
 e	motion.txt	/*e*
 easy	starting.txt	/*easy*
-echoraw()	eval.txt	/*echoraw()*
+echoraw()	builtin.txt	/*echoraw()*
 echospace-variable	eval.txt	/*echospace-variable*
 edit-a-file	editing.txt	/*edit-a-file*
 edit-binary	editing.txt	/*edit-binary*
@@ -6271,7 +6277,7 @@
 emacs-keys	tips.txt	/*emacs-keys*
 emacs-tags	tagsrch.txt	/*emacs-tags*
 emacs_tags	tagsrch.txt	/*emacs_tags*
-empty()	eval.txt	/*empty()*
+empty()	builtin.txt	/*empty()*
 encoding-names	mbyte.txt	/*encoding-names*
 encoding-table	mbyte.txt	/*encoding-table*
 encoding-values	mbyte.txt	/*encoding-values*
@@ -6279,7 +6285,7 @@
 end	intro.txt	/*end*
 end-of-file	pattern.txt	/*end-of-file*
 enlightened-terminal	syntax.txt	/*enlightened-terminal*
-environ()	eval.txt	/*environ()*
+environ()	builtin.txt	/*environ()*
 erlang.vim	syntax.txt	/*erlang.vim*
 err_buf	channel.txt	/*err_buf*
 err_cb	channel.txt	/*err_cb*
@@ -6305,17 +6311,17 @@
 errors	message.txt	/*errors*
 errors-variable	eval.txt	/*errors-variable*
 escape	intro.txt	/*escape*
-escape()	eval.txt	/*escape()*
+escape()	builtin.txt	/*escape()*
 escape-bar	version4.txt	/*escape-bar*
 euphoria3.vim	syntax.txt	/*euphoria3.vim*
 euphoria4.vim	syntax.txt	/*euphoria4.vim*
 eval	eval.txt	/*eval*
-eval()	eval.txt	/*eval()*
+eval()	builtin.txt	/*eval()*
 eval-examples	eval.txt	/*eval-examples*
 eval-sandbox	eval.txt	/*eval-sandbox*
 eval.txt	eval.txt	/*eval.txt*
 event-variable	eval.txt	/*event-variable*
-eventhandler()	eval.txt	/*eventhandler()*
+eventhandler()	builtin.txt	/*eventhandler()*
 eview	starting.txt	/*eview*
 evim	starting.txt	/*evim*
 evim-keys	starting.txt	/*evim-keys*
@@ -6342,20 +6348,20 @@
 exception-variable	eval.txt	/*exception-variable*
 exclusive	motion.txt	/*exclusive*
 exclusive-linewise	motion.txt	/*exclusive-linewise*
-executable()	eval.txt	/*executable()*
-execute()	eval.txt	/*execute()*
+executable()	builtin.txt	/*executable()*
+execute()	builtin.txt	/*execute()*
 execute-menus	gui.txt	/*execute-menus*
-exepath()	eval.txt	/*exepath()*
+exepath()	builtin.txt	/*exepath()*
 exim	starting.txt	/*exim*
-exists()	eval.txt	/*exists()*
-exists_compiled()	eval.txt	/*exists_compiled()*
+exists()	builtin.txt	/*exists()*
+exists_compiled()	builtin.txt	/*exists_compiled()*
 exiting	starting.txt	/*exiting*
 exiting-variable	eval.txt	/*exiting-variable*
-exp()	eval.txt	/*exp()*
-expand()	eval.txt	/*expand()*
+exp()	builtin.txt	/*exp()*
+expand()	builtin.txt	/*expand()*
 expand-env	options.txt	/*expand-env*
 expand-environment-var	options.txt	/*expand-environment-var*
-expandcmd()	eval.txt	/*expandcmd()*
+expandcmd()	builtin.txt	/*expandcmd()*
 expr	eval.txt	/*expr*
 expr-!	eval.txt	/*expr-!*
 expr-!=	eval.txt	/*expr-!=*
@@ -6415,6 +6421,7 @@
 expr-unary--	eval.txt	/*expr-unary--*
 expr-variable	eval.txt	/*expr-variable*
 expr1	eval.txt	/*expr1*
+expr10	eval.txt	/*expr10*
 expr2	eval.txt	/*expr2*
 expr3	eval.txt	/*expr3*
 expr4	eval.txt	/*expr4*
@@ -6427,8 +6434,8 @@
 expression-commands	eval.txt	/*expression-commands*
 expression-syntax	eval.txt	/*expression-syntax*
 exrc	starting.txt	/*exrc*
-extend()	eval.txt	/*extend()*
-extendnew()	eval.txt	/*extendnew()*
+extend()	builtin.txt	/*extend()*
+extendnew()	builtin.txt	/*extendnew()*
 extension-removal	cmdline.txt	/*extension-removal*
 extensions-improvements	todo.txt	/*extensions-improvements*
 f	motion.txt	/*f*
@@ -6443,8 +6450,8 @@
 fast-functions	vim9.txt	/*fast-functions*
 fcs_choice-variable	eval.txt	/*fcs_choice-variable*
 fcs_reason-variable	eval.txt	/*fcs_reason-variable*
-feature-list	eval.txt	/*feature-list*
-feedkeys()	eval.txt	/*feedkeys()*
+feature-list	builtin.txt	/*feature-list*
+feedkeys()	builtin.txt	/*feedkeys()*
 fetch	pi_netrw.txt	/*fetch*
 file-browser-5.2	version5.txt	/*file-browser-5.2*
 file-formats	editing.txt	/*file-formats*
@@ -6454,11 +6461,11 @@
 file-searching	editing.txt	/*file-searching*
 file-type	filetype.txt	/*file-type*
 file-types	filetype.txt	/*file-types*
-file_readable()	eval.txt	/*file_readable()*
+file_readable()	builtin.txt	/*file_readable()*
 fileencoding-changed	version6.txt	/*fileencoding-changed*
 filename-backslash	cmdline.txt	/*filename-backslash*
 filename-modifiers	cmdline.txt	/*filename-modifiers*
-filereadable()	eval.txt	/*filereadable()*
+filereadable()	builtin.txt	/*filereadable()*
 filetype	filetype.txt	/*filetype*
 filetype-detect	filetype.txt	/*filetype-detect*
 filetype-ignore	filetype.txt	/*filetype-ignore*
@@ -6468,14 +6475,14 @@
 filetype.txt	filetype.txt	/*filetype.txt*
 filetypedetect-changed	version6.txt	/*filetypedetect-changed*
 filetypes	filetype.txt	/*filetypes*
-filewritable()	eval.txt	/*filewritable()*
+filewritable()	builtin.txt	/*filewritable()*
 filler-lines	windows.txt	/*filler-lines*
 filter	change.txt	/*filter*
-filter()	eval.txt	/*filter()*
+filter()	builtin.txt	/*filter()*
 find-manpage	usr_12.txt	/*find-manpage*
 find-replace	usr_10.txt	/*find-replace*
-finddir()	eval.txt	/*finddir()*
-findfile()	eval.txt	/*findfile()*
+finddir()	builtin.txt	/*finddir()*
+findfile()	builtin.txt	/*findfile()*
 fixed-5.1	version5.txt	/*fixed-5.1*
 fixed-5.2	version5.txt	/*fixed-5.2*
 fixed-5.3	version5.txt	/*fixed-5.3*
@@ -6492,24 +6499,24 @@
 fixed-7.2	version7.txt	/*fixed-7.2*
 fixed-7.3	version7.txt	/*fixed-7.3*
 fixed-7.4	version7.txt	/*fixed-7.4*
-flatten()	eval.txt	/*flatten()*
-flattennew()	eval.txt	/*flattennew()*
+flatten()	builtin.txt	/*flatten()*
+flattennew()	builtin.txt	/*flattennew()*
 flexwiki.vim	syntax.txt	/*flexwiki.vim*
 float-e	eval.txt	/*float-e*
 float-functions	usr_41.txt	/*float-functions*
 float-pi	eval.txt	/*float-pi*
-float2nr()	eval.txt	/*float2nr()*
+float2nr()	builtin.txt	/*float2nr()*
 floating-point-format	eval.txt	/*floating-point-format*
 floating-point-precision	eval.txt	/*floating-point-precision*
-floor()	eval.txt	/*floor()*
-fmod()	eval.txt	/*fmod()*
+floor()	builtin.txt	/*floor()*
+fmod()	builtin.txt	/*fmod()*
 fname-variable	eval.txt	/*fname-variable*
 fname_diff-variable	eval.txt	/*fname_diff-variable*
 fname_in-variable	eval.txt	/*fname_in-variable*
 fname_new-variable	eval.txt	/*fname_new-variable*
 fname_out-variable	eval.txt	/*fname_out-variable*
-fnameescape()	eval.txt	/*fnameescape()*
-fnamemodify()	eval.txt	/*fnamemodify()*
+fnameescape()	builtin.txt	/*fnameescape()*
+fnamemodify()	builtin.txt	/*fnamemodify()*
 fo-1	change.txt	/*fo-1*
 fo-2	change.txt	/*fo-2*
 fo-B	change.txt	/*fo-B*
@@ -6547,22 +6554,22 @@
 fold-options	fold.txt	/*fold-options*
 fold-syntax	fold.txt	/*fold-syntax*
 fold.txt	fold.txt	/*fold.txt*
-foldclosed()	eval.txt	/*foldclosed()*
-foldclosedend()	eval.txt	/*foldclosedend()*
+foldclosed()	builtin.txt	/*foldclosed()*
+foldclosedend()	builtin.txt	/*foldclosedend()*
 folddashes-variable	eval.txt	/*folddashes-variable*
 foldend-variable	eval.txt	/*foldend-variable*
 folding	fold.txt	/*folding*
 folding-functions	usr_41.txt	/*folding-functions*
-foldlevel()	eval.txt	/*foldlevel()*
+foldlevel()	builtin.txt	/*foldlevel()*
 foldlevel-variable	eval.txt	/*foldlevel-variable*
 folds	fold.txt	/*folds*
 foldstart-variable	eval.txt	/*foldstart-variable*
-foldtext()	eval.txt	/*foldtext()*
-foldtextresult()	eval.txt	/*foldtextresult()*
+foldtext()	builtin.txt	/*foldtext()*
+foldtextresult()	builtin.txt	/*foldtextresult()*
 font-sizes	gui_x11.txt	/*font-sizes*
 fontset	mbyte.txt	/*fontset*
 forced-motion	motion.txt	/*forced-motion*
-foreground()	eval.txt	/*foreground()*
+foreground()	builtin.txt	/*foreground()*
 fork	os_unix.txt	/*fork*
 form.vim	syntax.txt	/*form.vim*
 format-bullet-list	tips.txt	/*format-bullet-list*
@@ -6749,9 +6756,9 @@
 ftplugin-overrule	filetype.txt	/*ftplugin-overrule*
 ftplugin-special	usr_41.txt	/*ftplugin-special*
 ftplugins	usr_05.txt	/*ftplugins*
-fullcommand()	eval.txt	/*fullcommand()*
-funcref()	eval.txt	/*funcref()*
-function()	eval.txt	/*function()*
+fullcommand()	builtin.txt	/*fullcommand()*
+funcref()	builtin.txt	/*funcref()*
+function()	builtin.txt	/*function()*
 function-argument	eval.txt	/*function-argument*
 function-key	intro.txt	/*function-key*
 function-list	usr_41.txt	/*function-list*
@@ -7054,67 +7061,67 @@
 g`	motion.txt	/*g`*
 g`a	motion.txt	/*g`a*
 ga	various.txt	/*ga*
-garbagecollect()	eval.txt	/*garbagecollect()*
+garbagecollect()	builtin.txt	/*garbagecollect()*
 gd	pattern.txt	/*gd*
 gdb	debug.txt	/*gdb*
 gdb-version	terminal.txt	/*gdb-version*
 ge	motion.txt	/*ge*
-get()	eval.txt	/*get()*
+get()	builtin.txt	/*get()*
 get-ms-debuggers	debug.txt	/*get-ms-debuggers*
-getbufinfo()	eval.txt	/*getbufinfo()*
-getbufline()	eval.txt	/*getbufline()*
-getbufvar()	eval.txt	/*getbufvar()*
-getchangelist()	eval.txt	/*getchangelist()*
-getchar()	eval.txt	/*getchar()*
-getcharmod()	eval.txt	/*getcharmod()*
-getcharpos()	eval.txt	/*getcharpos()*
-getcharsearch()	eval.txt	/*getcharsearch()*
-getcharstr()	eval.txt	/*getcharstr()*
-getcmdline()	eval.txt	/*getcmdline()*
-getcmdpos()	eval.txt	/*getcmdpos()*
-getcmdtype()	eval.txt	/*getcmdtype()*
-getcmdwintype()	eval.txt	/*getcmdwintype()*
-getcompletion()	eval.txt	/*getcompletion()*
-getcurpos()	eval.txt	/*getcurpos()*
-getcursorcharpos()	eval.txt	/*getcursorcharpos()*
-getcwd()	eval.txt	/*getcwd()*
-getenv()	eval.txt	/*getenv()*
-getfontname()	eval.txt	/*getfontname()*
-getfperm()	eval.txt	/*getfperm()*
-getfsize()	eval.txt	/*getfsize()*
-getftime()	eval.txt	/*getftime()*
-getftype()	eval.txt	/*getftype()*
-getimstatus()	eval.txt	/*getimstatus()*
-getjumplist()	eval.txt	/*getjumplist()*
+getbufinfo()	builtin.txt	/*getbufinfo()*
+getbufline()	builtin.txt	/*getbufline()*
+getbufvar()	builtin.txt	/*getbufvar()*
+getchangelist()	builtin.txt	/*getchangelist()*
+getchar()	builtin.txt	/*getchar()*
+getcharmod()	builtin.txt	/*getcharmod()*
+getcharpos()	builtin.txt	/*getcharpos()*
+getcharsearch()	builtin.txt	/*getcharsearch()*
+getcharstr()	builtin.txt	/*getcharstr()*
+getcmdline()	builtin.txt	/*getcmdline()*
+getcmdpos()	builtin.txt	/*getcmdpos()*
+getcmdtype()	builtin.txt	/*getcmdtype()*
+getcmdwintype()	builtin.txt	/*getcmdwintype()*
+getcompletion()	builtin.txt	/*getcompletion()*
+getcurpos()	builtin.txt	/*getcurpos()*
+getcursorcharpos()	builtin.txt	/*getcursorcharpos()*
+getcwd()	builtin.txt	/*getcwd()*
+getenv()	builtin.txt	/*getenv()*
+getfontname()	builtin.txt	/*getfontname()*
+getfperm()	builtin.txt	/*getfperm()*
+getfsize()	builtin.txt	/*getfsize()*
+getftime()	builtin.txt	/*getftime()*
+getftype()	builtin.txt	/*getftype()*
+getimstatus()	builtin.txt	/*getimstatus()*
+getjumplist()	builtin.txt	/*getjumplist()*
 getlatestvimscripts-install	pi_getscript.txt	/*getlatestvimscripts-install*
-getline()	eval.txt	/*getline()*
-getloclist()	eval.txt	/*getloclist()*
-getmarklist()	eval.txt	/*getmarklist()*
-getmatches()	eval.txt	/*getmatches()*
-getmousepos()	eval.txt	/*getmousepos()*
-getpid()	eval.txt	/*getpid()*
-getpos()	eval.txt	/*getpos()*
-getqflist()	eval.txt	/*getqflist()*
+getline()	builtin.txt	/*getline()*
+getloclist()	builtin.txt	/*getloclist()*
+getmarklist()	builtin.txt	/*getmarklist()*
+getmatches()	builtin.txt	/*getmatches()*
+getmousepos()	builtin.txt	/*getmousepos()*
+getpid()	builtin.txt	/*getpid()*
+getpos()	builtin.txt	/*getpos()*
+getqflist()	builtin.txt	/*getqflist()*
 getqflist-examples	quickfix.txt	/*getqflist-examples*
-getreg()	eval.txt	/*getreg()*
-getreginfo()	eval.txt	/*getreginfo()*
-getregtype()	eval.txt	/*getregtype()*
+getreg()	builtin.txt	/*getreg()*
+getreginfo()	builtin.txt	/*getreginfo()*
+getregtype()	builtin.txt	/*getregtype()*
 getscript	pi_getscript.txt	/*getscript*
 getscript-autoinstall	pi_getscript.txt	/*getscript-autoinstall*
 getscript-data	pi_getscript.txt	/*getscript-data*
 getscript-history	pi_getscript.txt	/*getscript-history*
 getscript-plugins	pi_getscript.txt	/*getscript-plugins*
 getscript-start	pi_getscript.txt	/*getscript-start*
-gettabinfo()	eval.txt	/*gettabinfo()*
-gettabvar()	eval.txt	/*gettabvar()*
-gettabwinvar()	eval.txt	/*gettabwinvar()*
-gettagstack()	eval.txt	/*gettagstack()*
-gettext()	eval.txt	/*gettext()*
-getwininfo()	eval.txt	/*getwininfo()*
-getwinpos()	eval.txt	/*getwinpos()*
-getwinposx()	eval.txt	/*getwinposx()*
-getwinposy()	eval.txt	/*getwinposy()*
-getwinvar()	eval.txt	/*getwinvar()*
+gettabinfo()	builtin.txt	/*gettabinfo()*
+gettabvar()	builtin.txt	/*gettabvar()*
+gettabwinvar()	builtin.txt	/*gettabwinvar()*
+gettagstack()	builtin.txt	/*gettagstack()*
+gettext()	builtin.txt	/*gettext()*
+getwininfo()	builtin.txt	/*getwininfo()*
+getwinpos()	builtin.txt	/*getwinpos()*
+getwinposx()	builtin.txt	/*getwinposx()*
+getwinposy()	builtin.txt	/*getwinposy()*
+getwinvar()	builtin.txt	/*getwinvar()*
 gex	starting.txt	/*gex*
 gf	editing.txt	/*gf*
 gg	motion.txt	/*gg*
@@ -7122,13 +7129,13 @@
 gi	insert.txt	/*gi*
 gj	motion.txt	/*gj*
 gk	motion.txt	/*gk*
-glob()	eval.txt	/*glob()*
-glob2regpat()	eval.txt	/*glob2regpat()*
+glob()	builtin.txt	/*glob()*
+glob2regpat()	builtin.txt	/*glob2regpat()*
 global-ime	mbyte.txt	/*global-ime*
 global-local	options.txt	/*global-local*
 global-variable	eval.txt	/*global-variable*
 global_markfilelist	pi_netrw.txt	/*global_markfilelist*
-globpath()	eval.txt	/*globpath()*
+globpath()	builtin.txt	/*globpath()*
 glvs	pi_getscript.txt	/*glvs*
 glvs-alg	pi_getscript.txt	/*glvs-alg*
 glvs-algorithm	pi_getscript.txt	/*glvs-algorithm*
@@ -7228,7 +7235,7 @@
 gui-x11-start	gui_x11.txt	/*gui-x11-start*
 gui-x11-various	gui_x11.txt	/*gui-x11-various*
 gui.txt	gui.txt	/*gui.txt*
-gui_running	eval.txt	/*gui_running*
+gui_running	builtin.txt	/*gui_running*
 gui_w32.txt	gui_w32.txt	/*gui_w32.txt*
 gui_x11.txt	gui_x11.txt	/*gui_x11.txt*
 guifontwide_gtk	gui.txt	/*guifontwide_gtk*
@@ -7266,14 +7273,14 @@
 haiku-vimdir	os_haiku.txt	/*haiku-vimdir*
 hangul	hangulin.txt	/*hangul*
 hangulin.txt	hangulin.txt	/*hangulin.txt*
-has()	eval.txt	/*has()*
-has-patch	eval.txt	/*has-patch*
+has()	builtin.txt	/*has()*
+has-patch	builtin.txt	/*has-patch*
 has-python	if_pyth.txt	/*has-python*
 has-pythonx	if_pyth.txt	/*has-pythonx*
-has_key()	eval.txt	/*has_key()*
+has_key()	builtin.txt	/*has_key()*
 haskell.vim	syntax.txt	/*haskell.vim*
-haslocaldir()	eval.txt	/*haslocaldir()*
-hasmapto()	eval.txt	/*hasmapto()*
+haslocaldir()	builtin.txt	/*haslocaldir()*
+hasmapto()	builtin.txt	/*hasmapto()*
 hebrew	hebrew.txt	/*hebrew*
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	helphelp.txt	/*help*
@@ -7312,14 +7319,14 @@
 highlight-start	syntax.txt	/*highlight-start*
 highlight-stop	syntax.txt	/*highlight-stop*
 highlight-term	syntax.txt	/*highlight-term*
-highlightID()	eval.txt	/*highlightID()*
-highlight_exists()	eval.txt	/*highlight_exists()*
+highlightID()	builtin.txt	/*highlightID()*
+highlight_exists()	builtin.txt	/*highlight_exists()*
 highlighting-functions	usr_41.txt	/*highlighting-functions*
-hist-names	eval.txt	/*hist-names*
-histadd()	eval.txt	/*histadd()*
-histdel()	eval.txt	/*histdel()*
-histget()	eval.txt	/*histget()*
-histnr()	eval.txt	/*histnr()*
+hist-names	builtin.txt	/*hist-names*
+histadd()	builtin.txt	/*histadd()*
+histdel()	builtin.txt	/*histdel()*
+histget()	builtin.txt	/*histget()*
+histnr()	builtin.txt	/*histnr()*
 history	cmdline.txt	/*history*
 history-functions	usr_41.txt	/*history-functions*
 hit-enter	message.txt	/*hit-enter*
@@ -7391,15 +7398,15 @@
 hl-WildMenu	syntax.txt	/*hl-WildMenu*
 hl-debugBreakpoint	terminal.txt	/*hl-debugBreakpoint*
 hl-debugPC	terminal.txt	/*hl-debugPC*
-hlID()	eval.txt	/*hlID()*
-hlexists()	eval.txt	/*hlexists()*
-hlget()	eval.txt	/*hlget()*
+hlID()	builtin.txt	/*hlID()*
+hlexists()	builtin.txt	/*hlexists()*
+hlget()	builtin.txt	/*hlget()*
 hlsearch-variable	eval.txt	/*hlsearch-variable*
-hlset()	eval.txt	/*hlset()*
+hlset()	builtin.txt	/*hlset()*
 holy-grail	index.txt	/*holy-grail*
 home	intro.txt	/*home*
 home-replace	editing.txt	/*home-replace*
-hostname()	eval.txt	/*hostname()*
+hostname()	builtin.txt	/*hostname()*
 how-do-i	howto.txt	/*how-do-i*
 how-to	howto.txt	/*how-to*
 howdoi	howto.txt	/*howdoi*
@@ -7543,7 +7550,7 @@
 icon-changed	version4.txt	/*icon-changed*
 iconise	starting.txt	/*iconise*
 iconize	starting.txt	/*iconize*
-iconv()	eval.txt	/*iconv()*
+iconv()	builtin.txt	/*iconv()*
 iconv-dynamic	mbyte.txt	/*iconv-dynamic*
 ident-search	tips.txt	/*ident-search*
 idl-syntax	syntax.txt	/*idl-syntax*
@@ -7582,24 +7589,24 @@
 incompatible-6	version6.txt	/*incompatible-6*
 incompatible-7	version7.txt	/*incompatible-7*
 incompatible-8	version8.txt	/*incompatible-8*
-indent()	eval.txt	/*indent()*
+indent()	builtin.txt	/*indent()*
 indent-expression	indent.txt	/*indent-expression*
 indent.txt	indent.txt	/*indent.txt*
 indentkeys-format	indent.txt	/*indentkeys-format*
 index	index.txt	/*index*
-index()	eval.txt	/*index()*
+index()	builtin.txt	/*index()*
 index.txt	index.txt	/*index.txt*
 info-message	starting.txt	/*info-message*
 inform.vim	syntax.txt	/*inform.vim*
 informix	ft_sql.txt	/*informix*
 initialization	starting.txt	/*initialization*
 inline-function	vim9.txt	/*inline-function*
-input()	eval.txt	/*input()*
-inputdialog()	eval.txt	/*inputdialog()*
-inputlist()	eval.txt	/*inputlist()*
-inputrestore()	eval.txt	/*inputrestore()*
-inputsave()	eval.txt	/*inputsave()*
-inputsecret()	eval.txt	/*inputsecret()*
+input()	builtin.txt	/*input()*
+inputdialog()	builtin.txt	/*inputdialog()*
+inputlist()	builtin.txt	/*inputlist()*
+inputrestore()	builtin.txt	/*inputrestore()*
+inputsave()	builtin.txt	/*inputsave()*
+inputsecret()	builtin.txt	/*inputsecret()*
 ins-completion	insert.txt	/*ins-completion*
 ins-completion-menu	insert.txt	/*ins-completion-menu*
 ins-expandtab	insert.txt	/*ins-expandtab*
@@ -7610,7 +7617,7 @@
 ins-special-special	insert.txt	/*ins-special-special*
 ins-textwidth	insert.txt	/*ins-textwidth*
 insert	insert.txt	/*insert*
-insert()	eval.txt	/*insert()*
+insert()	builtin.txt	/*insert()*
 insert-index	index.txt	/*insert-index*
 insert.txt	insert.txt	/*insert.txt*
 insert_expand	insert.txt	/*insert_expand*
@@ -7628,21 +7635,21 @@
 internal-variables	eval.txt	/*internal-variables*
 internal-wordlist	spell.txt	/*internal-wordlist*
 internet	intro.txt	/*internet*
-interrupt()	eval.txt	/*interrupt()*
+interrupt()	builtin.txt	/*interrupt()*
 intro	intro.txt	/*intro*
 intro.txt	intro.txt	/*intro.txt*
 inverse	syntax.txt	/*inverse*
-invert()	eval.txt	/*invert()*
+invert()	builtin.txt	/*invert()*
 ip	motion.txt	/*ip*
 iquote	motion.txt	/*iquote*
 is	motion.txt	/*is*
-isdirectory()	eval.txt	/*isdirectory()*
-isinf()	eval.txt	/*isinf()*
-islocked()	eval.txt	/*islocked()*
-isnan()	eval.txt	/*isnan()*
+isdirectory()	builtin.txt	/*isdirectory()*
+isinf()	builtin.txt	/*isinf()*
+islocked()	builtin.txt	/*islocked()*
+isnan()	builtin.txt	/*isnan()*
 it	motion.txt	/*it*
 italic	syntax.txt	/*italic*
-items()	eval.txt	/*items()*
+items()	builtin.txt	/*items()*
 iw	motion.txt	/*iw*
 i{	motion.txt	/*i{*
 i}	motion.txt	/*i}*
@@ -7680,13 +7687,13 @@
 job_start()	channel.txt	/*job_start()*
 job_status()	channel.txt	/*job_status()*
 job_stop()	channel.txt	/*job_stop()*
-join()	eval.txt	/*join()*
-js_decode()	eval.txt	/*js_decode()*
-js_encode()	eval.txt	/*js_encode()*
+join()	builtin.txt	/*join()*
+js_decode()	builtin.txt	/*js_decode()*
+js_encode()	builtin.txt	/*js_encode()*
 jsbterm-mouse	options.txt	/*jsbterm-mouse*
 json.vim	syntax.txt	/*json.vim*
-json_decode()	eval.txt	/*json_decode()*
-json_encode()	eval.txt	/*json_encode()*
+json_decode()	builtin.txt	/*json_decode()*
+json_encode()	builtin.txt	/*json_encode()*
 jtags	tagsrch.txt	/*jtags*
 jump-motions	motion.txt	/*jump-motions*
 jumplist	motion.txt	/*jumplist*
@@ -7716,7 +7723,7 @@
 keypad-page-up	intro.txt	/*keypad-page-up*
 keypad-plus	intro.txt	/*keypad-plus*
 keypad-point	intro.txt	/*keypad-point*
-keys()	eval.txt	/*keys()*
+keys()	builtin.txt	/*keys()*
 known-bugs	todo.txt	/*known-bugs*
 l	motion.txt	/*l*
 l:	eval.txt	/*l:*
@@ -7728,7 +7735,7 @@
 language-mapping	map.txt	/*language-mapping*
 last-pattern	pattern.txt	/*last-pattern*
 last-position-jump	usr_05.txt	/*last-position-jump*
-last_buffer_nr()	eval.txt	/*last_buffer_nr()*
+last_buffer_nr()	builtin.txt	/*last_buffer_nr()*
 latex-syntax	syntax.txt	/*latex-syntax*
 lc_time-variable	eval.txt	/*lc_time-variable*
 lcs-conceal	options.txt	/*lcs-conceal*
@@ -7742,27 +7749,27 @@
 lcs-tab	options.txt	/*lcs-tab*
 lcs-trail	options.txt	/*lcs-trail*
 left-right-motions	motion.txt	/*left-right-motions*
-len()	eval.txt	/*len()*
+len()	builtin.txt	/*len()*
 less	various.txt	/*less*
 letter	print.txt	/*letter*
 lex.vim	syntax.txt	/*lex.vim*
 lhaskell.vim	syntax.txt	/*lhaskell.vim*
-libcall()	eval.txt	/*libcall()*
-libcallnr()	eval.txt	/*libcallnr()*
+libcall()	builtin.txt	/*libcall()*
+libcallnr()	builtin.txt	/*libcallnr()*
 license	uganda.txt	/*license*
 lid	quickfix.txt	/*lid*
 lifelines.vim	syntax.txt	/*lifelines.vim*
 limits	vi_diff.txt	/*limits*
-line()	eval.txt	/*line()*
+line()	builtin.txt	/*line()*
 line-continuation	repeat.txt	/*line-continuation*
 line-continuation-comment	repeat.txt	/*line-continuation-comment*
-line2byte()	eval.txt	/*line2byte()*
+line2byte()	builtin.txt	/*line2byte()*
 linefeed	intro.txt	/*linefeed*
 linewise	motion.txt	/*linewise*
 linewise-register	change.txt	/*linewise-register*
 linewise-visual	visual.txt	/*linewise-visual*
 lisp.vim	syntax.txt	/*lisp.vim*
-lispindent()	eval.txt	/*lispindent()*
+lispindent()	builtin.txt	/*lispindent()*
 list	eval.txt	/*list*
 list-concatenation	eval.txt	/*list-concatenation*
 list-functions	usr_41.txt	/*list-functions*
@@ -7770,11 +7777,11 @@
 list-index	eval.txt	/*list-index*
 list-modification	eval.txt	/*list-modification*
 list-repeat	windows.txt	/*list-repeat*
-list2blob()	eval.txt	/*list2blob()*
-list2str()	eval.txt	/*list2str()*
-listener_add()	eval.txt	/*listener_add()*
-listener_flush()	eval.txt	/*listener_flush()*
-listener_remove()	eval.txt	/*listener_remove()*
+list2blob()	builtin.txt	/*list2blob()*
+list2str()	builtin.txt	/*list2str()*
+listener_add()	builtin.txt	/*listener_add()*
+listener_flush()	builtin.txt	/*listener_flush()*
+listener_remove()	builtin.txt	/*listener_remove()*
 lite.vim	syntax.txt	/*lite.vim*
 literal-Dict	eval.txt	/*literal-Dict*
 literal-string	eval.txt	/*literal-string*
@@ -7789,12 +7796,12 @@
 local_markfilelist	pi_netrw.txt	/*local_markfilelist*
 locale	mbyte.txt	/*locale*
 locale-name	mbyte.txt	/*locale-name*
-localtime()	eval.txt	/*localtime()*
+localtime()	builtin.txt	/*localtime()*
 location-list	quickfix.txt	/*location-list*
 location-list-file-window	quickfix.txt	/*location-list-file-window*
 location-list-window	quickfix.txt	/*location-list-window*
-log()	eval.txt	/*log()*
-log10()	eval.txt	/*log10()*
+log()	builtin.txt	/*log()*
+log10()	builtin.txt	/*log10()*
 logiPat	pi_logipat.txt	/*logiPat*
 logiPat-arg	pi_logipat.txt	/*logiPat-arg*
 logiPat-caveat	pi_logipat.txt	/*logiPat-caveat*
@@ -7826,7 +7833,7 @@
 lua-vim-variables	if_lua.txt	/*lua-vim-variables*
 lua-window	if_lua.txt	/*lua-window*
 lua.vim	syntax.txt	/*lua.vim*
-luaeval()	eval.txt	/*luaeval()*
+luaeval()	builtin.txt	/*luaeval()*
 m	motion.txt	/*m*
 m'	motion.txt	/*m'*
 m<	motion.txt	/*m<*
@@ -7853,7 +7860,7 @@
 man.vim	filetype.txt	/*man.vim*
 manpager.vim	filetype.txt	/*manpager.vim*
 manual-copyright	usr_01.txt	/*manual-copyright*
-map()	eval.txt	/*map()*
+map()	builtin.txt	/*map()*
 map-<SID>	map.txt	/*map-<SID>*
 map-CTRL-C	map.txt	/*map-CTRL-C*
 map-ambiguous	map.txt	/*map-ambiguous*
@@ -7885,8 +7892,8 @@
 map_return	map.txt	/*map_return*
 map_space_in_lhs	map.txt	/*map_space_in_lhs*
 map_space_in_rhs	map.txt	/*map_space_in_rhs*
-maparg()	eval.txt	/*maparg()*
-mapcheck()	eval.txt	/*mapcheck()*
+maparg()	builtin.txt	/*maparg()*
+mapcheck()	builtin.txt	/*mapcheck()*
 maple.vim	syntax.txt	/*maple.vim*
 mapleader	map.txt	/*mapleader*
 maplocalleader	map.txt	/*maplocalleader*
@@ -7901,33 +7908,33 @@
 mapmode-t	map.txt	/*mapmode-t*
 mapmode-v	map.txt	/*mapmode-v*
 mapmode-x	map.txt	/*mapmode-x*
-mapnew()	eval.txt	/*mapnew()*
+mapnew()	builtin.txt	/*mapnew()*
 mapping	map.txt	/*mapping*
 mapping-functions	usr_41.txt	/*mapping-functions*
-mapset()	eval.txt	/*mapset()*
+mapset()	builtin.txt	/*mapset()*
 mark	motion.txt	/*mark*
 mark-functions	usr_41.txt	/*mark-functions*
 mark-motions	motion.txt	/*mark-motions*
 markfilelist	pi_netrw.txt	/*markfilelist*
 masm.vim	syntax.txt	/*masm.vim*
-match()	eval.txt	/*match()*
+match()	builtin.txt	/*match()*
 match-highlight	pattern.txt	/*match-highlight*
 match-parens	tips.txt	/*match-parens*
-matchadd()	eval.txt	/*matchadd()*
-matchaddpos()	eval.txt	/*matchaddpos()*
-matcharg()	eval.txt	/*matcharg()*
-matchdelete()	eval.txt	/*matchdelete()*
-matchend()	eval.txt	/*matchend()*
-matchfuzzy()	eval.txt	/*matchfuzzy()*
-matchfuzzypos()	eval.txt	/*matchfuzzypos()*
+matchadd()	builtin.txt	/*matchadd()*
+matchaddpos()	builtin.txt	/*matchaddpos()*
+matcharg()	builtin.txt	/*matcharg()*
+matchdelete()	builtin.txt	/*matchdelete()*
+matchend()	builtin.txt	/*matchend()*
+matchfuzzy()	builtin.txt	/*matchfuzzy()*
+matchfuzzypos()	builtin.txt	/*matchfuzzypos()*
 matchit-install	usr_05.txt	/*matchit-install*
-matchlist()	eval.txt	/*matchlist()*
+matchlist()	builtin.txt	/*matchlist()*
 matchparen	pi_paren.txt	/*matchparen*
-matchstr()	eval.txt	/*matchstr()*
-matchstrpos()	eval.txt	/*matchstrpos()*
+matchstr()	builtin.txt	/*matchstr()*
+matchstrpos()	builtin.txt	/*matchstrpos()*
 matlab-indent	indent.txt	/*matlab-indent*
 matlab-indenting	indent.txt	/*matlab-indenting*
-max()	eval.txt	/*max()*
+max()	builtin.txt	/*max()*
 mbyte-IME	mbyte.txt	/*mbyte-IME*
 mbyte-XIM	mbyte.txt	/*mbyte-XIM*
 mbyte-combining	mbyte.txt	/*mbyte-combining*
@@ -7952,7 +7959,7 @@
 menu-text	gui.txt	/*menu-text*
 menu-tips	gui.txt	/*menu-tips*
 menu.vim	gui.txt	/*menu.vim*
-menu_info()	eval.txt	/*menu_info()*
+menu_info()	builtin.txt	/*menu_info()*
 menus	gui.txt	/*menus*
 merge	diff.txt	/*merge*
 message-history	message.txt	/*message-history*
@@ -7960,12 +7967,12 @@
 messages	message.txt	/*messages*
 meta	intro.txt	/*meta*
 method	eval.txt	/*method*
-min()	eval.txt	/*min()*
+min()	builtin.txt	/*min()*
 missing-options	vi_diff.txt	/*missing-options*
-mkdir()	eval.txt	/*mkdir()*
+mkdir()	builtin.txt	/*mkdir()*
 mlang.txt	mlang.txt	/*mlang.txt*
 mma.vim	syntax.txt	/*mma.vim*
-mode()	eval.txt	/*mode()*
+mode()	builtin.txt	/*mode()*
 mode-Ex	intro.txt	/*mode-Ex*
 mode-cmdline	cmdline.txt	/*mode-cmdline*
 mode-ins-repl	insert.txt	/*mode-ins-repl*
@@ -8012,7 +8019,7 @@
 mysyntaxfile	syntax.txt	/*mysyntaxfile*
 mysyntaxfile-add	syntax.txt	/*mysyntaxfile-add*
 mysyntaxfile-replace	syntax.txt	/*mysyntaxfile-replace*
-mzeval()	eval.txt	/*mzeval()*
+mzeval()	builtin.txt	/*mzeval()*
 mzscheme	if_mzsch.txt	/*mzscheme*
 mzscheme-buffer	if_mzsch.txt	/*mzscheme-buffer*
 mzscheme-commands	if_mzsch.txt	/*mzscheme-commands*
@@ -8376,7 +8383,7 @@
 new-vimscript-8.2	version8.txt	/*new-vimscript-8.2*
 new-virtedit	version6.txt	/*new-virtedit*
 news	intro.txt	/*news*
-nextnonblank()	eval.txt	/*nextnonblank()*
+nextnonblank()	builtin.txt	/*nextnonblank()*
 no-eval-feature	eval.txt	/*no-eval-feature*
 no-type-checking	eval.txt	/*no-type-checking*
 no_buffers_menu	gui.txt	/*no_buffers_menu*
@@ -8392,7 +8399,7 @@
 not-edited	editing.txt	/*not-edited*
 notation	intro.txt	/*notation*
 notepad	gui_w32.txt	/*notepad*
-nr2char()	eval.txt	/*nr2char()*
+nr2char()	builtin.txt	/*nr2char()*
 nroff.vim	syntax.txt	/*nroff.vim*
 null	vim9.txt	/*null*
 null-variable	eval.txt	/*null-variable*
@@ -8445,7 +8452,7 @@
 options-in-terminal	terminal.txt	/*options-in-terminal*
 options.txt	options.txt	/*options.txt*
 optwin	options.txt	/*optwin*
-or()	eval.txt	/*or()*
+or()	builtin.txt	/*or()*
 oracle	ft_sql.txt	/*oracle*
 os2	os_os2.txt	/*os2*
 os390	os_390.txt	/*os390*
@@ -8484,13 +8491,13 @@
 pager	message.txt	/*pager*
 papp.vim	syntax.txt	/*papp.vim*
 paragraph	motion.txt	/*paragraph*
-partial	eval.txt	/*partial*
+partial	builtin.txt	/*partial*
 pascal.vim	syntax.txt	/*pascal.vim*
 patches-8	version8.txt	/*patches-8*
 patches-8.1	version8.txt	/*patches-8.1*
 patches-8.2	version8.txt	/*patches-8.2*
 patches-after-8.2	version8.txt	/*patches-after-8.2*
-pathshorten()	eval.txt	/*pathshorten()*
+pathshorten()	builtin.txt	/*pathshorten()*
 pattern	pattern.txt	/*pattern*
 pattern-atoms	pattern.txt	/*pattern-atoms*
 pattern-delimiter	change.txt	/*pattern-delimiter*
@@ -8529,7 +8536,7 @@
 perl-patterns	pattern.txt	/*perl-patterns*
 perl-using	if_perl.txt	/*perl-using*
 perl.vim	syntax.txt	/*perl.vim*
-perleval()	eval.txt	/*perleval()*
+perleval()	builtin.txt	/*perleval()*
 persistent-undo	undo.txt	/*persistent-undo*
 pexpr-option	print.txt	/*pexpr-option*
 pfn-option	print.txt	/*pfn-option*
@@ -8626,33 +8633,33 @@
 postscript-print-trouble	print.txt	/*postscript-print-trouble*
 postscript-print-util	print.txt	/*postscript-print-util*
 postscript-printing	print.txt	/*postscript-printing*
-pow()	eval.txt	/*pow()*
+pow()	builtin.txt	/*pow()*
 ppwiz.vim	syntax.txt	/*ppwiz.vim*
 press-enter	message.txt	/*press-enter*
 press-return	message.txt	/*press-return*
 prevcount-variable	eval.txt	/*prevcount-variable*
 preview-popup	windows.txt	/*preview-popup*
 preview-window	windows.txt	/*preview-window*
-prevnonblank()	eval.txt	/*prevnonblank()*
+prevnonblank()	builtin.txt	/*prevnonblank()*
 print-intro	print.txt	/*print-intro*
 print-options	print.txt	/*print-options*
 print.txt	print.txt	/*print.txt*
-printf()	eval.txt	/*printf()*
-printf-%	eval.txt	/*printf-%*
-printf-B	eval.txt	/*printf-B*
-printf-E	eval.txt	/*printf-E*
-printf-G	eval.txt	/*printf-G*
-printf-S	eval.txt	/*printf-S*
-printf-X	eval.txt	/*printf-X*
-printf-b	eval.txt	/*printf-b*
-printf-c	eval.txt	/*printf-c*
-printf-d	eval.txt	/*printf-d*
-printf-e	eval.txt	/*printf-e*
-printf-f	eval.txt	/*printf-f*
-printf-g	eval.txt	/*printf-g*
-printf-o	eval.txt	/*printf-o*
-printf-s	eval.txt	/*printf-s*
-printf-x	eval.txt	/*printf-x*
+printf()	builtin.txt	/*printf()*
+printf-%	builtin.txt	/*printf-%*
+printf-B	builtin.txt	/*printf-B*
+printf-E	builtin.txt	/*printf-E*
+printf-G	builtin.txt	/*printf-G*
+printf-S	builtin.txt	/*printf-S*
+printf-X	builtin.txt	/*printf-X*
+printf-b	builtin.txt	/*printf-b*
+printf-c	builtin.txt	/*printf-c*
+printf-d	builtin.txt	/*printf-d*
+printf-e	builtin.txt	/*printf-e*
+printf-f	builtin.txt	/*printf-f*
+printf-g	builtin.txt	/*printf-g*
+printf-o	builtin.txt	/*printf-o*
+printf-s	builtin.txt	/*printf-s*
+printf-x	builtin.txt	/*printf-x*
 printing	print.txt	/*printing*
 printing-formfeed	print.txt	/*printing-formfeed*
 profile	repeat.txt	/*profile*
@@ -8662,10 +8669,10 @@
 progpath-variable	eval.txt	/*progpath-variable*
 progress.vim	syntax.txt	/*progress.vim*
 prompt-buffer	channel.txt	/*prompt-buffer*
-prompt_getprompt()	eval.txt	/*prompt_getprompt()*
-prompt_setcallback()	eval.txt	/*prompt_setcallback()*
-prompt_setinterrupt()	eval.txt	/*prompt_setinterrupt()*
-prompt_setprompt()	eval.txt	/*prompt_setprompt()*
+prompt_getprompt()	builtin.txt	/*prompt_getprompt()*
+prompt_setcallback()	builtin.txt	/*prompt_setcallback()*
+prompt_setinterrupt()	builtin.txt	/*prompt_setinterrupt()*
+prompt_setprompt()	builtin.txt	/*prompt_setprompt()*
 promptbuffer-functions	usr_41.txt	/*promptbuffer-functions*
 pronounce	intro.txt	/*pronounce*
 prop_add()	textprop.txt	/*prop_add()*
@@ -8687,12 +8694,12 @@
 psql	ft_sql.txt	/*psql*
 ptcap.vim	syntax.txt	/*ptcap.vim*
 pterm-mouse	options.txt	/*pterm-mouse*
-pum_getpos()	eval.txt	/*pum_getpos()*
-pumvisible()	eval.txt	/*pumvisible()*
+pum_getpos()	builtin.txt	/*pum_getpos()*
+pumvisible()	builtin.txt	/*pumvisible()*
 put	change.txt	/*put*
 put-Visual-mode	change.txt	/*put-Visual-mode*
-py3eval()	eval.txt	/*py3eval()*
-pyeval()	eval.txt	/*pyeval()*
+py3eval()	builtin.txt	/*py3eval()*
+pyeval()	builtin.txt	/*pyeval()*
 python	if_pyth.txt	/*python*
 python-.locked	if_pyth.txt	/*python-.locked*
 python-2-and-3	if_pyth.txt	/*python-2-and-3*
@@ -8741,7 +8748,7 @@
 python_x-special-comments	if_pyth.txt	/*python_x-special-comments*
 pythonx	if_pyth.txt	/*pythonx*
 pythonx-directory	if_pyth.txt	/*pythonx-directory*
-pyxeval()	eval.txt	/*pyxeval()*
+pyxeval()	builtin.txt	/*pyxeval()*
 q	repeat.txt	/*q*
 q/	cmdline.txt	/*q\/*
 q:	cmdline.txt	/*q:*
@@ -8813,19 +8820,19 @@
 r	change.txt	/*r*
 r.vim	syntax.txt	/*r.vim*
 raku-unicode	ft_raku.txt	/*raku-unicode*
-rand()	eval.txt	/*rand()*
-random	eval.txt	/*random*
-range()	eval.txt	/*range()*
+rand()	builtin.txt	/*rand()*
+random	builtin.txt	/*random*
+range()	builtin.txt	/*range()*
 raw-terminal-mode	term.txt	/*raw-terminal-mode*
 rcp	pi_netrw.txt	/*rcp*
 read-in-close-cb	channel.txt	/*read-in-close-cb*
 read-messages	insert.txt	/*read-messages*
 read-only-share	editing.txt	/*read-only-share*
 read-stdin	version5.txt	/*read-stdin*
-readblob()	eval.txt	/*readblob()*
-readdir()	eval.txt	/*readdir()*
-readdirex()	eval.txt	/*readdirex()*
-readfile()	eval.txt	/*readfile()*
+readblob()	builtin.txt	/*readblob()*
+readdir()	builtin.txt	/*readdir()*
+readdirex()	builtin.txt	/*readdirex()*
+readfile()	builtin.txt	/*readfile()*
 readline.vim	syntax.txt	/*readline.vim*
 recording	repeat.txt	/*recording*
 recover.txt	recover.txt	/*recover.txt*
@@ -8833,12 +8840,12 @@
 recursive_mapping	map.txt	/*recursive_mapping*
 redo	undo.txt	/*redo*
 redo-register	undo.txt	/*redo-register*
-reduce()	eval.txt	/*reduce()*
+reduce()	builtin.txt	/*reduce()*
 ref	intro.txt	/*ref*
 reference	intro.txt	/*reference*
 reference_toc	help.txt	/*reference_toc*
-reg_executing()	eval.txt	/*reg_executing()*
-reg_recording()	eval.txt	/*reg_recording()*
+reg_executing()	builtin.txt	/*reg_executing()*
+reg_recording()	builtin.txt	/*reg_recording()*
 regexp	pattern.txt	/*regexp*
 regexp-changes-5.4	version5.txt	/*regexp-changes-5.4*
 register	sponsor.txt	/*register*
@@ -8848,34 +8855,34 @@
 rego.vim	syntax.txt	/*rego.vim*
 regular-expression	pattern.txt	/*regular-expression*
 reload	editing.txt	/*reload*
-reltime()	eval.txt	/*reltime()*
-reltimefloat()	eval.txt	/*reltimefloat()*
-reltimestr()	eval.txt	/*reltimestr()*
+reltime()	builtin.txt	/*reltime()*
+reltimefloat()	builtin.txt	/*reltimefloat()*
+reltimestr()	builtin.txt	/*reltimestr()*
 remote.txt	remote.txt	/*remote.txt*
-remote_expr()	eval.txt	/*remote_expr()*
-remote_foreground()	eval.txt	/*remote_foreground()*
-remote_peek()	eval.txt	/*remote_peek()*
-remote_read()	eval.txt	/*remote_read()*
-remote_send()	eval.txt	/*remote_send()*
-remote_startserver()	eval.txt	/*remote_startserver()*
-remove()	eval.txt	/*remove()*
+remote_expr()	builtin.txt	/*remote_expr()*
+remote_foreground()	builtin.txt	/*remote_foreground()*
+remote_peek()	builtin.txt	/*remote_peek()*
+remote_read()	builtin.txt	/*remote_read()*
+remote_send()	builtin.txt	/*remote_send()*
+remote_startserver()	builtin.txt	/*remote_startserver()*
+remove()	builtin.txt	/*remove()*
 remove-filetype	filetype.txt	/*remove-filetype*
 remove-option-flags	options.txt	/*remove-option-flags*
-rename()	eval.txt	/*rename()*
+rename()	builtin.txt	/*rename()*
 rename-files	tips.txt	/*rename-files*
-repeat()	eval.txt	/*repeat()*
+repeat()	builtin.txt	/*repeat()*
 repeat.txt	repeat.txt	/*repeat.txt*
 repeating	repeat.txt	/*repeating*
 replacing	change.txt	/*replacing*
 replacing-ex	insert.txt	/*replacing-ex*
 reselect-Visual	visual.txt	/*reselect-Visual*
-resolve()	eval.txt	/*resolve()*
+resolve()	builtin.txt	/*resolve()*
 restore-cursor	usr_05.txt	/*restore-cursor*
 restore-position	tips.txt	/*restore-position*
 restricted-mode	starting.txt	/*restricted-mode*
 retab-example	change.txt	/*retab-example*
 rethrow	eval.txt	/*rethrow*
-reverse()	eval.txt	/*reverse()*
+reverse()	builtin.txt	/*reverse()*
 rexx.vim	syntax.txt	/*rexx.vim*
 rgb.txt	gui_w32.txt	/*rgb.txt*
 rgview	starting.txt	/*rgview*
@@ -8886,7 +8893,7 @@
 riscos	os_risc.txt	/*riscos*
 rmd.vim	syntax.txt	/*rmd.vim*
 rot13	change.txt	/*rot13*
-round()	eval.txt	/*round()*
+round()	builtin.txt	/*round()*
 rrst.vim	syntax.txt	/*rrst.vim*
 rst.vim	syntax.txt	/*rst.vim*
 rsync	pi_netrw.txt	/*rsync*
@@ -8911,7 +8918,7 @@
 ruby_operators	syntax.txt	/*ruby_operators*
 ruby_space_errors	syntax.txt	/*ruby_space_errors*
 ruby_spellcheck_strings	syntax.txt	/*ruby_spellcheck_strings*
-rubyeval()	eval.txt	/*rubyeval()*
+rubyeval()	builtin.txt	/*rubyeval()*
 russian	russian.txt	/*russian*
 russian-intro	russian.txt	/*russian-intro*
 russian-issues	russian.txt	/*russian-issues*
@@ -8959,13 +8966,13 @@
 scheme.vim	syntax.txt	/*scheme.vim*
 scp	pi_netrw.txt	/*scp*
 scratch-buffer	windows.txt	/*scratch-buffer*
-screenattr()	eval.txt	/*screenattr()*
-screenchar()	eval.txt	/*screenchar()*
-screenchars()	eval.txt	/*screenchars()*
-screencol()	eval.txt	/*screencol()*
-screenpos()	eval.txt	/*screenpos()*
-screenrow()	eval.txt	/*screenrow()*
-screenstring()	eval.txt	/*screenstring()*
+screenattr()	builtin.txt	/*screenattr()*
+screenchar()	builtin.txt	/*screenchar()*
+screenchars()	builtin.txt	/*screenchars()*
+screencol()	builtin.txt	/*screencol()*
+screenpos()	builtin.txt	/*screenpos()*
+screenrow()	builtin.txt	/*screenrow()*
+screenstring()	builtin.txt	/*screenstring()*
 script	usr_41.txt	/*script*
 script-here	if_perl.txt	/*script-here*
 script-local	map.txt	/*script-local*
@@ -8992,19 +8999,19 @@
 scrolling	scroll.txt	/*scrolling*
 scrollstart-variable	eval.txt	/*scrollstart-variable*
 sdl.vim	syntax.txt	/*sdl.vim*
-search()	eval.txt	/*search()*
-search()-sub-match	eval.txt	/*search()-sub-match*
+search()	builtin.txt	/*search()*
+search()-sub-match	builtin.txt	/*search()-sub-match*
 search-commands	pattern.txt	/*search-commands*
 search-offset	pattern.txt	/*search-offset*
 search-pattern	pattern.txt	/*search-pattern*
 search-range	pattern.txt	/*search-range*
 search-replace	change.txt	/*search-replace*
-searchcount()	eval.txt	/*searchcount()*
-searchdecl()	eval.txt	/*searchdecl()*
+searchcount()	builtin.txt	/*searchcount()*
+searchdecl()	builtin.txt	/*searchdecl()*
 searchforward-variable	eval.txt	/*searchforward-variable*
-searchpair()	eval.txt	/*searchpair()*
-searchpairpos()	eval.txt	/*searchpairpos()*
-searchpos()	eval.txt	/*searchpos()*
+searchpair()	builtin.txt	/*searchpair()*
+searchpairpos()	builtin.txt	/*searchpairpos()*
+searchpos()	builtin.txt	/*searchpos()*
 section	motion.txt	/*section*
 sed.vim	syntax.txt	/*sed.vim*
 self	eval.txt	/*self*
@@ -9013,51 +9020,51 @@
 sendto	gui_w32.txt	/*sendto*
 sentence	motion.txt	/*sentence*
 server-functions	usr_41.txt	/*server-functions*
-server2client()	eval.txt	/*server2client()*
-serverlist()	eval.txt	/*serverlist()*
+server2client()	builtin.txt	/*server2client()*
+serverlist()	builtin.txt	/*serverlist()*
 servername-variable	eval.txt	/*servername-variable*
 session-file	starting.txt	/*session-file*
 set-option	options.txt	/*set-option*
 set-spc-auto	spell.txt	/*set-spc-auto*
-setbufline()	eval.txt	/*setbufline()*
-setbufvar()	eval.txt	/*setbufvar()*
-setcellwidths()	eval.txt	/*setcellwidths()*
-setcharpos()	eval.txt	/*setcharpos()*
-setcharsearch()	eval.txt	/*setcharsearch()*
-setcmdpos()	eval.txt	/*setcmdpos()*
-setcursorcharpos()	eval.txt	/*setcursorcharpos()*
-setenv()	eval.txt	/*setenv()*
-setfperm()	eval.txt	/*setfperm()*
-setline()	eval.txt	/*setline()*
-setloclist()	eval.txt	/*setloclist()*
-setmatches()	eval.txt	/*setmatches()*
-setpos()	eval.txt	/*setpos()*
-setqflist()	eval.txt	/*setqflist()*
-setqflist-action	eval.txt	/*setqflist-action*
+setbufline()	builtin.txt	/*setbufline()*
+setbufvar()	builtin.txt	/*setbufvar()*
+setcellwidths()	builtin.txt	/*setcellwidths()*
+setcharpos()	builtin.txt	/*setcharpos()*
+setcharsearch()	builtin.txt	/*setcharsearch()*
+setcmdpos()	builtin.txt	/*setcmdpos()*
+setcursorcharpos()	builtin.txt	/*setcursorcharpos()*
+setenv()	builtin.txt	/*setenv()*
+setfperm()	builtin.txt	/*setfperm()*
+setline()	builtin.txt	/*setline()*
+setloclist()	builtin.txt	/*setloclist()*
+setmatches()	builtin.txt	/*setmatches()*
+setpos()	builtin.txt	/*setpos()*
+setqflist()	builtin.txt	/*setqflist()*
+setqflist-action	builtin.txt	/*setqflist-action*
 setqflist-examples	quickfix.txt	/*setqflist-examples*
-setqflist-what	eval.txt	/*setqflist-what*
-setreg()	eval.txt	/*setreg()*
-settabvar()	eval.txt	/*settabvar()*
-settabwinvar()	eval.txt	/*settabwinvar()*
-settagstack()	eval.txt	/*settagstack()*
+setqflist-what	builtin.txt	/*setqflist-what*
+setreg()	builtin.txt	/*setreg()*
+settabvar()	builtin.txt	/*settabvar()*
+settabwinvar()	builtin.txt	/*settabwinvar()*
+settagstack()	builtin.txt	/*settagstack()*
 setting-guifont	gui.txt	/*setting-guifont*
 setting-guitablabel	tabpage.txt	/*setting-guitablabel*
 setting-tabline	tabpage.txt	/*setting-tabline*
 setuid	change.txt	/*setuid*
-setwinvar()	eval.txt	/*setwinvar()*
+setwinvar()	builtin.txt	/*setwinvar()*
 sftp	pi_netrw.txt	/*sftp*
 sgml.vim	syntax.txt	/*sgml.vim*
 sgr-mouse	options.txt	/*sgr-mouse*
 sh-awk	syntax.txt	/*sh-awk*
 sh-embed	syntax.txt	/*sh-embed*
 sh.vim	syntax.txt	/*sh.vim*
-sha256()	eval.txt	/*sha256()*
+sha256()	builtin.txt	/*sha256()*
 shell-window	tips.txt	/*shell-window*
 shell_error-variable	eval.txt	/*shell_error-variable*
-shellescape()	eval.txt	/*shellescape()*
+shellescape()	builtin.txt	/*shellescape()*
 shift	intro.txt	/*shift*
 shift-left-right	change.txt	/*shift-left-right*
-shiftwidth()	eval.txt	/*shiftwidth()*
+shiftwidth()	builtin.txt	/*shiftwidth()*
 short-name-changed	version4.txt	/*short-name-changed*
 showing-menus	gui.txt	/*showing-menus*
 sign-column	sign.txt	/*sign-column*
@@ -9081,30 +9088,30 @@
 sign_unplacelist()	sign.txt	/*sign_unplacelist()*
 signs	sign.txt	/*signs*
 simple-change	change.txt	/*simple-change*
-simplify()	eval.txt	/*simplify()*
+simplify()	builtin.txt	/*simplify()*
 simulated-command	vi_diff.txt	/*simulated-command*
-sin()	eval.txt	/*sin()*
+sin()	builtin.txt	/*sin()*
 single-repeat	repeat.txt	/*single-repeat*
-sinh()	eval.txt	/*sinh()*
+sinh()	builtin.txt	/*sinh()*
 sizeofint-variable	eval.txt	/*sizeofint-variable*
 sizeoflong-variable	eval.txt	/*sizeoflong-variable*
 sizeofpointer-variable	eval.txt	/*sizeofpointer-variable*
 skeleton	autocmd.txt	/*skeleton*
 skip_defaults_vim	starting.txt	/*skip_defaults_vim*
 slice	eval.txt	/*slice*
-slice()	eval.txt	/*slice()*
+slice()	builtin.txt	/*slice()*
 slow-fast-terminal	term.txt	/*slow-fast-terminal*
 slow-start	starting.txt	/*slow-start*
 slow-terminal	term.txt	/*slow-terminal*
 socket-interface	channel.txt	/*socket-interface*
-sort()	eval.txt	/*sort()*
+sort()	builtin.txt	/*sort()*
 sorting	change.txt	/*sorting*
 sound-functions	usr_41.txt	/*sound-functions*
-sound_clear()	eval.txt	/*sound_clear()*
-sound_playevent()	eval.txt	/*sound_playevent()*
-sound_playfile()	eval.txt	/*sound_playfile()*
-sound_stop()	eval.txt	/*sound_stop()*
-soundfold()	eval.txt	/*soundfold()*
+sound_clear()	builtin.txt	/*sound_clear()*
+sound_playevent()	builtin.txt	/*sound_playevent()*
+sound_playfile()	builtin.txt	/*sound_playfile()*
+sound_stop()	builtin.txt	/*sound_stop()*
+soundfold()	builtin.txt	/*soundfold()*
 source-vim9-script	usr_46.txt	/*source-vim9-script*
 space	intro.txt	/*space*
 spec-customizing	pi_spec.txt	/*spec-customizing*
@@ -9212,11 +9219,11 @@
 spell-wordlist-format	spell.txt	/*spell-wordlist-format*
 spell-yiddish	spell.txt	/*spell-yiddish*
 spell.txt	spell.txt	/*spell.txt*
-spellbadword()	eval.txt	/*spellbadword()*
+spellbadword()	builtin.txt	/*spellbadword()*
 spellfile-cleanup	spell.txt	/*spellfile-cleanup*
 spellfile.vim	spell.txt	/*spellfile.vim*
-spellsuggest()	eval.txt	/*spellsuggest()*
-split()	eval.txt	/*split()*
+spellsuggest()	builtin.txt	/*spellsuggest()*
+split()	builtin.txt	/*split()*
 splitfind	windows.txt	/*splitfind*
 splitview	windows.txt	/*splitview*
 sponsor	sponsor.txt	/*sponsor*
@@ -9252,9 +9259,9 @@
 sqlj	ft_sql.txt	/*sqlj*
 sqlserver	ft_sql.txt	/*sqlserver*
 sqlsettype	ft_sql.txt	/*sqlsettype*
-sqrt()	eval.txt	/*sqrt()*
+sqrt()	builtin.txt	/*sqrt()*
 squirrel.vim	syntax.txt	/*squirrel.vim*
-srand()	eval.txt	/*srand()*
+srand()	builtin.txt	/*srand()*
 sscanf	eval.txt	/*sscanf*
 standard-plugin	usr_05.txt	/*standard-plugin*
 standard-plugin-list	help.txt	/*standard-plugin-list*
@@ -9270,39 +9277,39 @@
 startup	starting.txt	/*startup*
 startup-options	starting.txt	/*startup-options*
 startup-terminal	term.txt	/*startup-terminal*
-state()	eval.txt	/*state()*
+state()	builtin.txt	/*state()*
 static-tag	tagsrch.txt	/*static-tag*
 status-line	windows.txt	/*status-line*
 statusmsg-variable	eval.txt	/*statusmsg-variable*
 stl-%{	options.txt	/*stl-%{*
-str2float()	eval.txt	/*str2float()*
-str2list()	eval.txt	/*str2list()*
-str2nr()	eval.txt	/*str2nr()*
-strcasestr()	eval.txt	/*strcasestr()*
-strcharlen()	eval.txt	/*strcharlen()*
-strcharpart()	eval.txt	/*strcharpart()*
-strchars()	eval.txt	/*strchars()*
-strchr()	eval.txt	/*strchr()*
-strcspn()	eval.txt	/*strcspn()*
-strdisplaywidth()	eval.txt	/*strdisplaywidth()*
-strftime()	eval.txt	/*strftime()*
-strgetchar()	eval.txt	/*strgetchar()*
-stridx()	eval.txt	/*stridx()*
+str2float()	builtin.txt	/*str2float()*
+str2list()	builtin.txt	/*str2list()*
+str2nr()	builtin.txt	/*str2nr()*
+strcasestr()	builtin.txt	/*strcasestr()*
+strcharlen()	builtin.txt	/*strcharlen()*
+strcharpart()	builtin.txt	/*strcharpart()*
+strchars()	builtin.txt	/*strchars()*
+strchr()	builtin.txt	/*strchr()*
+strcspn()	builtin.txt	/*strcspn()*
+strdisplaywidth()	builtin.txt	/*strdisplaywidth()*
+strftime()	builtin.txt	/*strftime()*
+strgetchar()	builtin.txt	/*strgetchar()*
+stridx()	builtin.txt	/*stridx()*
 strikethrough	syntax.txt	/*strikethrough*
 string	eval.txt	/*string*
-string()	eval.txt	/*string()*
+string()	builtin.txt	/*string()*
 string-functions	usr_41.txt	/*string-functions*
-string-match	eval.txt	/*string-match*
-strlen()	eval.txt	/*strlen()*
-strpart()	eval.txt	/*strpart()*
-strpbrk()	eval.txt	/*strpbrk()*
-strptime()	eval.txt	/*strptime()*
-strrchr()	eval.txt	/*strrchr()*
-strridx()	eval.txt	/*strridx()*
-strspn()	eval.txt	/*strspn()*
-strstr()	eval.txt	/*strstr()*
-strtrans()	eval.txt	/*strtrans()*
-strwidth()	eval.txt	/*strwidth()*
+string-match	builtin.txt	/*string-match*
+strlen()	builtin.txt	/*strlen()*
+strpart()	builtin.txt	/*strpart()*
+strpbrk()	builtin.txt	/*strpbrk()*
+strptime()	builtin.txt	/*strptime()*
+strrchr()	builtin.txt	/*strrchr()*
+strridx()	builtin.txt	/*strridx()*
+strspn()	builtin.txt	/*strspn()*
+strstr()	builtin.txt	/*strstr()*
+strtrans()	builtin.txt	/*strtrans()*
+strwidth()	builtin.txt	/*strwidth()*
 style-changes	develop.txt	/*style-changes*
 style-compiler	develop.txt	/*style-compiler*
 style-examples	develop.txt	/*style-examples*
@@ -9315,10 +9322,10 @@
 sub-replace-expression	change.txt	/*sub-replace-expression*
 sub-replace-special	change.txt	/*sub-replace-special*
 sublist	eval.txt	/*sublist*
-submatch()	eval.txt	/*submatch()*
+submatch()	builtin.txt	/*submatch()*
 subscribe-maillist	intro.txt	/*subscribe-maillist*
 subscript	eval.txt	/*subscript*
-substitute()	eval.txt	/*substitute()*
+substitute()	builtin.txt	/*substitute()*
 substitute-CR	version6.txt	/*substitute-CR*
 suffixes	cmdline.txt	/*suffixes*
 suspend	starting.txt	/*suspend*
@@ -9327,26 +9334,26 @@
 swapchoice-variable	eval.txt	/*swapchoice-variable*
 swapcommand-variable	eval.txt	/*swapcommand-variable*
 swapfile-changed	version4.txt	/*swapfile-changed*
-swapinfo()	eval.txt	/*swapinfo()*
-swapname()	eval.txt	/*swapname()*
+swapinfo()	builtin.txt	/*swapinfo()*
+swapname()	builtin.txt	/*swapname()*
 swapname-variable	eval.txt	/*swapname-variable*
 sybase	ft_sql.txt	/*sybase*
 syn-sync-grouphere	syntax.txt	/*syn-sync-grouphere*
 syn-sync-groupthere	syntax.txt	/*syn-sync-groupthere*
 syn-sync-linecont	syntax.txt	/*syn-sync-linecont*
-synID()	eval.txt	/*synID()*
-synIDattr()	eval.txt	/*synIDattr()*
-synIDtrans()	eval.txt	/*synIDtrans()*
+synID()	builtin.txt	/*synID()*
+synIDattr()	builtin.txt	/*synIDattr()*
+synIDtrans()	builtin.txt	/*synIDtrans()*
 syncbind	scroll.txt	/*syncbind*
 syncolor	syntax.txt	/*syncolor*
-synconcealed()	eval.txt	/*synconcealed()*
+synconcealed()	builtin.txt	/*synconcealed()*
 synload-1	syntax.txt	/*synload-1*
 synload-2	syntax.txt	/*synload-2*
 synload-3	syntax.txt	/*synload-3*
 synload-4	syntax.txt	/*synload-4*
 synload-5	syntax.txt	/*synload-5*
 synload-6	syntax.txt	/*synload-6*
-synstack()	eval.txt	/*synstack()*
+synstack()	builtin.txt	/*synstack()*
 syntax	syntax.txt	/*syntax*
 syntax-functions	usr_41.txt	/*syntax-functions*
 syntax-highlighting	syntax.txt	/*syntax-highlighting*
@@ -9358,10 +9365,10 @@
 syntax_cmd	syntax.txt	/*syntax_cmd*
 sys-file-list	help.txt	/*sys-file-list*
 sysmouse	term.txt	/*sysmouse*
-system()	eval.txt	/*system()*
+system()	builtin.txt	/*system()*
 system-functions	usr_41.txt	/*system-functions*
 system-vimrc	starting.txt	/*system-vimrc*
-systemlist()	eval.txt	/*systemlist()*
+systemlist()	builtin.txt	/*systemlist()*
 s~	change.txt	/*s~*
 t	motion.txt	/*t*
 t:	eval.txt	/*t:*
@@ -9578,9 +9585,9 @@
 tabpage	tabpage.txt	/*tabpage*
 tabpage-variable	eval.txt	/*tabpage-variable*
 tabpage.txt	tabpage.txt	/*tabpage.txt*
-tabpagebuflist()	eval.txt	/*tabpagebuflist()*
-tabpagenr()	eval.txt	/*tabpagenr()*
-tabpagewinnr()	eval.txt	/*tabpagewinnr()*
+tabpagebuflist()	builtin.txt	/*tabpagebuflist()*
+tabpagenr()	builtin.txt	/*tabpagenr()*
+tabpagewinnr()	builtin.txt	/*tabpagewinnr()*
 tag	tagsrch.txt	/*tag*
 tag-!	tagsrch.txt	/*tag-!*
 tag-binary-search	tagsrch.txt	/*tag-binary-search*
@@ -9600,8 +9607,8 @@
 tag-security	tagsrch.txt	/*tag-security*
 tag-skip-file	tagsrch.txt	/*tag-skip-file*
 tag-stack	tagsrch.txt	/*tag-stack*
-tagfiles()	eval.txt	/*tagfiles()*
-taglist()	eval.txt	/*taglist()*
+tagfiles()	builtin.txt	/*tagfiles()*
+taglist()	builtin.txt	/*taglist()*
 tags	tagsrch.txt	/*tags*
 tags-and-searches	tagsrch.txt	/*tags-and-searches*
 tags-file-changed	version5.txt	/*tags-file-changed*
@@ -9610,8 +9617,8 @@
 tagsrch.txt	tagsrch.txt	/*tagsrch.txt*
 tagstack	tagsrch.txt	/*tagstack*
 tagstack-examples	tagsrch.txt	/*tagstack-examples*
-tan()	eval.txt	/*tan()*
-tanh()	eval.txt	/*tanh()*
+tan()	builtin.txt	/*tan()*
+tanh()	builtin.txt	/*tanh()*
 tar	pi_tar.txt	/*tar*
 tar-contents	pi_tar.txt	/*tar-contents*
 tar-copyright	pi_tar.txt	/*tar-copyright*
@@ -9666,10 +9673,10 @@
 tcsh.vim	syntax.txt	/*tcsh.vim*
 tear-off-menus	gui.txt	/*tear-off-menus*
 telnet-CTRL-]	tagsrch.txt	/*telnet-CTRL-]*
-temp-file-name	eval.txt	/*temp-file-name*
+temp-file-name	builtin.txt	/*temp-file-name*
 tempfile	change.txt	/*tempfile*
 template	autocmd.txt	/*template*
-tempname()	eval.txt	/*tempname()*
+tempname()	builtin.txt	/*tempname()*
 term++close	terminal.txt	/*term++close*
 term++open	terminal.txt	/*term++open*
 term-dependent-settings	term.txt	/*term-dependent-settings*
@@ -9754,7 +9761,7 @@
 terminal-use	terminal.txt	/*terminal-use*
 terminal-window	terminal.txt	/*terminal-window*
 terminal.txt	terminal.txt	/*terminal.txt*
-terminalprops()	eval.txt	/*terminalprops()*
+terminalprops()	builtin.txt	/*terminalprops()*
 terminfo	term.txt	/*terminfo*
 termresponse-variable	eval.txt	/*termresponse-variable*
 test-functions	usr_41.txt	/*test-functions*
@@ -9826,14 +9833,14 @@
 throw-variables	eval.txt	/*throw-variables*
 throwpoint-variable	eval.txt	/*throwpoint-variable*
 time-functions	usr_41.txt	/*time-functions*
-timer	eval.txt	/*timer*
+timer	builtin.txt	/*timer*
 timer-functions	usr_41.txt	/*timer-functions*
-timer_info()	eval.txt	/*timer_info()*
-timer_pause()	eval.txt	/*timer_pause()*
-timer_start()	eval.txt	/*timer_start()*
-timer_stop()	eval.txt	/*timer_stop()*
-timer_stopall()	eval.txt	/*timer_stopall()*
-timers	eval.txt	/*timers*
+timer_info()	builtin.txt	/*timer_info()*
+timer_pause()	builtin.txt	/*timer_pause()*
+timer_start()	builtin.txt	/*timer_start()*
+timer_stop()	builtin.txt	/*timer_stop()*
+timer_stopall()	builtin.txt	/*timer_stopall()*
+timers	builtin.txt	/*timers*
 timestamp	editing.txt	/*timestamp*
 timestamps	editing.txt	/*timestamps*
 tips	tips.txt	/*tips*
@@ -9844,17 +9851,17 @@
 todo.txt	todo.txt	/*todo.txt*
 toggle	options.txt	/*toggle*
 toggle-revins	version4.txt	/*toggle-revins*
-tolower()	eval.txt	/*tolower()*
+tolower()	builtin.txt	/*tolower()*
 toolbar-icon	gui.txt	/*toolbar-icon*
 tooltips	gui.txt	/*tooltips*
-toupper()	eval.txt	/*toupper()*
-tr()	eval.txt	/*tr()*
-trim()	eval.txt	/*trim()*
+toupper()	builtin.txt	/*toupper()*
+tr()	builtin.txt	/*tr()*
+trim()	builtin.txt	/*trim()*
 trinary	eval.txt	/*trinary*
 trojan-horse	starting.txt	/*trojan-horse*
 true	vim9.txt	/*true*
 true-variable	eval.txt	/*true-variable*
-trunc()	eval.txt	/*trunc()*
+trunc()	builtin.txt	/*trunc()*
 truthy	eval.txt	/*truthy*
 try-conditionals	eval.txt	/*try-conditionals*
 try-echoerr	eval.txt	/*try-echoerr*
@@ -9865,14 +9872,14 @@
 tutor	usr_01.txt	/*tutor*
 twice	if_cscop.txt	/*twice*
 two-engines	pattern.txt	/*two-engines*
-type()	eval.txt	/*type()*
+type()	builtin.txt	/*type()*
 type-casting	vim9.txt	/*type-casting*
 type-checking	vim9.txt	/*type-checking*
 type-inference	vim9.txt	/*type-inference*
 type-mistakes	tips.txt	/*type-mistakes*
 typecorr-settings	usr_41.txt	/*typecorr-settings*
 typecorr.txt	usr_41.txt	/*typecorr.txt*
-typename()	eval.txt	/*typename()*
+typename()	builtin.txt	/*typename()*
 u	undo.txt	/*u*
 uganda	uganda.txt	/*uganda*
 uganda.txt	uganda.txt	/*uganda.txt*
@@ -9890,10 +9897,10 @@
 undo.txt	undo.txt	/*undo.txt*
 undo_ftplugin	usr_41.txt	/*undo_ftplugin*
 undo_indent	usr_41.txt	/*undo_indent*
-undofile()	eval.txt	/*undofile()*
-undotree()	eval.txt	/*undotree()*
+undofile()	builtin.txt	/*undofile()*
+undotree()	builtin.txt	/*undotree()*
 unicode	mbyte.txt	/*unicode*
-uniq()	eval.txt	/*uniq()*
+uniq()	builtin.txt	/*uniq()*
 unix	os_unix.txt	/*unix*
 unlisted-buffer	windows.txt	/*unlisted-buffer*
 up-down-motions	motion.txt	/*up-down-motions*
@@ -10171,7 +10178,7 @@
 vab	motion.txt	/*vab*
 val-variable	eval.txt	/*val-variable*
 valgrind	debug.txt	/*valgrind*
-values()	eval.txt	/*values()*
+values()	builtin.txt	/*values()*
 var-functions	usr_41.txt	/*var-functions*
 variable-scope	eval.txt	/*variable-scope*
 variable-types	vim9.txt	/*variable-types*
@@ -10255,6 +10262,7 @@
 vim7	version7.txt	/*vim7*
 vim8	version8.txt	/*vim8*
 vim9	vim9.txt	/*vim9*
+vim9-boolean	vim9.txt	/*vim9-boolean*
 vim9-classes	vim9.txt	/*vim9-classes*
 vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
@@ -10270,6 +10278,8 @@
 vim9-import	vim9.txt	/*vim9-import*
 vim9-lambda	vim9.txt	/*vim9-lambda*
 vim9-lambda-arguments	vim9.txt	/*vim9-lambda-arguments*
+vim9-line-continuation	vim9.txt	/*vim9-line-continuation*
+vim9-literal-dict	vim9.txt	/*vim9-literal-dict*
 vim9-mix	vim9.txt	/*vim9-mix*
 vim9-namespace	vim9.txt	/*vim9-namespace*
 vim9-no-dict-function	vim9.txt	/*vim9-no-dict-function*
@@ -10288,7 +10298,7 @@
 vim_dev	intro.txt	/*vim_dev*
 vim_did_enter-variable	eval.txt	/*vim_did_enter-variable*
 vim_mac	intro.txt	/*vim_mac*
-vim_starting	eval.txt	/*vim_starting*
+vim_starting	builtin.txt	/*vim_starting*
 vim_use	intro.txt	/*vim_use*
 vimball	pi_vimball.txt	/*vimball*
 vimball-contents	pi_vimball.txt	/*vimball-contents*
@@ -10332,7 +10342,7 @@
 vimscript-version	eval.txt	/*vimscript-version*
 vimscript-versions	eval.txt	/*vimscript-versions*
 vimtutor	usr_01.txt	/*vimtutor*
-virtcol()	eval.txt	/*virtcol()*
+virtcol()	builtin.txt	/*virtcol()*
 visual-block	visual.txt	/*visual-block*
 visual-change	visual.txt	/*visual-change*
 visual-examples	visual.txt	/*visual-examples*
@@ -10344,7 +10354,7 @@
 visual-start	visual.txt	/*visual-start*
 visual-use	visual.txt	/*visual-use*
 visual.txt	visual.txt	/*visual.txt*
-visualmode()	eval.txt	/*visualmode()*
+visualmode()	builtin.txt	/*visualmode()*
 vms	os_vms.txt	/*vms*
 vms-authors	os_vms.txt	/*vms-authors*
 vms-changes	os_vms.txt	/*vms-changes*
@@ -10375,7 +10385,7 @@
 whitespace	pattern.txt	/*whitespace*
 wildcard	editing.txt	/*wildcard*
 wildcards	editing.txt	/*wildcards*
-wildmenumode()	eval.txt	/*wildmenumode()*
+wildmenumode()	builtin.txt	/*wildmenumode()*
 win16	os_win32.txt	/*win16*
 win32	os_win32.txt	/*win32*
 win32-!start	gui_w32.txt	/*win32-!start*
@@ -10402,17 +10412,17 @@
 win32-win3.1	os_win32.txt	/*win32-win3.1*
 win32-win95	os_win32.txt	/*win32-win95*
 win32s	os_win32.txt	/*win32s*
-win_execute()	eval.txt	/*win_execute()*
-win_findbuf()	eval.txt	/*win_findbuf()*
-win_getid()	eval.txt	/*win_getid()*
-win_gettype()	eval.txt	/*win_gettype()*
-win_gotoid()	eval.txt	/*win_gotoid()*
-win_id2tabwin()	eval.txt	/*win_id2tabwin()*
-win_id2win()	eval.txt	/*win_id2win()*
-win_screenpos()	eval.txt	/*win_screenpos()*
-win_splitmove()	eval.txt	/*win_splitmove()*
-winbufnr()	eval.txt	/*winbufnr()*
-wincol()	eval.txt	/*wincol()*
+win_execute()	builtin.txt	/*win_execute()*
+win_findbuf()	builtin.txt	/*win_findbuf()*
+win_getid()	builtin.txt	/*win_getid()*
+win_gettype()	builtin.txt	/*win_gettype()*
+win_gotoid()	builtin.txt	/*win_gotoid()*
+win_id2tabwin()	builtin.txt	/*win_id2tabwin()*
+win_id2win()	builtin.txt	/*win_id2win()*
+win_screenpos()	builtin.txt	/*win_screenpos()*
+win_splitmove()	builtin.txt	/*win_splitmove()*
+winbufnr()	builtin.txt	/*winbufnr()*
+wincol()	builtin.txt	/*wincol()*
 window	windows.txt	/*window*
 window-ID	windows.txt	/*window-ID*
 window-contents	intro.txt	/*window-contents*
@@ -10437,20 +10447,20 @@
 windows95	os_win32.txt	/*windows95*
 windows98	os_win32.txt	/*windows98*
 windowsme	os_win32.txt	/*windowsme*
-windowsversion()	eval.txt	/*windowsversion()*
-winheight()	eval.txt	/*winheight()*
+windowsversion()	builtin.txt	/*windowsversion()*
+winheight()	builtin.txt	/*winheight()*
 winid	windows.txt	/*winid*
-winlayout()	eval.txt	/*winlayout()*
-winline()	eval.txt	/*winline()*
-winnr()	eval.txt	/*winnr()*
-winrestcmd()	eval.txt	/*winrestcmd()*
-winrestview()	eval.txt	/*winrestview()*
-winsaveview()	eval.txt	/*winsaveview()*
-winwidth()	eval.txt	/*winwidth()*
+winlayout()	builtin.txt	/*winlayout()*
+winline()	builtin.txt	/*winline()*
+winnr()	builtin.txt	/*winnr()*
+winrestcmd()	builtin.txt	/*winrestcmd()*
+winrestview()	builtin.txt	/*winrestview()*
+winsaveview()	builtin.txt	/*winsaveview()*
+winwidth()	builtin.txt	/*winwidth()*
 word	motion.txt	/*word*
 word-count	editing.txt	/*word-count*
 word-motions	motion.txt	/*word-motions*
-wordcount()	eval.txt	/*wordcount()*
+wordcount()	builtin.txt	/*wordcount()*
 workbench	starting.txt	/*workbench*
 workshop	workshop.txt	/*workshop*
 workshop-support	workshop.txt	/*workshop-support*
@@ -10467,7 +10477,7 @@
 write-plugin-quickload	usr_41.txt	/*write-plugin-quickload*
 write-quit	editing.txt	/*write-quit*
 write-readonly	editing.txt	/*write-readonly*
-writefile()	eval.txt	/*writefile()*
+writefile()	builtin.txt	/*writefile()*
 writing	editing.txt	/*writing*
 www	intro.txt	/*www*
 x	change.txt	/*x*
@@ -10485,7 +10495,7 @@
 xml-folding	syntax.txt	/*xml-folding*
 xml-omni-datafile	insert.txt	/*xml-omni-datafile*
 xml.vim	syntax.txt	/*xml.vim*
-xor()	eval.txt	/*xor()*
+xor()	builtin.txt	/*xor()*
 xpm.vim	syntax.txt	/*xpm.vim*
 xterm-8-bit	term.txt	/*xterm-8-bit*
 xterm-8bit	term.txt	/*xterm-8bit*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index bd97d3a..7c99a65 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2021 Dec 24
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Dec 27
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,37 +38,17 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-type of v: vars should be more specific
-    v:completed_item  is dict<string>, not dict<any>
-
-E1135 is used twice
-
-"z=" in German can take a very long time, CTRL-C should interrupt it.
-
-Vim9 - Make everything work:
-- For builtin functions using tv_get_string*() use check_for_string() to be
-  more strict about the argument type (not a bool).
-    done: balloon_()
-- Check many more builtin function arguments at compile time.
-    map() could check that the return type of the function argument matches
-    the type of the list or dict member. (#8092)
-    Same for other functions, such as searchpair().
-- Test that a function defined inside a :def function is local to that
-  function, g: functions can be defined and script-local functions cannot be
-  defined.
-- Unexpected error message when using "var x: any | x.key = 9", because "x" is
-  given the type number.  Can we use VAR_ANY?
-- Check performance with callgrind and kcachegrind.
-
 Once Vim9 is stable:
 - Add the "vim9script" feature, can use has('vim9script')
+    Remove TODO in vim9.txt
 - Change the help to prefer Vim9 syntax where appropriate
-- Add all the error numbers in a good place in documentation.
 - In the generic eval docs, point out the Vim9 syntax where it differs.
+- Add all the error numbers in a good place in documentation.
 - Use Vim9 for runtime files.
     PR #7497 for autoload/ccomplete.vim
 
 Further Vim9 improvements, possibly after launch:
+- Check performance with callgrind and kcachegrind.
 - better implementation for partial and tests for that.
 - Compile options that are an expression, e.g. "expr:" in 'spellsuggest',
   'foldexpr', 'foldtext', 'printexpr', 'diffexpr', 'patchexpr', 'charconvert',
@@ -78,10 +58,9 @@
   evaluation.
   Use the location where the option was set for deciding whether it's to be
   evaluated in Vim9 script context.
-- Handle command that is only a range more efficient than calling ISN_EXEC
 - implement :type, "import type"
-- implement enum,  "import enum".
-- implement class and interface: See |vim9-classes|
+- implement :enum,  "import enum".
+- implement :class and :interface: See |vim9-classes|
 - For range: make table of first ASCII character with flag to quickly check if
   it can be a Vim9 command. E.g. "+" can, but "." can't.
 - Inline call to map() and filter(), better type checking.
@@ -253,8 +232,6 @@
 initialization to figure out the default value from 'shell'.  Add a test for
 this.
 
-Patch to add :argdedupe. (Nir Lichtman, #6235)
-
 MS-Windows: did path modifier :p:8 stop working?  #8600
 
 test_arglist func Test_all_not_allowed_from_cmdwin() hangs on MS-Windows.
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index b9459f3..84c5f4a 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2021 Dec 22
+" Last Change:	2021 Dec 27
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
