diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index d1a92df..28e2038 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt*	For Vim version 8.2.  Last change: 2019 May 05
+*arabic.txt*	For Vim version 8.2.  Last change: 2021 Jun 22
 
 
 		  VIM REFERENCE MANUAL	  by Nadim Shaikli
@@ -176,6 +176,13 @@
 	 and its support is preferred due to its level of offerings.
 	 'arabic' when 'termbidi' is enabled only sets the keymap.
 
+	 For vertical window isolation while setting 'termbidi' an LTR
+	 vertical separator like "l" or "𝖨" may be used.  It may also be
+	 hidden by changing its color to the foreground color: >
+		:set fillchars=vert:l
+		:hi VertSplit ctermbg=White
+<	Note that this is a workaround, not a proper solution.
+
    If, on the other hand, you'd like to be verbose and explicit and
    are opting not to use the 'arabic' short-cut command, here's what
    is needed (i.e. if you use ':set arabic' you can skip this section) -
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 62a69b7..1a9ba7a 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 10
+*change.txt*    For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -780,12 +780,15 @@
 "\/{string}/" and "\?{string}?" do the same as "//{string}/r".
 "\&{string}&" does the same as "//{string}/".
 						*pattern-delimiter* *E146*
-Instead of the '/' which surrounds the pattern and replacement string, you
-can use any other single-byte character, but not an alphanumeric character,
-'\', '"' or '|'.  This is useful if you want to include a '/' in the search
-pattern or replacement string.  Example: >
+Instead of the '/' which surrounds the pattern and replacement string, you can
+use another single-byte character.  This is useful if you want to include a
+'/' in the search pattern or replacement string.  Example: >
 	:s+/+//+
 
+You can use most characters, but not an alphanumeric character, '\', '"' or
+'|'.  In Vim9 script you should not use '#' because it may be recognized as
+the start of a comment.
+
 For the definition of a pattern, see |pattern|.  In Visual block mode, use
 |/\%V| in the pattern to have the substitute work in the block only.
 Otherwise it works on whole lines anyway.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 8a84312..4356381 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 8.2.  Last change: 2021 Jun 07
+*eval.txt*	For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4862,6 +4862,8 @@
 		The result is a Number.  If the line {lnum} is in a closed
 		fold, the result is the number of the first line in that fold.
 		If the line {lnum} is not in a closed fold, -1 is returned.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldclosed()
@@ -4870,6 +4872,8 @@
 		The result is a Number.  If the line {lnum} is in a closed
 		fold, the result is the number of the last line in that fold.
 		If the line {lnum} is not in a closed fold, -1 is returned.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldclosedend()
@@ -4883,6 +4887,8 @@
 		returned for lines where folds are still to be updated and the
 		foldlevel is unknown.  As a special case the level of the
 		previous line is usually available.
+		{lnum} is used like with |getline()|.  Thus "." is the current
+		line, "'m" mark m, etc.
 
 		Can also be used as a |method|: >
 			GetLnum()->foldlevel()
@@ -5758,6 +5764,8 @@
 		|getmatches()| is useful in combination with |setmatches()|,
 		as |setmatches()| can restore a list of matches saved by
 		|getmatches()|.
