Update runtime files
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index c410ae6..ebb6197 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 8.2.  Last change: 2022 Jan 21
+*autocmd.txt*   For Vim version 8.2.  Last change: 2022 Feb 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -741,7 +741,7 @@
 				change or when doing |:diffupdate|.
 							*DirChangedPre*
 DirChangedPre			The working directory is going to be changed,
-				as with ||DirChanged|.  The pattern is like
+				as with |DirChanged|.  The pattern is like
 				with |DirChanged|.  The new directory can be
 				found in v:event.directory.
 							*DirChanged*
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 8299597..299bcba 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
+*builtin.txt*	For Vim version 8.2.  Last change: 2022 Feb 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4670,9 +4670,11 @@
 			:echo islocked('alist')		" 1
 			:echo islocked('alist[1]')	" 0
 
-<		When {expr} is a variable that does not exist you get an error
-		message.  Use |exists()| to check for existence.
-		In Vim9 script it does not work for local variables.
+<		When {expr} is a variable that does not exist -1 is returned.
+		If {expr} uses a range, list or dict index that is out of
+		range or does not exist you get an error message.  Use
+		|exists()| to check for existence.
+		In Vim9 script it does not work for local function variables.
 
 		Can also be used as a |method|: >
 			GetName()->islocked()
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 79b1716..19b8b67 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 8.2.  Last change: 2021 Nov 12
+*if_pyth.txt*   For Vim version 8.2.  Last change: 2022 Feb 07
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -65,7 +65,7 @@
 
 							*python-environment*
 Environment variables set in Vim are not always available in Python.  This
-depends on how Vim and Python were build.  Also see
+depends on how Vim and Python were built.  Also see
 https://docs.python.org/3/library/os.html#os.environ
 
 Note: Python is very sensitive to the indenting.  Make sure the "class" line
@@ -834,6 +834,19 @@
 Raising SystemExit exception in python isn't endorsed way to quit vim, use: >
 	:py vim.command("qall!")
 <
+							*E1266*
+This error can occur when python 3 cannot load the required modules.  This
+means that your python 3 is not correctly installed or there are some mistakes
+in your settings.  Please check the following items:
+1. Make sure that python 3 is correctly installed.  Also check the version of
+   python.
+2. Check the 'pythonthreedll' option.
+3. Check the 'pythonthreehome' option.
+4. Check the PATH environment variable if you don't set 'pythonthreedll'.
+   On MS-Windows, you can use where.exe to check which dll will be loaded.
+   E.g. >
+	where.exe python310.dll
+5. Check the PYTHONPATH and PYTHONHOME environment variables.
 
 							*has-python*
 You can test what Python version is available with: >
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index c4129ea..8403bac 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2022 Jan 28
+*index.txt*     For Vim version 8.2.  Last change: 2022 Feb 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1152,7 +1152,7 @@
 |:&|		:&		repeat last ":substitute"
 |:star|		:*		execute contents of a register
 |:<|		:<		shift lines one 'shiftwidth' left
-|:=|		:=		print the cursor line number
+|:=|		:=		print the last line number
 |:>|		:>		shift lines one 'shiftwidth' right
 |:@|		:@		execute contents of a register
 |:@@|		:@@		repeat the previous ":@"
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index ee2caa7..1d3f768 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
+*options.txt*	For Vim version 8.2.  Last change: 2022 Feb 08
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 6bb259f..b2b5514 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 8.2.  Last change: 2022 Jan 04
+*quickfix.txt*  For Vim version 8.2.  Last change: 2022 Feb 08
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index a23ac88..d95278a 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
+*syntax.txt*	For Vim version 8.2.  Last change: 2022 Feb 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3713,12 +3713,13 @@
 	items until the next ":syntax case" command are affected.
 
 :sy[ntax] case
-	Show either "syntax case match" or "syntax case ignore" (translated).
+	Show either "syntax case match" or "syntax case ignore".
 
 
 DEFINING FOLDLEVEL					*:syn-foldlevel*
 
-:sy[ntax] foldlevel [start | minimum]
+:sy[ntax] foldlevel start
+:sy[ntax] foldlevel minimum
 	This defines how the foldlevel of a line is computed when using
 	foldmethod=syntax (see |fold-syntax| and |:syn-fold|):
 
@@ -3731,13 +3732,16 @@
 	may close and open horizontally within a line.
 
 :sy[ntax] foldlevel
-	Show either "syntax foldlevel start" or "syntax foldlevel minimum".
+	Show the current foldlevel method, either "syntax foldlevel start" or
+	"syntax foldlevel minimum".
 
 	{not meaningful when Vim was compiled without |+folding| feature}
 
 SPELL CHECKING						*:syn-spell*
 
-:sy[ntax] spell [toplevel | notoplevel | default]
+:sy[ntax] spell toplevel
+:sy[ntax] spell notoplevel
+:sy[ntax] spell default
 	This defines where spell checking is to be done for text that is not
 	in a syntax item:
 
@@ -3752,8 +3756,8 @@
 	To activate spell checking the 'spell' option must be set.
 
 :sy[ntax] spell
-	Show either "syntax spell toplevel", "syntax spell notoplevel" or
-	"syntax spell default" (translated).
+	Show the current syntax spell checking method, either "syntax spell
+	toplevel", "syntax spell notoplevel" or "syntax spell default".
 
 
 SYNTAX ISKEYWORD SETTING				*:syn-iskeyword*
@@ -4352,7 +4356,7 @@
 	given explicitly.
 
 :sy[ntax] conceal
