Is it possible to force Gvim to use python38.dll or it should be recompiled with python 3.8? Probably if I install the Python3.6 it will work. Is it necessary to recomile every time there is new version of python?
Yes in order to use python 3.8 vim api, vim has to be built with python 3.8. Which is inconvenient indeed. For windows I usually install official nightly releases (usually they are pretty much stable though). And they use recent python dlls there.
To use the Python interface the Python DLL must be in your search path. In a
console window type "path" to see what directories are used. The 'pythondll'
or 'pythonthreedll' option can be also used to specify the Python DLL.
The name of the DLL should match the Python version Vim was compiled with.
Currently the name for Python 2 is "python27.dll", that is for Python 2.7.
That is the default value for 'pythondll'. For Python 3 it is python36.dll
(Python 3.6). To know for sure edit "gvim.exe" and search for