+		If {win} is specified, use the window with this number or
+		window ID instead of the current window.
 		Example: >
 			:echo getmatches()
 <			[{'group': 'MyGroup1', 'pattern': 'TODO',
@@ -5858,8 +5866,10 @@
 			valid	|TRUE|: recognized error message
 
 		When there is no error list or it's empty, an empty list is
-		returned. Quickfix list entries with non-existing buffer
-		number are returned with "bufnr" set to zero.
+		returned. Quickfix list entries with a non-existing buffer
+		number are returned with "bufnr" set to zero (Note: some
+		functions accept buffer number zero for the alternate buffer,
+		you may need to explicitly check for zero).
 
 		Useful application: Find pattern matches in multiple files and
 		do something with them: >
@@ -6003,12 +6013,12 @@
 		Can also be used as a |method|: >
 			GetRegname()->getregtype()
 
-gettabinfo([{arg}])					*gettabinfo()*
-		If {arg} is not specified, then information about all the tab
-		pages is returned as a |List|. Each List item is a |Dictionary|.
-		Otherwise, {arg} specifies the tab page number and information
-		about that one is returned.  If the tab page does not exist an
-		empty List is returned.
+gettabinfo([{tabnr}])					*gettabinfo()*
+		If {tabnr} is not specified, then information about all the
+		tab pages is returned as a |List|. Each List item is a
+		|Dictionary|.  Otherwise, {tabnr} specifies the tab page
+		number and information about that one is returned.  If the tab
+		page does not exist an empty List is returned.
 
 		Each List item is a |Dictionary| with the following entries:
 			tabnr		tab page number.
@@ -6061,11 +6071,11 @@
 <		Can also be used as a |method|: >
 			GetTabnr()->gettabwinvar(winnr, varname)
 
-gettagstack([{nr}])					*gettagstack()*
-		The result is a Dict, which is the tag stack of window {nr}.
-		{nr} can be the window number or the |window-ID|.
-		When {nr} is not specified, the current window is used.
-		When window {nr} doesn't exist, an empty Dict is returned.
+gettagstack([{winnr}])					*gettagstack()*
+		The result is a Dict, which is the tag stack of window {winnr}.
+		{winnr} can be the window number or the |window-ID|.
+		When {winnr} is not specified, the current window is used.
+		When window {winnr} doesn't exist, an empty Dict is returned.
 
 		The returned dictionary contains the following entries:
 			curidx		Current index in the stack. When at
diff --git a/runtime/doc/ft_ps1.txt b/runtime/doc/ft_ps1.txt
index df1480b..3eb89a4 100644
--- a/runtime/doc/ft_ps1.txt
+++ b/runtime/doc/ft_ps1.txt
@@ -1,4 +1,4 @@
-*ps1.txt*  A Windows PowerShell syntax plugin for Vim
+*ft_ps1.txt*  A Windows PowerShell syntax plugin for Vim
 
 Author:  Peter Provost <https://www.github.com/PProvost>
 License: Apache 2.0
diff --git a/runtime/doc/ft_raku.txt b/runtime/doc/ft_raku.txt
index 8439de5..00b140e 100644
--- a/runtime/doc/ft_raku.txt
+++ b/runtime/doc/ft_raku.txt
@@ -1,4 +1,4 @@
-*vim-raku.txt*	The Raku programming language filetype
+*ft_raku.txt*	The Raku programming language filetype
 
                                                       *vim-raku*
 
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 00db076..6fdfb85 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 8.2.  Last change: 2021 May 27
+*index.txt*     For Vim version 8.2.  Last change: 2021 Jun 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1312,6 +1312,7 @@
 |:endtry|	:endt[ry]	end previous :try
 |:endwhile|	:endw[hile]	end previous :while
 |:enew|		:ene[w]		edit a new, unnamed buffer
+|:eval|		:ev[al]		evaluate an expression and discard the result
 |:ex|		:ex		same as ":edit"
 |:execute|	:exe[cute]	execute result of expressions
 |:exit|		:exi[t]		same as ":xit"
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index a8ae19c..b50bd65 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -200,9 +200,9 @@
 							*$* *<End>* *<kEnd>*
 $  or <End>		To the end of the line.  When a count is given also go
 			[count - 1] lines downward, or as far is possible.
-			|inclusive| motion.  If a count of 2 of larger is
+			|inclusive| motion.  If a count of 2 or larger is
 			given and the cursor is on the last line, that is an
-			error an the cursor doesn't move.
+			error and the cursor doesn't move.
 			In Visual mode the cursor goes to just after the last
 			character in the line.
 			When 'virtualedit' is active, "$" may move the cursor
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 19ddd9c..05489d7 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 May 31
+*options.txt*	For Vim version 8.2.  Last change: 2021 Jun 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5612,19 +5612,21 @@
 		- abbreviations are disabled
 		- 'autoindent' is reset
 		- 'expandtab' is reset
-		- 'formatoptions' is used like it is empty
+		- 'hkmap' is reset
 		- 'revins' is reset
 		- 'ruler' is reset
 		- 'showmatch' is reset
-		- 'smartindent' is reset
 		- 'smarttab' is reset
 		- 'softtabstop' is set to 0
 		- 'textwidth' is set to 0
 		- 'wrapmargin' is set to 0
+		- 'varsofttabstop' is made empty
 	These options keep their value, but their effect is disabled:
 		- 'cindent'
+		- 'formatoptions' is used like it is empty
 		- 'indentexpr'
 		- 'lisp'
+		- 'smartindent'
 	NOTE: When you start editing another file while the 'paste' option is
 	on, settings from the modelines or autocommands may change the
 	settings again, causing trouble when pasting text.  You might want to
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index c6b4b9e..9e13bdb 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 Jun 11
+*repeat.txt*    For Vim version 8.2.  Last change: 2021 Jun 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -844,6 +844,16 @@
   is reset (because it's not clear what you want to repeat).
 - When you want to use the Ex command with the same name, prepend a colon:
   ":cont", ":next", ":finish" (or shorter).
+							*vim9-debug*
+When debugging a compiled :def function, "step" will stop before every
+executed line, not every ingle nstruction.  Thus it works mostly like a not
+compiled function.  Access to local variables is limited you can use: >
+	echo varname
+But not much else.
+When executing a command that is not a specific bytecode instruction but
+executed like a normal Ex command, "step" will stop once in the compiled
+context, where local variables can be inspected, and once just before
+executing the command.
 
 The backtrace shows the hierarchy of function calls, e.g.:
 	>bt ~
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index 81ced87..8765617 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt*    For Vim version 8.2.  Last change: 2019 May 05
+*rileft.txt*    For Vim version 8.2.  Last change: 2021 Jun 13
 
 
 		  VIM REFERENCE MANUAL    by Avner Lottem
@@ -75,7 +75,7 @@
 
 o  Typing backwards					*ins-reverse*
    ----------------
-   In lieu of using full-fledged the 'rightleft' option, one can opt for
+   In lieu of using the full-fledged 'rightleft' option, one can opt for
    reverse insertion.  When the 'revins' (reverse insert) option is set,
    inserting happens backwards.  This can be used to type right-to-left
    text.  When inserting characters the cursor is not moved and the text
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index ab35aca..da4bf8e 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 8.2.  Last change: 2021 May 30
+*syntax.txt*	For Vim version 8.2.  Last change: 2021 Jun 22
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1420,11 +1420,11 @@
 auto-detecting the *.e and *.E file extensions as Euphoria file type,
 add the following line to your startup file: >
 
-	:let filetype_euphoria="euphoria3"
+	:let filetype_euphoria = "euphoria3"
 
-	or
+<	or >
 
-	:let filetype_euphoria="euphoria4"
+	:let filetype_euphoria = "euphoria4"
 
 
 ERLANG						*erlang.vim* *ft-erlang-syntax*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 5b1457c..2d3bb37 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1384,6 +1384,7 @@
 +scrollbind	various.txt	/*+scrollbind*
 +signs	various.txt	/*+signs*
 +smartindent	various.txt	/*+smartindent*
++sodium	various.txt	/*+sodium*
 +sound	various.txt	/*+sound*
 +spell	various.txt	/*+spell*
 +startuptime	various.txt	/*+startuptime*
@@ -1959,7 +1960,9 @@
 :&	change.txt	/*:&*
 :&&	change.txt	/*:&&*
 :'	cmdline.txt	/*:'*
+:++	vim9.txt	/*:++*
 :,	cmdline.txt	/*:,*
+:--	vim9.txt	/*:--*
 :.	cmdline.txt	/*:.*
 :/	cmdline.txt	/*:\/*
 :0file	editing.txt	/*:0file*
@@ -3964,8 +3967,17 @@
 E1187	starting.txt	/*E1187*
 E1188	cmdline.txt	/*E1188*
 E119	eval.txt	/*E119*
+E1193	options.txt	/*E1193*
+E1194	options.txt	/*E1194*
+E1195	options.txt	/*E1195*
+E1196	options.txt	/*E1196*
+E1197	options.txt	/*E1197*
+E1198	options.txt	/*E1198*
+E1199	options.txt	/*E1199*
 E12	message.txt	/*E12*
 E120	eval.txt	/*E120*
+E1200	options.txt	/*E1200*
+E1201	options.txt	/*E1201*
 E121	eval.txt	/*E121*
 E122	eval.txt	/*E122*
 E123	eval.txt	/*E123*
@@ -6674,6 +6686,8 @@
 ft-zimbu-plugin	filetype.txt	/*ft-zimbu-plugin*
 ft-zsh-syntax	syntax.txt	/*ft-zsh-syntax*
 ft_ada.txt	ft_ada.txt	/*ft_ada.txt*
+ft_ps1.txt	ft_ps1.txt	/*ft_ps1.txt*
+ft_raku.txt	ft_raku.txt	/*ft_raku.txt*
 ft_rust.txt	ft_rust.txt	/*ft_rust.txt*
 ft_sql.txt	ft_sql.txt	/*ft_sql.txt*
 ftdetect	filetype.txt	/*ftdetect*
@@ -8602,7 +8616,6 @@
 ps1-folding	ft_ps1.txt	/*ps1-folding*
 ps1-keyword	ft_ps1.txt	/*ps1-keyword*
 ps1-syntax	ft_ps1.txt	/*ps1-syntax*
-ps1.txt	ft_ps1.txt	/*ps1.txt*
 psql	ft_sql.txt	/*psql*
 ptcap.vim	syntax.txt	/*ptcap.vim*
 pterm-mouse	options.txt	/*pterm-mouse*
@@ -9677,6 +9690,8 @@
 test_garbagecollect_now()	testing.txt	/*test_garbagecollect_now()*
 test_garbagecollect_soon()	testing.txt	/*test_garbagecollect_soon()*
 test_getvalue()	testing.txt	/*test_getvalue()*
+test_gui_drop_files()	testing.txt	/*test_gui_drop_files()*
+test_gui_mouse_event()	testing.txt	/*test_gui_mouse_event()*
 test_ignore_error()	testing.txt	/*test_ignore_error()*
 test_null_blob()	testing.txt	/*test_null_blob()*
 test_null_channel()	testing.txt	/*test_null_channel()*
@@ -10146,7 +10161,6 @@
 vim-modes	intro.txt	/*vim-modes*
 vim-modes-intro	intro.txt	/*vim-modes-intro*
 vim-raku	ft_raku.txt	/*vim-raku*
-vim-raku.txt	ft_raku.txt	/*vim-raku.txt*
 vim-script-intro	usr_41.txt	/*vim-script-intro*
 vim-use	intro.txt	/*vim-use*
 vim-variable	eval.txt	/*vim-variable*
@@ -10157,6 +10171,7 @@
 vim9-classes	vim9.txt	/*vim9-classes*
 vim9-const	vim9.txt	/*vim9-const*
 vim9-curly	vim9.txt	/*vim9-curly*
+vim9-debug	repeat.txt	/*vim9-debug*
 vim9-declaration	vim9.txt	/*vim9-declaration*
 vim9-declarations	usr_46.txt	/*vim9-declarations*
 vim9-differences	vim9.txt	/*vim9-differences*
diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index eef3227..8dc6dc3 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -1,4 +1,4 @@
-*testing.txt*	For Vim version 8.2.  Last change: 2021 Jun 21
+*testing.txt*	For Vim version 8.2.  Last change: 2021 Jun 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2c20cea..0735598 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 Jun 13
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Jun 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,10 +38,13 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Memory eaten up by function returning a closure.  #8439
+Circular reference.  Should garbage collector find unused local variables?
+
 Vim9 - Make everything work:
-- Make debugging work - at least per function.  
-  - How to evaluate the stack and variables on the stack?
-  - FIXME in test_debugger.vim
+- possible leak in test_vim9_builtin ?
+- use CheckLegacyAndVim9Success(lines) in many more places
+- compile get_lambda_tv() in popup_add_timeout()
 - For builtin functions using tv_get_string*() use check_for_string() to be
   more strict about the argument type (not a bool).
     done: balloon_()
@@ -49,13 +52,13 @@
     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().
-- use CheckLegacyAndVim9Success(lines) in many more places
 - Test try/catch and throw better, also nested.
   Test that return inside try/finally jumps to finally and then returns.
 - 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.
-- compile get_lambda_tv() in popup_add_timeout()
+- Unexpected error message when using "var x: any | x.key = 9", because "x" is
+  given the type number.  Can we use VAR_ANY?
 
 Once Vim9 is stable:
 - Add the "vim9script" feature, can use has('vim9script')
@@ -287,6 +290,9 @@
 Add an option to not fetch terminal codes in xterm, to avoid flicker when t_Co
 changes.
 
+MS-Windows: instead of "edit with multiple Vims" use "Edit with Vim in
+multiple tabs". #8404
+
 When using ":bwipe!" also get rid of references to be buffer, e.g. in the
 jumplist and alternate file.
 
@@ -322,6 +328,9 @@
 Should add a match/str/list/pos method that also returns the test and position
 of submatches.  #8355
 
+Syntax highlight for a region does not work with a "nextgroup" if the start
+match is empty. #8449
+
 Check out PR #543 (Roland Puntaier).
 Patch for multibyte characters in langmap and applying a mapping on them.
 (Christian Brabandt, 2015 Jun 12, update July 25)
@@ -346,6 +355,7 @@
 
 Add a ModeChanged autocommand that has an argument indicating the old and new
 mode, as what's returned from mode().  Also used for switching Terminal mode.
+#8360, #7863, #7363
 
 Matchparen doesn't remove highlight after undo. (#7054)
 Is OK when syntax HL is active.
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index 6ca1d74..e8d97a9 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt*	For Vim version 8.2.  Last change: 2021 Jun 12
+*vim9.txt*	For Vim version 8.2.  Last change: 2021 Jun 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -457,7 +457,7 @@
 	var Lambda = (arg) => expression
 
 No line break is allowed in the arguments of a lambda up to and including the
-"=>" (so that Vim can tell the difference between an expression in parenthesis
+"=>" (so that Vim can tell the difference between an expression in parentheses
 and lambda arguments).  This is OK: >
 	filter(list, (k, v) =>
 			v > 0)
@@ -937,6 +937,16 @@
 You may also find this wiki useful.  It was written by an early adopter of
 Vim9 script: https://github.com/lacygoill/wiki/blob/master/vim/vim9.md
 
+							*:++* *:--*
+The ++ and -- commands have been added.  They are very similar to adding or
+subtracting one: >
+		++var
+		var += 1
+		--var
+		var -= 1
+
+Using ++var or --var in an expression is not supported yet.
+
 ==============================================================================
 
 3. New style functions					*fast-functions*
