xepersian should not use fontspec internals
Brief outline of the issue
In the expl3 coding conventions, variables and functions with double underscores are "private" and should not be used by third-party code.
Case in point, a recent update to fontspec has broken xepersian because an internal variable name has changed (\l__fontspec_nfss_enc_tl
).
Minimal example showing the issue
\documentclass{article}
\usepackage{xepersian}
\settextfont{Yas}
\begin{document}
\end{document}
Log and PDF files
! Undefined control sequence.
<argument> ...tencoding {\l__fontspec_nfss_enc_tl
Solution
It's not clear to me why xepersian needs to use fontspec internals here. I think that the "public" API \fontspec_new_family:Nnn
should be enough (perhaps in combination with the NFSSFamily=
option to explicitly set the \fontfamily
you want to assign.
But if it's not, please open an issue in the fontspec repository and I can provide more supported hooks into fontspec.