
рдПрд▓рдбреАрд╕реА рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдиреЗ
рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖
рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдбреА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.19.0 рдХреЗ рд╕рд╛рде рдмрдВрдж рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдХреЛрд░ рдЯреАрдо рдиреЗ
рдбреАрдПрдордбреА рд╕рдВрджрд░реНрдн рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.090.0 рдХреЗ рд╕рд╛рде рдирдП рд╕рд╛рд▓ рдХреА рд╢реБрд░реБрдЖрдд рдХреАред рдФрд░ рдЕрдЧрд░ рдЖрдкрдиреЗ рдирд╣реАрдВ рд╕реБрдирд╛ рд╣реИ, рддреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ
рдЬреАрд╕реАрд╕реА, рдЬреАрдбреАрд╕реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдбреА-рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдмрд░ рдирд╣реАрдВ рдереАред рдореЗрдХ рдЕрдк!
рдПрд▓рдбреАрд╕реА 1.19.0
рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ LDC рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдПрдХ рдЕрджреНрдпрддрди рд╣реИ, рдЬреЛ рдлреНрд░рдВрдЯрдПрдб 2.089.1 рдХреЗ рд╕рдВрд╕реНрдХрд░рдг D рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ рдХреИрдереЛрд▓рд┐рдХ рдХреНрд░рд┐рд╕рдорд╕ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдерд╛ред рдЗрдХрдЯреНрдареЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛
LLVM 9.01 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ ред
рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдореБрдЦреНрдп рдЖрдХрд░реНрд╖рдг рдореЗрдВ Android рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╣рд╛рдиреБрднреВрддрд┐ рд╣реИред рд░реЗрдбреАрдореЗрдб DRuntime / Phobos рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдм рд╕рднреА Android рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ
рдПрдбрдо рд░реБрдкреЗ рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рдбреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╕рдВрдХрд▓рди рд╣реИ, рдЬреЛ
рдЕрдм рдПрд▓рдбреАрд╕реА рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдбреА рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП
рдмреАрдЯрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рд╣реИ ред
рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП MinGW- рдЖрдзрд╛рд░рд┐рдд рд▓рд┐рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЕрдм рд╡реЗ
MinGW-w64 7.0.0 рдкреИрдХреЗрдЬ рд╕реЗ
.def рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдирд┐рдХрд▓реЗ рд╣реИрдВред рдпреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ Windows SDK рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред
DMD 2.090.0
рдбреАрдПрдордбреА рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА
рдШреЛрд╖рдгрд╛ 7 рдЬрдирд╡рд░реА рдХреЛ рдХреА рдЧрдИ рдереА ред рд╡рд╣ 10 рдкреНрд░рдореБрдЦ рдмрджрд▓рд╛рд╡реЛрдВ рдФрд░
71 рдмрдВрдж рдмрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рд╣рд░ рдЖрдИрдВ
, рдХреГрдкрдпрд╛ 48 рд╕рд╣-рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ ред
рдЗрд╕ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдЖрд▓рд╕реА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдм рдЕрдзрд┐рдХ рд╕рдВрднрд╡ рд╣реИред
рдбреА рдХреЗ рдкрд╛рд╕ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдЖрд▓рд╕реА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ :
рдЬрдм рддрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рддрдХ рдЖрд▓рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рддрд░реНрдХ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрд░реНрдХ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм / рдЬрдм рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЖрд▓рд╕реА рддрд░реНрдХ рдХреЛ 0 рдпрд╛ рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣реБрдб рдХреЗ рддрд╣рдд, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдм рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░ рдкрддрд╛ рд▓реЗрдХрд░ рдЖрдзрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкрд╣рд▓реЗ рдирд┐рд╖рд┐рджреНрдз рдерд╛ред
import std.stdio; void chillax(lazy int x) { auto dg = &x; assert(dg() == 10); writeln(x); } void main() { chillax(2 * 5); }
рдпрд╣ рд░рд┐рд▓реАрдЬрд╝ рдЙрди рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП
рдореБрд╣рд╛рд╡рд░реЗ рдХреЛ рднреА рдЕрдкреНрд░рдЪрд▓рд┐рдд рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ (рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреИрд░-рдирд┐рдпрддрд╛рддреНрдордХ рд╡рд┐рдирд╛рд╢, рдЖрдорддреМрд░ рдкрд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ) рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдирд╛рд╢ (рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдХ рд╡рд┐рдирд╛рд╢) рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЬреАрд╕реА рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрдиреЗ рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рднреА рдЬреАрд╕реА рд╕рдВрдЪрд╛рд▓рди рдирд┐рд╖рд┐рджреНрдз рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╛рдЗрдирд▓ рдФрд░ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЗрд╡рд▓
~ рдпрд╣ рд╣реИ , рдЬрд┐рд╕реЗ рдПрдХ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рджреЛрдиреЛрдВ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрднреА-рдХрднреА рдЬреАрд╕реА рдФрд░ рдЧреИрд░-рдЬреАрд╕реА рдЖрд╡рдВрдЯрди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд╛рд╢рдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реИред рд╕рдлрд╛рдИ рдХреЗ рджреМрд░рд╛рди GC рдХреЛ рдХреЛрдИ рднреА рдХреЙрд▓ рдПрдХ InvalidMemoryOperationError рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдЙрдкрд░реНрдпреБрдХреНрдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рд╣реИред
рдЕрдм рдЖрдк рдЕрдкрдиреЗ рд░рд╛рдЬреНрдп рдХреЛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░ GC рдлрд╝рдВрдХреНрд╢рди, core.memory.GC.inFinalizer рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рдЖрдк рдЬреАрд╕реА рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд╛рд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдИ рднреА рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред (рдореИрдВ
рдЕрдкрдиреА рдЬреАрд╕реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛)ред
рдЬреАрдбреАрд╕реА
рдЬреЗрдирд╛ рдмрдХрд▓реЛрдЙ, рдЬреЛрд╣рд╛рдиреНрд╕ рдкрдлрд╛рдЙ рдФрд░ рдЙрди рд╕рднреА рд╕реНрд╡рдпрдВрд╕реЗрд╡рдХреЛрдВ рдХреА рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╕рдорд░реНрдерди рдФрд░ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рдЬреАрдбреАрд╕реА
рдХреЛ 2018 рдХреЗ рдЕрдВрдд рдореЗрдВ
рдЬреАрд╕реАрд╕реА 9 рдореЗрдВ
рднрд░реНрддреА рдХрд░рд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдкрд┐рдЫрд▓реЗ рдордИ рдореЗрдВ рдЬреАрд╕реАрд╕реА 9.1 рдХрд┐рдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЧрдпрд╛ред рдЬреАрд╕реАрд╕реА 9.2 рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЕрдЧрд╕реНрдд рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЬреАрдбреАрд╕реА рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.076 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЖрдк
рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЗрд╕реЗ рдЙрд╕реА рд╕реНрдерд╛рди рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЬреАрд╕реАрд╕реА 9. рдПрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИред
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ
рдмреНрд▓реЙрдЧ рдХреЗ рдЗрд╕ рдореБрджреНрджреЗ рдиреЗ рдбреА, рдЦреИрд░, рдЖрд▓реЛрдЪрдирд╛ рдХреЗ рдЕрдкрд╡рд╛рдж рдФрд░ IDE рдХреЗ рд╕рд╛рде рдорд╛рдорд▓реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рд╕рд╣рд┐рдд, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкрд░ рдЖрдЧрд╛рдореА рд▓реЗрдЦ рд╕реЗ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреНрд▓реЙрдХ рдХреЛ рд░реЛрдХ рджрд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рдХрд▓рд╛ред