
рдХрдИ рд▓реЛрдЧ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХреБрдЫ рдЧрд╛рдпрдм рд╣реИ, рдХреБрдЫ рдЫреЛрдЯреА рд╣реИ, рдпрд╛ рдзреАрдореА рд╣реИред рдЕрдЪреНрдЫреА рдЦрдмрд░: рдЖрдкрдХреЗ рдкрд╛рд╕ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рдХрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рджрдо рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред рдЬрд╛рд╡рд╛ рдПрдХ OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреБрдЫ рднреА рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ, рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХреИрд╕реЗ рдХрд░реЗрдВ?
OpenJDK рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдмрдЧ рдЯреНрд░реИрдХрд░ рд╣реИ - JIRA ред рд╡рд╣рд╛рдВ рдЖрдк рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдЬреНрдЮрд╛рдд рд╣реИ рдпрд╛ рдирдИ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЧрд▓реА рдХрд╛ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рд╡рд╣рд╛рдБ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдБ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддрд░реАрдХрд╛ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реБрдзрд╛рд░ рдХрд╛ рд╕реБрдЭрд╛рд╡) рдЬрд╛рд╡рд╛ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдлреЙрд░реНрдо JIRA рдореЗрдВ JI рдЙрдкрд╕рд░реНрдЧ (Java рдЗрд╢реНрдпреВ) рдХреЗ рд╕рд╛рде рдЯрд┐рдХрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЯрд┐рдХрдЯ рдирдВрдмрд░ рдЖрдкрдХреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИ-рдореЗрд▓ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛)ред рдкреНрд░реА-рдореЙрдбрд░реЗрд╢рди рдХреЗ рд╕рдордп, рдЖрдкрдХрд╛ рдЯрд┐рдХрдЯ prying рдЖрдБрдЦреЛрдВ рд╕реЗ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдкреВрд░реНрд╡-рдореЙрдбрд░реЗрд╢рди рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЗрдбреАрдХреЗ рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдФрд░ рд╣рд░ рдХреЛрдИ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╣реИ, рдкрдВрдЬреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЗрдЯрд╛ред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЗрди рд░реВрдкреЛрдВ рдХреЛ рд╕реАрдзреЗ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡реЗрдмрдмрдЧ рд╕рдореВрд╣ рдЯреАрдо рджреНрд╡рд╛рд░рд╛ред рдПрдХ рдЬреЛрдЦрд┐рдо рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕рдВрджреЗрд╢ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рд▓рдЯрдХрд╛ рд░рд╣реЗрдЧрд╛ (рднрд▓реЗ рд╣реА рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ)ред рдпрд╣ рдореЗрд░рд╛ рдЯрд┐рдХрдЯ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реА-рдореЙрдбрд░реЗрд╢рди рдореЗрдВ рд▓рдЯрдХрд╛ рд░рд╣рд╛, рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдУрд░реЗрдХрд▓ рдХреЗ рдПрдХ рдЕрдЪреНрдЫреЗ рджреЛрд╕реНрдд рдХреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рд┐рд▓рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ред рдРрд╕рд╛ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ, рдЖрдкрдХреЗ рдЯрд┐рдХрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдХреЗ рд╕рд╛рде рд╣реБрдЖред рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ OpenJDK рдореЗрдВ рд╣реА рдкреНрд░рдХрдЯ рд╣реБрдИ, рд▓реЗрдХрд┐рди OracleJDK рдореЗрдВ рд╕реНрд╡рдпрдВ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдИ, рдФрд░ рд╡реЗрдмрдмрдЧ рд╕рдореВрд╣ рдиреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рдорд╛рдирд╛ред рдлрд┐рд░, рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдЕрдЪреНрдЫреЗ рджреЛрд╕реНрдд рдХреА рдмрджреМрд▓рдд рд╕рдордЭ рдкрд╛рдпрд╛ред
рдРрд╕рд╛ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдХрдЯ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░реНрд╡-рдореЙрдбрд░реЗрд╢рди рд╕реЗ рдЧреБрдЬрд░ рдЧрдпрд╛ рдФрд░ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдЖрдк рдХрднреА-рдХрднрд╛рд░ https://bugs.openjdk.java.net/browse/JI-xxxxxxx
рдлреЙрд░реНрдо рдХрд╛ URL рдЪреЗрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдВрдд рдореЗрдВ рд╣реИред рдпрджрд┐ рдкреВрд░реНрд╡-рдореЙрдбрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЯрд┐рдХрдЯ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рджреЗрдВ рдЬреЛ рдЗрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЬрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реИ, рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред
рдХреНрдпрд╛ рдХреЛрдИ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИ?
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЙрдЪрд┐рдд рдореЗрд▓рд┐рдВрдЧ-рд╕реВрдЪреА рдореЗрдВ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИред OpenJDK рдХрдИ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╣рд┐рдд рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдиреА рдЪрд╛рд╣рд┐рдПред рд╕реВрдЪреА рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╡реЗ рдореГрдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣реА рдЕрдм рд▓реИрдореНрдмреНрдбрд╛-рджреЗрд╡ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рд╡рд╛ -8 рдХреЗ рд╕рд╛рде рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рд╣реИ рдФрд░ рд╕реВрдЪреА рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╕рдВрдХрд▓рдХ рджреЗрд╡ рдЖрдкрдХреЛ рд╕реВрдЯ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдорддреМрд░ рдкрд░ рд▓реИрдореНрдмреНрдбрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдПрдХ рдЬрд╛рд╡рд╛ рд╕рдВрдХрд▓рдХ рд╕рдорд╕реНрдпрд╛ рд╣реИрдВред
рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рд╕реВрдЪреА рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рд╕рдВрд▓рдЧреНрдирдХ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдХрд╛рдЯреЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ *.txt
рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рднреЗрдЬрддрд╛ рд╣реВрдВ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реВрдЪреА рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдорд╛рд░реНрдЧ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛ред
рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рджреЗрд╢реА рддрд░реАрдХреЗ?
рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреБрдЫ рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреА рд░рд╛рдп рдореЗрдВ, рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреЗрдЧрд╛ред рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдореЗрд▓рд┐рдВрдЧ рдкрддреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╣реА рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд┐рдзрд┐ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЛрдЪ-рд╡рд┐рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЗ рдкрддреНрд░ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ JMH рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред
рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рджреЗрд╢реА рд╡рд┐рдХрд▓реНрдк рд╕реНрдЯреИрдХрдСрд╡рд░рдлреНрд▓реЛ рдХреЗ рд╕рд╛рде рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рд╣реИред рдУрдкрдирдЬреЗрдбрдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдУрд░реЗрдХрд▓ рдХрд░реНрдордЪрд╛рд░реА рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡реЗ рд╕рдм рдХреБрдЫ рдирд╣реАрдВ рдкрдврд╝рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд╡реЗ рдиреЛрдЯрд┐рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдФрд░ рдлрд┐рд░ рдЗрдирд╛рдо рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдмрд╛рдж рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ред рдмреНрд░рд╛рдпрди рдЧреЛрдПрдЯреНрдЬ рдиреЗ рдПрдХ рдмрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реБрдП рдореБрдЭреЗ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЦреБрдж рдПрдХ рдЯрд┐рдХрдЯ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рддрдп рдХрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
рдПрдХ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╡рд┐рджреЗрд╢реА рд╡рд┐рдХрд▓реНрдк рдПрдХ рдЬрд╛рд╡рд╛ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдирд╛ рд╣реИред рдЕрдВрддрд┐рдо рдЬреЗрдкреЛрдЯ рдореЗрдВ, рдХреЗрд░реЗрдорд┐рди рдиреЗ рднрд╛рдЧрдиреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдФрд░ Arrays.asList
рд╕рд╛рде рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдпрд╣ рдЯреВрдЯрддрд╛ рд╣реИ ( рдкреНрд░рд╕реНрддреБрддрд┐ , рд╕реНрд▓рд╛рдЗрдб 69 рдФрд░ рдиреАрдЪреЗ)ред рдЙрдирдХреА рд░рд┐рдкреЛрд░реНрдЯ рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рдирд╣реАрдВ рдерд╛ред рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдлрд▓рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдмрдЧреНрд╕ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП?
рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рд╛рде рдЦреБрдж рдХреЛ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрдЬрд▓реА рдХрд░рддреЗ рд╣реИрдВ? рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред
рд╕рднреА OpenJDK рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рдорд░реНрдХреНрдпреВрд░рд┐рдпрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ ред Jdk9 рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЖрдкрдХреЛ рджреЗрд╡ рднрдВрдбрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Jdk (рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА), рд╣реЙрдЯрд╕реНрдкреЙрдЯ (рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди), рдЖрджрд┐ рдЬреИрд╕реЗ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдПрдХ рдФрд░ рдЪрдпрди рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЬрд╛рд╡рд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, java8 рдореЗрдВ), рд▓реЗрдХрд┐рди java9 рдореЗрдВ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред java9, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ java8 рдЕрдкрдбреЗрдЯ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░реЗрдВ (рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рдЗрдЪреНрдЫрд┐рдд рд▓рд╛рдн рд╣реИрдВ)ред рдЖрда рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЕрднреА рднреА рдХреЗрд╡рд▓ рдиреМ рдореЗрдВ рд╣реА рд╕рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рдЖрда рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЬрд┐рд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЙрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд╡реНрдпрддреАрдд рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ jdk9/dev/jdk
рдПрдХ рдкрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреИрд╕реЗ /src/<jigsaw-module>/share/classes/
jdk9/dev/jdk
/src/<jigsaw-module>/share/classes/
ред
рдпрджрд┐ рдЖрдкрдиреЗ рдХреЛрдб рддрдп рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдкреИрдЪ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдУрдкрдирдЬреЗрдбрдХреЗ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ Kenai рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬрд╛рд╡рд╛ -9 рдХрд╛ рдирд╡реАрдирддрдо рдирд┐рд░реНрдорд╛рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдХреЗрд╡рд▓ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕ рддрд░рд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП java/util
рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП java/util
java.base
рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдЙрдкрдпреЛрдЧ java/util
):
$ javac -Xmodule:java.base -d out/java.base src/java/util
рдФрд░ рдлрд┐рд░ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реВрдВ:
$ java -Xpatch:out MyTest.java
-Xmodule
рдФрд░ -Xpatch
рдЖрд░рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, -Xbootclasspath/p:
рдХрд╛рдо рдХрд┐рдпрд╛, рдЬрд╛рд╡рд╛ -9 рдореЗрдВ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред
рдФрд░ рдЯреЗрд╕реНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ?
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рд╣реА рд╣реЛрдЧрд╛ред OpenJDK рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ jtreg рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдмрд┐рд▓реНрдб рдХреЛ рдЖрдзреЗ рд╕рд╛рд▓ рддрдХ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрд░рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди jtreg рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ jtreg рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдЖрдорддреМрд░ рдкрд░ рдЕрдм TestNG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд main
рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдХрдХреНрд╖рд╛ рд╢реБрд░реВ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕рдореЗрдВ рдкреБрд░рд╛рдиреЗ рдФрд░ рдХрдИ рдкреБрд░рд╛рдиреЗ рдкрд░реАрдХреНрд╖рдг рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Jtreg рдЯреВрд▓ рдЖрдкрдХреЛ рдкреВрд░реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдХреЛ рд╕рд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реЛрддреА рд╣реИрдВред
рдкреИрдЪ рддреИрдпрд╛рд░ рд╣реИ! рдХрд╣рд╛рдВ рднреЗрдЬреЗрдВ?
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЬрд╛рд╡рд╛ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк OpenJDK рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдиреАрдЪреЗ рд╣реИрдВред рдЖрдк рдЙрд╕ рдкрд░ рдЕрд╕рд╛рдзрд╛рд░рдг рд╕рд╛рдзрд╛рд░рдг рдкреИрдЪ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ (рдХрд╣рддреЗ рд╣реИрдВ, рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдПрдХ рдорд╛рдореВрд▓реА рдЯрд╛рдЗрдкреЛ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкреИрдЪ рдлрд╝рд╛рдЗрд▓ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, hg diff -g
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдФрд░ рдЗрд╕реЗ рд╡рд┐рд╖рдп рдореЗрдВ рд╢рдмреНрдж [PATCH]
рд╕рд╛рде рдЙрдкрдпреБрдХреНрдд рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рднреЗрдЬреЗрдВред рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреИрдЪ рдХреЛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдкрддреНрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рд╕реАрдзреЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкреИрдЪ рдХреЗ рд▓рд┐рдП JIRA рдореЗрдВ рдЯрд┐рдХрдЯ рд╣реИ, рддреЛ рдЯрд┐рдХрдЯ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╡рд┐рд╖рдп рдкрдВрдХреНрддрд┐ рдореЗрдВ рднреА рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдкреИрдЪ рдХреЛ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рди рд╣реЛред рдпрджрд┐ рдЖрдкрдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЬрд╡рд╛рдм рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╣рд░ рджреЛ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╡рд┐рдирдореНрд░рддрд╛ рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓рд╛рдд рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рдЧрд▓рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рддрдм рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдмрддрд╛рдИ рдЬрд╛рдПрдЧреА рдХрд┐ рдкреИрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛рдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдкрдХрд╛ рдкреИрдЪ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдЖрдк рдУрд░реЗрдХрд▓ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рд╕рдордЭреМрддреЗ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд╣реАрдВ рдХрд░рддреЗ, рд╡реЗ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЪреВрдВрдХрд┐ рдПрдХ рдмрдбрд╝рд╛ рдирд┐рдЧрдо рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдкреАрдЫреЗ рд╣реИ, рдХрд╛рдиреВрдиреА рдореБрджреНрджреЗ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИрдВред рдЖрдк рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓реЗрдЦрдХ рдХрд╛ рдХреЛрдб рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдУрд░реЗрдХрд▓ рдХреЗ рд╕рд╣-рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рдЦреЛрддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдУрд░реЗрдХрд▓ рд╡рд╣реА рдХрд░реЗрдЧрд╛ рдЬреЛ рд╡рд╣ рдЪрд╛рд╣рддрд╛ рд╣реИ)ред рдЖрдк рд╕рдордЭреМрддреЗ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ (рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рд╣реИ), рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ, рд╕реНрдХреИрди рдХрд░реЗрдВ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдИ-рдореЗрд▓ рдкрд░ рднреЗрдЬреЗрдВред рддреИрдпрд╛рд░ рд░рд╣реЗрдВ рдХрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд╕рдкреНрддрд╛рд╣ рд▓рдЧрддрд╛ рд╣реИред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЖрдкрдХрд╛ рдирд╛рдо рдПрдХ рд▓рдВрдмреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЖрдкрдХреЛ OpenJDK рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рджрд░реНрдЬрд╛ рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкреИрдЪ рдкреНрд░рд╛рдпреЛрдЬрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рд╕реНрддрд░ рдЖрда рдпреЛрдЧрд┐рдиреА рдХреИрд╕реЗ рдмрдиреЗрдВ?
рдЬрдм рдЖрдк рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ 2-3 рдЧреИрд░-рддреБрдЪреНрдЫ рдкреИрдЪ рдзрдХреНрдХрд╛ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк OpenJDK рд▓реЗрдЦрдХ рдХреА рд╕реНрдерд┐рддрд┐ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реАрдбрд░ рдХреЛ рдПрдХ рдкрддреНрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (jdk9 рдореЗрдВ рдпрд╣ рдорд╛рд░реНрдХ рд░реЗрдирд╣реЛрд▓реНрдб рд╣реИ) рдФрд░ рдЕрдкрдиреЗ рдкреИрдЪ рдХреЛ рдХрдорд┐рдЯ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕реВрдЪреАрдмрджреНрдз рдХрд░реЗрдВред рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдирдП рдЕрд╡рд╕рд░ рдЦреБрд▓рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ cr.openjdk.java.net (SSh рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА) рдХреЗ рд▓рд┐рдП sftp рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдк рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдЕрдВрддрддрдГ JIRA рдЦрд╛рддрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рдЕрдм рдЖрдк рдЖрдирдиреНрджрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВ: рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдареАрдХ рд╕реЗ рдХреАрдбрд╝реЗ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рдЙрд╕ рдШрдЯрдХ рдореЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдиреЗ рдкреИрдЪ рднреЗрдЬреЗ рдереЗред рдЖрдк рдмрдЧ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реВрдЪрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЕрдм рд╕реЗ, рдЖрдкрдХрд╛ рдирд╛рдо рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрд╣рд╛рдВ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐, OpenJDK рд▓реЗрдЦрдХ рд╕реНрддрд░ рдкрд░, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдкрдиреЗ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдпреЛрдЬрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдкреИрдЪ рдХреЛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди webrev рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ HTML- e-cs рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯ рдЬрдирд░реЗрдЯ рдХрд░реЗрдВ (рдпрд╣ рдПрдХ ksh-script рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдмрдВрдЯреВ рд╕реЗ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреА рдереА, рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдореИрдВ рдЗрд╕реЗ рдкрд┐рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛)ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╡реЗрдмрд░реЗрд╡ рдЬрдирд░реЗрдЯ рдХрд░рдХреЗ, рдЖрдк рдЗрд╕реЗ рдХреЛрдб-рд╕рдореАрдХреНрд╖рд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдкрд░ рд▓рд┐рдВрдХ рднреЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреЛ рдЕрднреА рднреА рдЕрдкрдирд╛ рдХреЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЦреБрдж рдХрдорд┐рдЯ рдХреЗ рд▓реЗрдЦрдХ рд╣реЛрдВрдЧреЗред
рдЕрдЧрд▓рд╛ рд╕реНрддрд░ OpenJDK рдХрдореЗрдЯреА рд╣реИред рдПрдХ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕ рд╢реАрд░реНрд╖рдХ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдореБрдЦреНрдп рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рдХрдореЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдирд╛рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, jdk9-dev )ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 8 рдЧреИрд░-рддреБрдЪреНрдЫ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдорддрджрд╛рди рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рдХрд┐рд╕реА рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдкреНрд░рд╛рдпреЛрдЬрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЖрдк рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡ рдЦреБрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдпреЛрдЬрд┐рдд рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпрд╣ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдЖрдк OpenJDK рд╕рдореАрдХреНрд╖рдХ рдХреЗ рд╕реНрддрд░ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдпрд╣ рдПрдХ рд╣реА рдмрд╛рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ - рдирд╛рдорд╛рдВрдХрди, рдорддрджрд╛рди, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдЦреНрдд рд╣реИрдВред рдХреЗрд╡рд▓ рд╕рдореАрдХреНрд╖рдХ рдирд╛рдорд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡реЛрдЯ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдкрдХреНрд╖ рдореЗрдВ рдиреНрдпреВрдирддрдо рддреАрди рд╡реЛрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред рдЖрдк рдпрд╣рд╛рдВ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдФрд░ рдЙрдирдХреЗ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЬрд╛рд╡рд╛ рдореЗрдВ рдлрд┐рдХреНрд╕рд┐рдВрдЧ рдмрдЧ, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдк рд╕рдм рдХреБрдЫ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдзреИрд░реНрдп рдФрд░ рджреГрдврд╝рддрд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ API рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЗ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд▓рдкреЗрдЯрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╡рдЬрдирджрд╛рд░ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рд░рд▓ рдмрдЧреЛрдВ рдкрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд▓реЗрдЦрдХ рдмрди рдЬрд╛рддрд╛ рд╣реВрдВред рдЖрдк рд╕рд┐рд░реНрдл JIRA рдореЗрдВ рдЦреБрд▓реЗ рдЯрд┐рдХрдЯреЛрдВ рдореЗрдВ рдЦреБрджрд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рд░рд▓ рд▓рдЧреЗред рдЗрд╕рдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рдЙрдиреНрдирдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдЫреЛрдЯреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рд░реЗрдХ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореБрджреНрджреЗ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рди рд╣реЛрдВ: рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдореЗрдВ рджреЗрдЦреЗрдВред рд╢рд╛рдпрдж рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирдП рдХрд╛рд░рдг рд╣реИрдВред
рдЦреБрд╢реА рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрдХреНрд░рдо рдФрд░ рдЬрд╛рд╡рд╛ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдПрдВ!