Update runtime files
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index e5ff164..e0c0f84 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -31,6 +31,7 @@
 	fold.txt \
 	ft_ada.txt \
 	ft_ps1.txt \
+	ft_raku.txt \
 	ft_rust.txt \
 	ft_sql.txt \
 	gui.txt \
@@ -175,6 +176,7 @@
 	fold.html \
 	ft_ada.html \
 	ft_ps1.html \
+	ft_raku.html \
 	ft_rust.html \
 	ft_sql.html \
 	gui.html \
diff --git a/runtime/doc/ft_raku.txt b/runtime/doc/ft_raku.txt
new file mode 100644
index 0000000..26ada8a
--- /dev/null
+++ b/runtime/doc/ft_raku.txt
@@ -0,0 +1,126 @@
+*vim-raku.txt*	The Raku programming language filetype
+
+                                                      *vim-raku*
+
+Vim-raku provides syntax highlighting, indentation, and other support for
+editing Raku programs.
+
+1. Using Unicode in your Raku files	|raku-unicode|
+
+==============================================================================
+1. Using Unicode in your Raku files                           *raku-unicode*
+
+Defining new operators using Unicode symbols is a good way to make your
+Raku program easy to read. See:
+https://perl6advent.wordpress.com/2012/12/18/day-18-formulas-resistance-is-futile/
+
+While Raku does define ASCII alternatives for some common operators (see
+https://docs.raku.org/language/unicode_ascii), using the full range of
+Unicode operators is highly desirable. Your operating system provides input
+facilities, but using the features built in to Vim may be preferable.
+
+The natural way to produce these symbols in Vim is to use digraph shortcuts
+(:help |digraphs-use|). Many of them are defined; type `:digraphs` to get
+the list. A convenient way to read the list of digraphs is to save them in a
+file. From the shell: >
+        vim +'redir >/tmp/vim-digraphs-listing.txt' +digraphs +'redir END' +q
+
+Some of them are available with standard Vim digraphs:
+	<< «    /0 ∅    !< ≮  ~
+	>> »    Ob ∘    !> ≯  ~
+	., …    00 ∞    (C ⊂  ~
+	(U ∩    -: ÷    )C ⊃  ~
+	)U ∪    (_ ⊆    >= ≥  ~
+	?= ≅    )_ ⊇    =< ≤  ~
+	(- ∈    ?= ≅    != ≠  ~
+	-) ∋    ?- ≃  ~
+
+The Greek alphabet is available with '*' followed by a similar Latin symbol:
+	*p π  ~
+	*t τ  ~
+	*X ×  ~
+
+Numbers, subscripts and superscripts are available with 's' and 'S':
+	0s ₀    0S ⁰  ~
+	1s ₁    1S ¹  ~
+	2s ₂    9S ⁹  ~
+
+But some don´t come defined by default. Those are digraph definitions you can
+add in your ~/.vimrc file. >
+	exec 'digraph \\ '.char2nr('∖')
+	exec 'digraph \< '.char2nr('≼')
+	exec 'digraph \> '.char2nr('≽')
+	exec 'digraph (L '.char2nr('⊈')
+	exec 'digraph )L '.char2nr('⊉')
+	exec 'digraph (/ '.char2nr('⊄')
+	exec 'digraph )/ '.char2nr('⊅')
+	exec 'digraph )/ '.char2nr('⊅')
+	exec 'digraph U+ '.char2nr('⊎')
+	exec 'digraph 0- '.char2nr('⊖')
+	" Euler's constant
+	exec 'digraph ne '.char2nr('𝑒')
+	" Raku's atomic operations marker
+	exec 'digraph @@ '.char2nr('⚛')
+
+Alternatively, you can write Insert mode abbreviations that convert ASCII-
+based operators into their single-character Unicode equivalent. >
+	iabbrev <buffer> !(<) ⊄
+	iabbrev <buffer> !(<=) ⊈
+	iabbrev <buffer> !(>) ⊅
+	iabbrev <buffer> !(>=) ⊉
+	iabbrev <buffer> !(cont) ∌
+	iabbrev <buffer> !(elem) ∉
+	iabbrev <buffer> != ≠
+	iabbrev <buffer> (&) ∩
+	iabbrev <buffer> (+) ⊎
+	iabbrev <buffer> (-) ∖
+	iabbrev <buffer> (.) ⊍
+	iabbrev <buffer> (<) ⊂
+	iabbrev <buffer> (<+) ≼
+	iabbrev <buffer> (<=) ⊆
+	iabbrev <buffer> (>) ⊃
+	iabbrev <buffer> (>+) ≽
+	iabbrev <buffer> (>=) ⊇
+	iabbrev <buffer> (\|) ∪
+	iabbrev <buffer> (^) ⊖
+	iabbrev <buffer> (atomic) ⚛
+	iabbrev <buffer> (cont) ∋
+	iabbrev <buffer> (elem) ∈
+	iabbrev <buffer> * ×
+	iabbrev <buffer> **0 ⁰
+	iabbrev <buffer> **1 ¹
+	iabbrev <buffer> **2 ²
+	iabbrev <buffer> **3 ³
+	iabbrev <buffer> **4 ⁴
+	iabbrev <buffer> **5 ⁵
+	iabbrev <buffer> **6 ⁶
+	iabbrev <buffer> **7 ⁷
+	iabbrev <buffer> **8 ⁸
+	iabbrev <buffer> **9 ⁹
+	iabbrev <buffer> ... …
+	iabbrev <buffer> / ÷
+	iabbrev <buffer> << «
+	iabbrev <buffer> <<[=]<< «=«
+	iabbrev <buffer> <<[=]>> «=»
+	iabbrev <buffer> <= ≤
+	iabbrev <buffer> =~= ≅
+	iabbrev <buffer> >= ≥
+	iabbrev <buffer> >> »
+	iabbrev <buffer> >>[=]<< »=«
+	iabbrev <buffer> >>[=]>> »=»
+	iabbrev <buffer> Inf ∞
+	iabbrev <buffer> atomic-add-fetch ⚛+=
+	iabbrev <buffer> atomic-assign ⚛=
+	iabbrev <buffer> atomic-fetch ⚛
+	iabbrev <buffer> atomic-dec-fetch --⚛
+	iabbrev <buffer> atomic-fetch-dec ⚛--
+	iabbrev <buffer> atomic-fetch-inc ⚛++
+	iabbrev <buffer> atomic-inc-fetch ++⚛
+	iabbrev <buffer> atomic-sub-fetch ⚛−=
+	iabbrev <buffer> e 𝑒
+	iabbrev <buffer> o ∘
+	iabbrev <buffer> pi π
+	iabbrev <buffer> set() ∅
+	iabbrev <buffer> tau τ
+<
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 1f4c7e7..266ab46 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 Apr 16
+*options.txt*	For Vim version 8.2.  Last change: 2021 Apr 17
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/tags b/runtime/doc/tags
index ddc4ce0..2af7217 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -8718,6 +8718,7 @@
 quote~	change.txt	/*quote~*
 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()*
@@ -10129,6 +10130,8 @@
 vim-mac	intro.txt	/*vim-mac*
 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*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 0a00f0f..612e28c 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 Apr 17
+*todo.txt*      For Vim version 8.2.  Last change: 2021 Apr 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -38,22 +38,7 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-make "skiprtp" also omit 'packpath'?
-
-- Implement blob index and slice assignment?
-  Make all of test_blob run in three ways
-
 Vim9 - Make everything work:
-- use CheckLegacyAndVim9Success(lines) in many more places
-- 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)
-- Compile replacement of :s command: s/pat/\=expr/
-- Compile redir to local variable: var_redir_start().
-- Implement type cast at the script level.
 - Compile builtin functions that access local variables:
     islocked()
 - When evaluating constants for script variables, some functions could work:
@@ -70,11 +55,15 @@
 - give an error for "echo Func()" if Func() does not return anything.
 - Using "windo echo expr" does not accept a line break inside "expr" (in a
   :def function and at script level in a not executed block). #7681
-- "assert_fails()" cannot access local variables.  Perhaps add this:
-	assertfails
-	   ... cmd ...
-	endassertfails /E99:.*cmd/
-  Similar to try/catch/endtry but without the boilerplate.
+- use CheckLegacyAndVim9Success(lines) in many more places
+- 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)
+- Allow for using an autoload function name without quotes.  It is then loaded
+  (and compiled) right away.  #8124
 
 Once Vim9 is stable:
 - Change the help to prefer Vim9 syntax where appropriate
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index f1af6be..7781f8e 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt*	For Vim version 8.2.  Last change: 2017 Aug 11
+*usr_12.txt*	For Vim version 8.2.  Last change: 2021 Apr 19
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -180,14 +180,14 @@
 The |:global| command can be combined with the |:move| command to move all the
 lines before the first line, resulting in a reversed file.  The command is: >
 
-	:global/^/m 0
+	:global/^/move 0
 
 Abbreviated: >
 
 	:g/^/m 0
 
 The "^" regular expression matches the beginning of the line (even if the line
-is blank).  The |:move| command moves the matching line to after the mythical
+is blank).  The |:move| command moves the matching line to after the imaginary
 zeroth line, so the current matching line becomes the first line of the file.
 As the |:global| command is not confused by the changing line numbering,
 |:global| proceeds to match all remaining lines of the file and puts each as
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index f0e1ee5..f34891a 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Mar 14
+*usr_41.txt*	For Vim version 8.2.  Last change: 2021 Apr 19
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -115,12 +115,20 @@
 
 FOUR KINDS OF NUMBERS
 
-Numbers can be decimal, hexadecimal, octal or binary.  A hexadecimal number
-starts with "0x" or "0X".  For example "0x1f" is decimal 31.  An octal number
-starts with a zero.  "017" is decimal 15.  A binary number starts with "0b" or
-"0B".  For example "0b101" is decimal 5.  Careful: don't put a zero before a
-decimal number, it will be interpreted as an octal number!
-   The ":echo" command always prints decimal numbers.  Example: >
+Numbers can be decimal, hexadecimal, octal or binary.
+
+A hexadecimal number starts with "0x" or "0X".  For example "0x1f" is decimal
+31.
+
+An octal number starts with "0o", "0O" or a zero and another digit.  "0o17" is
+decimal 15.  Using just a zero prefix is not supported in Vim9 script.
+
+A binary number starts with "0b" or "0B".  For example "0b101" is decimal 5.
+
+A decimal number is just digits.  Careful: don't put a zero before a decimal
+number, it will be interpreted as an octal number in legacy script!
+
+The ":echo" command always prints decimal numbers.  Example: >
 
 	:echo 0x7f 0o36
 <	127 30 ~