рдХрд▓, 23 тАЛтАЛрдордИ рдХреЛ, рдкрд░реНрд▓ 5.30.0 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдЦрдмрд░ рдХреА рдШреЛрд╖рдгрд╛ perl.perl5.porters Usenet рдиреЗ рдкрд░реНрд▓ рдХреЗ рдкреНрд░рдореБрдЦ рдбреЗрд╡рд▓рдкрд░реНрд╕, рд╕реЙрдпрд░ рдПрдХреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдереАред
рдкрд┐рдЫрд▓реА рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, 5.28.0, 11 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рдХреА рдЧрдИ, рдХреЛрдб рдХреА рд▓рдЧрднрдЧ 620,000 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛, рдмрджрд▓рд╛рд╡реЛрдВ рдиреЗ 1300 рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛, 58 рд▓реЗрдЦрдХреЛрдВ рдиреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ (рдХреЗрд╡рд▓ .pm, .t, .c рдФрд░ .h рдлрд╝рд╛рдЗрд▓реЗрдВ) ~ 510,000 рд▓рд╛рдЗрдиреЛрдВ рдФрд░ 750 рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реИред
рдЕрдЧрд▓реА рд╢рд╛рдЦрд╛ 5.31 рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЦреБрд▓рд╛ рд╣реИред рдЕрдЧрд▓реА рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬ рдордИ 2020 рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред
рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди:
- рдкрд░реНрд▓ рдПрдкреАрдЖрдИ рд╕реА рдлрд╝рдВрдХреНрд╢рди sv_utf8_downgrad рдФрд░ sv_utf8_decode рдЕрдм рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЪрд░-рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реА рджрд┐рдЦрд╛рд╡рдЯреА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд░реНрдерди, рдЬреИрд╕реЗ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "(! <= рдлреВ?" рдФрд░ "" (? <! Ba {1,9} r) "(рдкрд╣рд▓реЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг)
- рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ "{m, n}" рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдЖрдХрд╛рд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдХ ("n") рдХрд╛ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 32767 рд╕реЗ рдмрдврд╝рд╛рдХрд░ 65534 рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдпреВрдирд┐рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди 12.1ред
- рд╕реАрдорд┐рдд рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд╕рдорд░реНрдерди рдпреВрдирд┐рдХреЛрдб рд╕рдВрдкрддреНрддрд┐ рдореВрд▓реНрдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ (рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рд╣реИ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "qr! \ P {nv = / (? X) \ A [0-5] \ z /}!" рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдпреВрдирд┐рдХреЛрдб рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдерд╛рдИ рдпрд╛ рдмрдВрдЧрд╛рд▓реА рдЕрдВрдХреЛрдВ рд╕рд╣рд┐рдд 0 рд╕реЗ 5 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
- Qr '\ N {name}' рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдирд╛рдо рд╡рд░реНрдг; рдкрд╣рд▓реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ regexp рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИ)ред
- рдЕрдм рдЖрдк рдХреЗрд╡рд▓ рдерд▓-рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реНрд▓ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (-Accflags = '- DUSE_THREAD_SAFE_LOCALE')ред
- рдЭрдВрдбреЗ рдХрд╛ рд╕рдВрдпреЛрдЬрди "-Dv" (рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдЖрдЙрдЯрдкреБрдЯ) рдФрд░ "-Dr" (рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдбрд┐рдмрдЧрд┐рдВрдЧ) рдЕрдм рдирд┐рдпрдорд┐рдд рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд╕рднреА рд╕рдВрднрд╡ рдбреАрдмрдЧрд┐рдВрдЧ рдореЛрдб рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
- рдкреИрдХ () рдЕрдорд╛рдиреНрдп рдпреВрдирд┐рдХреЛрдб рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреА рд╡рд╛рдкрд╕реА рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдлрд╝реАрдЪрд░ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди:
- рд╡рд┐рд╢реЗрд╖ рдЪрд░ $ [ (рд╕рд░рдгреА рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ) рдореЗрдВ рдПрдХ рдЧреИрд░-рдЕрдХреНрд╖реАрдп рдорд╛рди рджреЗрдиреЗ рд╕реЗ рдЕрдм рдПрдХ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред
- рд▓рд╛рдЗрдиреЛрдВ рдФрд░ рдкреИрдЯрд░реНрди рдХреЗ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдм рдХреЗрд╡рд▓ рдЕрдВрдЧреВрд░ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред (рдпреВрдирд┐рдХреЛрдб рдпреМрдЧрд┐рдХ рд╡рд░реНрдг рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВ)ред
- рдкрд╣рд▓реЗ рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдмрд╛рдПрдВ рдмреНрд░реИрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рдЕрдкреНрд░рдЪрд▓рд┐рдд рддрд░реАрдХреЗ "{" рдореЗрдВ рд░реЗрдЧреЗрдХреНрд╕ рдкреИрдЯрд░реНрди рдЕрдм рдирд┐рд╖рд┐рджреНрдз рд╣реИрдВред
- рд╣реИрдВрдбрд▓ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп sysread (), syswrite (), send (), рдпрд╛ recv () рдХреЙрд▓ рдХрд░рдирд╛: utf8 рдЕрдм рдПрдХ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╣реИред
- рдпрд╣ "рдорд┐рдердХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЧрд▓рдд рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╕рд╢рд░реНрдд рдмрдпрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд╖рд┐рджреНрдз рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдореЗрд░рд╛ $ x рдЕрдЧрд░ 0")ред
- рд╡рд┐рд╢реЗрд╖ рдЪрд░ $ * (рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдЦреЛрдЬ) рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛рдП рдЧрдП рд╕рдорд░реНрдердиред рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк "/ s" рдФрд░ "/ m" рд╣реИрдВред
- рд╡рд┐рд╢реЗрд╖ рдЪрд░ $ # (рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рд╕реНрд╡рд░реВрдкрд┐рдд рдЖрдЙрдЯрдкреБрдЯ) рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛рдП рдЧрдП рд╕рдорд░реНрдердиред
- рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдбрдВрдк () рдХреЛ рдЕрдм рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдХреЛрд░: рдбрдВрдк)ред
- рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ :: рдлрд╝рд╛рдЗрд▓ :: рдЧреНрд▓реЛрдм :: рдЧреНрд▓реЛрдм (рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :: рдЧреНрд▓реЛрдм :: bsd_glob)ред
- рдЗрд╕реЗ рдореИрдХреНрд░реЛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА рдЬреЛ рдХрд┐ рдПрдХреНрд╕рдПрд╕ рдХреЛрдб (рд╕реА рдмреНрд▓реЙрдХ) рдореЗрдВ рдпреВрдЯреАрдПрдл -8 рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЗрд╕реЗ 5.32 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред
рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░:
- UTF-8 рдХрд╛ рдХреЛрдб рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж (рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЕрдм рдПрдХ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рднреА рдмрдврд╝рд╛рддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ord ("\ x7fff") рдХреЛ рдЕрдм 12% рдХрдо рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред UTF-8 рдЪрд░рд┐рддреНрд░ рдЕрдиреБрдХреНрд░рдо рд╕рддреНрдпрд╛рдкрди рднреА рдПрдХ рд░рд╛рдЬреНрдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рддреЗрдЬ рд╣реЛрддрд╛ рд╣реИред
- рдлрд╝рд╛рдЗрдирд▓реА_рдУрдк () рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреЙрд▓ред
- рд╕рдорд╛рди рд╡рд░реНрдгреЛрдВ рдХреЛ рддрд╣ рдХрд░рдиреЗ рдФрд░ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╡рд░реНрдг рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЗ рд▓рд┐рдП рдорд╛рдореВрд▓реА рдЕрдиреБрдХреВрд▓рди рдХрд┐рдП рдЧрдП рд╣реИрдВред
- рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд (IV to UV) рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ рдХреЗ рдмрдЬрд╛рдп рджреЛ рдЕрдВрдХреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- LGTM рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рд╕реБрдзрд╛рд░ рд╣реБрдЖред
- Regcomp.c, regcomp.h рдФрд░ regexec.c рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдХреЛрдбред
- "рдХреНрдпреВрдЖрд░ / [^ рдП] /" рдлреЙрд░реНрдо рдХреЗ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдорд┐рд▓рд╛рди рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рддреЗрдЬреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ "рдП" рдПрдХ рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ рдЪрд░рд┐рддреНрд░ рд╣реИ (рдЧреИрд░-рдПрдПрд╕рд╕реАрдЖрдИрдЖрдИ "рдП" рдорд╛рдорд▓реЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рднреА рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд)ред