% Backrolling does not work for \MakeUppercase (cf. LaTeX News 35)
% \RequirePackage{latexbug}
%\RequirePackage[2022-05-01]{latexrelease}

\documentclass[a4paper]{article}

\usepackage[LGR,T1]{fontenc}
\usepackage{lmodern}

\ifdefined \UnicodeEncodingName
  \usepackage{fontspec}
  \setmainfont{FreeSerif}
  \newcommand*{\texengine}{Xe/LuaLaTeX}
\else
  \usepackage{lmodern}
  \newcommand*{\texengine}{pdfLaTeX}
\fi

% Load encoding definitions
\usepackage[normalize-symbols]{textalpha}  % "Greek script everywhere"

% With TL22, the special handling of Greek UPPERCASE is only triggered
% if the text language is set to "greek" with Babel:
%
\usepackage[greek,english]{babel}  % babel-greek
% \usepackage[greek,english,provide=*]{babel}    % Babel's Greek "ini"
\languageattribute{greek}{polutoniko}  % "modern" polytonic Greek


\usepackage[unicode,colorlinks,linkcolor=blue]{hyperref}
\usepackage{bookmark}

% Auxiliary commands

\newcommand{\langGreek}{\foreignlanguage{greek}}

% print the selected language variant
\newcommand{\GreekLanguageVariant}{%
  \ifx\captionsgreek\captionspolutonikogreek
    \ifx\captionsgreek\captionsancientgreek
      ancient%
    \else
      polutoniko%
    \fi
  \else
    monotoniko%
  \fi
}

% test effect of new implementations on compilation time:
%
% pdflatex from TL22 is about 7 times slower than the version from TL21
% (7s vs. 1s for this document with 13 pages).
% With the dummy definitons,
% \renewcommand{\MakeUppercase}{}
% \renewcommand{\MakeLowercase}{}
% pdflatex from TL22 is a bit faster than before
% (0.7s vs. 1s for this document),

% -----------------------------------------------------------------------

\begin{document}

  \selectlanguage{greek}