-	Show either "syntax conceal on" or "syntax conceal off" (translated).
+	Show either "syntax conceal on" or "syntax conceal off".
 
 ==============================================================================
 8. Syntax patterns				*:syn-pattern* *E401* *E402*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index a15371e..4d80e60 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3948,6 +3948,7 @@
 DiffUpdated	autocmd.txt	/*DiffUpdated*
 Digraphs	digraph.txt	/*Digraphs*
 DirChanged	autocmd.txt	/*DirChanged*
+DirChangedPre	autocmd.txt	/*DirChangedPre*
 E	motion.txt	/*E*
 E10	message.txt	/*E10*
 E100	diff.txt	/*E100*
@@ -4234,6 +4235,7 @@
 E1263	eval.txt	/*E1263*
 E1264	vim9.txt	/*E1264*
 E1265	eval.txt	/*E1265*
+E1266	if_pyth.txt	/*E1266*
 E127	eval.txt	/*E127*
 E128	eval.txt	/*E128*
 E129	eval.txt	/*E129*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c74bce6..76bdc17 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 8.2.  Last change: 2022 Feb 04
+*todo.txt*      For Vim version 8.2.  Last change: 2022 Feb 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,8 +39,14 @@
 -------------------- Known bugs and current work -----------------------
 
 Once Vim9 is stable:
-- Check code coverage, add more tests if needed.
 - Use Vim9 for runtime files.
+- Check code coverage, add more tests if needed.
+	vim9compile.c
+	vim9execute.c
+	vim9expr.c
+	vim9instr.c
+	vim9script.c
+	vim9type.c
 
 Further Vim9 improvements, possibly after launch:
 - Check performance with callgrind and kcachegrind.
@@ -4834,9 +4840,6 @@
     CursorHoldC     - CursorHold while command-line editing
     WinMoved	    - when windows have been moved around, e.g, ":wincmd J"
     SearchPost	    - After doing a search command (e.g. to do "M")
-    PreDirChanged/PostDirChanged
-		    - Before/after ":cd" has been used (for changing the
-		      window title)
     ShutDown	    - when the system is about to shut down
     InsertCharPost  - user typed a character in Insert mode, after inserting
 		      the char.
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index a71cf03..6b7b873 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 8.2.  Last change: 2022 Feb 04
+*uganda.txt*    For Vim version 8.2.  Last change: 2022 Feb 05
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -223,7 +223,7 @@
 		forwards 100% of the money to the project in Uganda.  You can
 		send them a one time donation directly.
 		Please send me a note so that I know what has been donated
-		because of Vim.  Look on their for information about
+		because of Vim.  Look on their site for information about
 		sponsorship: https://www.kuwasha.net/
 		If you make a donation to Kuwasha you will receive a tax
 		receipt which can be submitted with your tax return.
@@ -248,7 +248,7 @@
 		The e-mail address for sending the money to is:
 		    Bram@iccf-holland.org
 
-Others:		Transfer to one of these accounts if possible:
+Others:		Transfer to this account if possible:
 		    ING bank: 	IBAN: NL95 INGB 0004 5487 74
 				Swift code: INGBNL2A
 		    under the name "stichting ICCF Holland", Amersfoort
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index afa3239..143de79 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2022 Feb 04
+*vim9.txt*	For Vim version 8.2.  Last change: 2022 Feb 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -221,12 +221,12 @@
 When using `:function` or `:def` to specify a new function at the script level
 in a Vim9 script, the function is local to the script, as if "s:" was
 prefixed.  Using the "s:" prefix is optional.  To define a global function or
-variable the "g:" prefix must be used.  For functions in an autoload script
-the "name#" prefix is sufficient. >
+variable the "g:" prefix must be used.  For functions in a script that is to
+be imported and in an autoload script "export" needs to be used. >
 	def ThisFunction()          # script-local
 	def s:ThisFunction()        # script-local
 	def g:ThatFunction()        # global
-	def scriptname#function()   # autoload
+	export def Function()       # for import and import autoload
 <						*E1058* *E1075*
 When using `:function` or `:def` to specify a nested function inside a `:def`
 function and no namespace was given, this nested function is local to the code
@@ -280,7 +280,9 @@
 some point when loaded again.  E.g. when a buffer local option is set: >
 	vim9script noclear
 	setlocal completefunc=SomeFunc
-	if exists('*g:SomeFunc') | finish | endif
+	if exists('*g:SomeFunc')
+	  finish
+	endif
 	def g:SomeFunc()
 	....
 
@@ -1398,14 +1400,24 @@
 For script-local variables in Vim9 script the type is checked, also when the
 variable was declared in a legacy function.
 
-When a type has been declared this is attached to a list or string.  When
+When a type has been declared this is attached to a List or Dictionary.  When
 later some expression attempts to change the type an error will be given: >
 	var ll: list<number> = [1, 2, 3]
 	ll->extend(['x'])  # Error, 'x' is not a number
 
-If the type is inferred then the type is allowed to change: >
+If the type is not declared then it is allowed to change: >
 	[1, 2, 3]->extend(['x'])  # result: [1, 2, 3, 'x']
 
+For a variable declaration an inferred type matters: >
+	var ll = [1, 2, 3]
+	ll->extend(['x'])  # Error, 'x' is not a number
+That is because the declaration looks like a list of numbers, thus is
+equivalent to: >
+	var ll: list<number> = [1, 2, 3]
+If you do want a more permissive list you need to declare the type: >
+	var ll: list<any = [1, 2, 3]
+	ll->extend(['x'])  # OK
+
 
 Stricter type checking ~
 							*type-checking*