\raggedright
            % ἀ   ἁ    ἂ    ἃ    ἄ    ἅ    ἆ    ἇ     Ἀ    Ἁ    Ἂ    Ἃ    Ἄ    Ἅ    Ἆ    Ἇ   \\
  % \lgrfont{>a  <a  >`a  <`a  >'a  <'a  >~a  <~a    >A   <A  >`A  <`A  >'A  <'A  >~A  <~A } \\
            % ἐ   ἑ    ἒ    ἓ    ἔ    ἕ    ␣    ␣     Ἐ    Ἑ    Ἒ    Ἓ    Ἔ    Ἕ             \\
  % \lgrfont{>e  <e  >`e  <`e  >'e  <'e    \:   \:   >E   <E  >`E  <`E  >'E  <'E           } \\
            % ἠ   ἡ    ἢ    ἣ    ἤ    ἥ    ἦ    ἧ     Ἠ    Ἡ    Ἢ    Ἣ    Ἤ    Ἥ    Ἦ    Ἧ   \\
  % \lgrfont{>h  <h  >`h  <`h  >'h  <'h  >~h  <~h    >H   <H  >`H  <`H  >'H  <'H  >~H  <~H } \\
            % ἰ   ἱ    ἲ    ἳ    ἴ    ἵ    ἶ    ἷ     Ἰ    Ἱ    Ἲ    Ἳ    Ἴ    Ἵ    Ἶ    Ἷ   \\
  % \lgrfont{>i  <i  >`i  <`i  >'i  <'i  >~i  <~i    >I   <I  >`I  <`I  >'I  <'I  >~I  <~I } \\
            % ὀ   ὁ    ὂ    ὃ    ὄ    ὅ    ␣    ␣     Ὀ    Ὁ    Ὂ    Ὃ    Ὄ    Ὅ             \\
  % \lgrfont{>o  <o  >`o  <`o  >'o  <'o    \:   \:   >O   <O  >`O  <`O  >'O  <'O           } \\
            % ὐ   ὑ    ὒ    ὓ    ὔ    ὕ    ὖ    ὗ     ␣    Ὑ    ␣    Ὓ    ␣    Ὕ    ␣    Ὗ   \\
  % \lgrfont{>u  <u  >`u  <`u  >'u  <'u  >~u  <~u     \:  <U    \: <`U    \: <'U    \: <~U } \\
            % ὠ   ὡ    ὢ    ὣ    ὤ    ὥ    ὦ    ὧ     Ὠ    Ὡ    Ὢ    Ὣ    Ὤ    Ὥ    Ὦ    Ὧ   \\
  % \lgrfont{>w  <w  >`w  <`w  >'w  <'w  >~w  <~w    >W   <W  >`W  <`W  >'W  <'W  >~W  <~W } \\
            % ὰ   ά    ὲ    έ    ὴ    ή    ὶ    ί     ὸ    ό    ὺ    ύ    ὼ    ώ             \\
  % \lgrfont{`a  'a   `e   'e   `h   'h   `i   'i    `o   'o   `u   'u   `w   'w           } \\
            % ᾀ   ᾁ    ᾂ    ᾃ    ᾄ    ᾅ    ᾆ    ᾇ     ᾈ    ᾉ    ᾊ    ᾋ    ᾌ    ᾍ    ᾎ    ᾏ   \\
  % \lgrfont{>a| <a| >`a| <`a| >'a| <'a| >~a| <~a|   >A|  <A| >`A| <`A| >'A| <'A| >~A| <~A|} \\
            % ᾐ   ᾑ    ᾒ    ᾓ    ᾔ    ᾕ    ᾖ    ᾗ     ᾘ    ᾙ    ᾚ    ᾛ    ᾜ    ᾝ    ᾞ    ᾟ   \\
  % \lgrfont{>h| <h| >`h| <`h| >'h| <'h| >~h| <~h|   >H|  <H| >`H| <`H| >'H| <'H| >~H| <~H|} \\
            % ᾠ   ᾡ    ᾢ    ᾣ    ᾤ    ᾦ    ᾧ    ᾥ     ᾨ    ᾩ    ᾪ    ᾫ    ᾬ    ᾭ    ᾮ    ᾯ   \\
  % \lgrfont{>w| <w| >`w| <`w| >'w| <'w| >~w| <~w|   >W|  <W| >`W| <`W| >'W| <'W| >~W| <~W|} \\
            % ᾰ   ᾱ    ᾲ    ᾳ    ᾴ    ␣    ᾶ    ᾷ     Ᾰ    Ᾱ    Ὰ    Ά    ᾼ    ᾽    ι    ᾿   \\
% \lgrfont{\u{a} \=a  `a|   a|  'a|   \:  ~a   ~a| \u{A} \=A   `A   'A    A|   >    |    > } \\
            % ῀   ῁    ῂ    ῃ    ῄ    ␣    ῆ    ῇ     Ὲ    Έ    Ὴ    Ή    ῌ    ῍     ῎   ῏   \\
\lgrfont{~   "~   `h|   h|  'h|   
         % \:  ~h   ~h|   `E   
         % 'E   `H   'H    H|   >`   >'  ~> 
	} \\
            % ῐ   ῑ    ῒ    ΐ    ␣    ␣    ῖ    ῗ     Ῐ    Ῑ    Ὶ    Ί    ␣    ῝     ῞   ῟   \\
% \lgrfont{\u{i} \=i `"i  '"i    \:   \:  ~i  ~"i  \u{I} \=I   `I   'I    \:  <`    <'  ~< } \\
            % ῠ   ῡ    ῢ    ΰ    ␣    ␣    ῤ    ῥ     ῦ    ῧ    Ὺ    Ύ    Ῥ    ῭     ΅   `   \\
% \lgrfont{\u{u} \=u `"u  '"u    \:   \:  >r   <r    ~u  ~"u   `U   'U   <R   `"    '"   ` } \\
            %  ␣   ␣   ῲ    ῳ    ῴ    ␣    ῶ    ῷ     Ὸ    Ό    Ὼ    Ώ    ῼ    ´     ῾       \\
  % \lgrfont{  \:  \: `w|   w|  'w|   \:  ~w   ~w|   `O   'O   `W   'W    W| '   < }



\end{document}
