GraalVM рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рд░рд┐рд▓реАрдЬрд╝ 19.3.0 рдФрд░ рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Python, JavaScript, Ruby рдФрд░ R рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдУрд░реЗрдХрд▓ рдХрдВрдкрдиреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рд╡рд┐рдореЛрдЪрди рдЧреНрд░реЗрд▓рд╡реАрдПрдо 19.3.0, рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдиреЛрдб.рдЬреЗрдПрд╕), рдкрд╛рдпрдерди, рд░реВрдмреА, рдЖрд░, рдЬреЗрд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ (рдЬрд╛рд╡рд╛, рд╕реНрдХрд╛рд▓рд╛, рдХреНрд▓реЛрдЬрд░, рдХреЛрдЯрд▓рд┐рди) рдФрд░ рдЙрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╕реА, рд╕реА ++) , рдЬрдВрдЧ)ред 19.3 рд╢рд╛рдЦрд╛ рдХреЛ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд░реНрдерди (рдПрд▓рдЯреАрдПрд╕) рд░рд┐рд▓реАрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд┐рд▓рдХреНрд╖рдг рд╕рд╣рдпреЛрдЧ рдЬреЗрдбреАрдХреЗ 11, рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ (GraalVM рдиреЗрдЯрд┐рд╡ рдЗрдореЗрдЬ) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд GPLv2 рдХреЗ рдЕрдВрддрд░реНрдЧрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрддред рдЙрд╕реА рд╕рдордп, GraalVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд░реВрдмреА рдФрд░ рдЖрд░ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП - рдЧреНрд░реЗрд▓рдкрд╛рдЗрдереЙрди, рдЧреНрд░реЗрд▓рдЬреЗрдПрд╕, рдЯреНрд░рдлрд▓рд░реВрдмреА ╨╕ рдлрд╛рд╕реНрдЯрдЖрд░.

рдЧреНрд░реЗрд▓рд╡реАрдПрдо рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдПрдХ рдЬреЗрдЖрдИрдЯреА рдХрдВрдкрд╛рдЗрд▓рд░ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд░реВрдмреА, рдкрд╛рдпрдерди рдФрд░ рдЖрд░ рд╕рд╣рд┐рдд рдЬреЗрд╡реАрдПрдо рдореЗрдВ рддреБрд░рдВрдд рдХрд┐рд╕реА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдореВрд▓ рдХреЛрдб рдХреЛ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред GraalVM рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдореЗрдВ рдПрдХ рднрд╛рд╖рд╛-рд╕реНрд╡рддрдВрддреНрд░ рдбрд┐рдмрдЧрд░, рдПрдХ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдПрдХ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред GraalVM рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХреЛрдб рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред JVM-рдЖрдзрд╛рд░рд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╣рд╛рдБ рд╣реИ рдЕрд╡рд╕рд░ рдорд╢реАрди рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдирд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдиреНрдпреВрдирддрдо рдореЗрдореЛрд░реА рдЦрдкрдд рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореЗрдореЛрд░реА рдФрд░ рдереНрд░реЗрдб рдкреНрд░рдмрдВрдзрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рдмреНрд╕рдЯреНрд░реЗрдЯ рд╡реА.рдПрдо).

GraalJS рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди:

  • Node.js 12.10.0 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЧрдИ рд╣реИ;
  • рдЧреИрд░-рдорд╛рдирдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЧреБрдг рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИрдВ:
    рдЧреНрд▓реЛрдмрд▓ (рдЧреНрд▓реЛрдмрд▓рджрд┐рд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд, рдЬреЗрдПрд╕.рдЧреНрд▓реЛрдмрд▓-рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░рдирд╛), рдкреНрд░рджрд░реНрд╢рди (рдЬреЗрдПрд╕.рдкрд░рдлреЙрд░реНрдореЗрдВрд╕), рдкреНрд░рд┐рдВрдЯ рдФрд░ рдкреНрд░рд┐рдВрдЯрдПрд░рд░ (рдЬреЗрдПрд╕.рдкреНрд░рд┐рдВрдЯ);

  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд Promise.allSettled рдФрд░ nullish Coalescing рдкреНрд░рд╕реНрддрд╛рд╡, рдЬреЛ ECMAScript 2020 рдореЛрдб ("-js.ecmascript-version=2020") рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ;
  • рдЕрджреНрдпрддрди рдирд┐рд░реНрднрд░рддрд╛рдПрдБ ICC4J рд╕реЗ 64.2, ASM рд╕реЗ 7.1ред

рдкрд░рд┐рд╡рд░реНрддрди рдЧреНрд░реЗрд▓рдкрд╛рдпрдерди рдореЗрдВ:

  • рд╕реНрдЯрдмреНрд╕ gc.{enable,disable,isenabled} рдЬреЛрдбрд╝реЗ рдЧрдП, рдЪрд╛рд░реНрдореИрдк_рдмрд┐рд▓реНрдб, sys.hexversion рдФрд░ _lzma рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП;
  • рдЕрджреНрдпрддрди рдкрд╛рдпрдерди 3.7.8 рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп;
  • NumPy 1.16.4 рдФрд░ Pandas 0.25.0 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛;
  • рдЯрд╛рдЗрдордЗрдЯ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛;
  • рд╕реЙрдХреЗрдЯ.рд╕реЙрдХреЗрдЯ рдХреЛ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ "graalpython -m http.server" рдЪрд▓рд╛рдиреЗ рдФрд░ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб (рдЯреАрдПрд▓рдПрд╕ рдХреЗ рдмрд┐рдирд╛) http рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  • рдкрд╛рдВрдбрд╛.рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдареАрдХ рдХреА рдЧрдИрдВред
    рдмрд╛рдЗрдЯреНрд╕.рд╕реНрдЯрд╛рд░реНрдЯреНрд╕рд╡рд┐рде рдореЗрдВ рдЯреБрдкрд▓реНрд╕ рдХреА рдЧрд▓рдд рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ,
    рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХрд╛рд░реА рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдФрд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП dict.__contains__ рдХрд╛ рдЙрдкрдпреЛрдЧ;

  • Ast.PyCF_ONLY_AST рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреЛ рдЕрдиреБрдорддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд╛рдЗрдЯреЗрд╕реНрдЯ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;
  • рдЬреЛрдбрд╝рд╛ рд╕рдорд░реНрдерди рдкреАрдИрдкреА 498 (рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди);
  • рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╕рд╛рдорд╛рдиреНрдп рдкрд╛рдпрдерди рдЖрдпрд╛рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреЗрд╡реАрдПрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдФрд░ рдкрд╛рдпрдерди рдХреЛрдб рд╕реЗ рдЬреЗрд╡реАрдПрдо рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "--python.EmlateJython" рдзреНрд╡рдЬ;
  • рдмреЗрд╣рддрд░ рдкрд╛рд░реНрд╕рд░ рдкреНрд░рджрд░реНрд╢рди, рдЕрдкрд╡рд╛рдж рдХреИрд╢рд┐рдВрдЧ,
    JVM рдХреЛрдб рд╕реЗ Python рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдБрдЪрдирд╛ред рдкрд╛рдпрдерди рдХреЛрдб рдФрд░ рдиреЗрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдкрд░рд┐рдгрд╛рдо (рдПрд▓рдПрд▓рд╡реАрдПрдо рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдиреЗрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рдЯрдХреЛрдб рдПрд▓рдПрд▓рд╡реАрдПрдо рдЬреЗрдЖрдИрдЯреА рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрд▓рд╡реАрдПрдо рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдкрд░рд┐рд╡рд░реНрддрди рдЯреНрд░рдлрд▓рд░реВрдмреА рдореЗрдВ:

  • рдиреЗрдЯрд┐рд╡ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдм рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрд▓рдПрд▓рд╡реАрдПрдо рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдиреЗрдЯрд┐рд╡ рдХреЛрдб рдФрд░ рдмрд┐рдЯрдХреЛрдб рджреЛрдиреЛрдВ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдореВрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдВрдЧреА;
  • TruffleRuby рдореЗрдВ рджреЗрд╢реА рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ LLVM рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди;
  • TruffleRuby рдкрд░ C++ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм libc++ рдФрд░ libc++abi рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ;
  • рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЛ EPL 2.0/GPL 2.0/LGPL 2.1 рдореЗрдВ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╣рд╛рд▓ рд╣реА рдореЗрдВ JRuby рдХреЗ рд╕рдорд╛рди;
  • GC.stat рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛;
  • Kernel#load рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рд░реИрдкрд░ рдХреЗ рд╕рд╛рде рдФрд░ Kernel#spawn рдХреЛ :chdir; рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
  • rb_str_drop_bytes рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ OpenSSL рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ;
  • рд░реЗрд▓ 6 рдореЗрдВ рдирдИ рд░реЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рд░рддреНрдиреЛрдВ рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ;
  • рдореВрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЭрдВрдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдПрдордЖрд░рдЖрдИ рдореЗрдВ;
  • рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдореЗрдореЛрд░реА рдЦрдкрдд рдХрдо рдХрд░ рджреА рдЧрдИ рд╣реИред

рдкрд░рд┐рд╡рд░реНрддрди рдлрд╛рд╕реНрдЯрдЖрд░ рдореЗрдВ:

  • рдЖрд░ 3.6.1 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреА рдЧрдИ рд╣реИ;
  • рдПрд▓рдПрд▓рд╡реАрдПрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдореВрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рджреЗрд╢реА рдЖрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╕рдордп, рдлрд╛рд╕реНрдЯрдЖрд░ рдХреЛ рдЧреНрд░реЗрд▓рд╡реАрдПрдо рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдПрд▓рдПрд▓рд╡реАрдПрдо рдЯреВрд▓реАрдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдореА рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдореВрд▓ рдХреЛрдб рдФрд░ рдПрд▓рдПрд▓рд╡реАрдПрдо рдмрд┐рдЯрдХреЛрдб рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред

    рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдкреИрдХреЗрдЬ рднреА рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВред
    рдлрд╛рд╕реНрдЯрдЖрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореВрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛрдб рдХреЛ рд▓реЛрдб рдФрд░ рдЪрд▓рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм "--R.BackEnd=llvm" рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрд┐рдЯрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрд▓рдПрд▓рд╡реАрдПрдо рдмреИрдХрдПрдВрдб рдХреЛ "--R.BackEndLLVM=pkg1,pkg2" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХреБрдЫ R рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреБрдирд┐рдВрджрд╛ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИ, рддреЛ рдЖрдк fastr.setToolchin('native') рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдпрд╛ $FASTR_HOME/etc/Makeconf рдлрд╝рд╛рдЗрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ;

  • рдЗрд╕ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ, рдлрд╛рд╕реНрдЯрдЖрд░ рдЬреАрд╕реАрд╕реА рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рдмрд┐рдирд╛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ;
  • рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛;
  • рдмрдбрд╝реЗ рд╡реИрдХреНрдЯрд░ (>1 рдЬреАрдмреА) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди;
  • grepRaw рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдлрд┐рдХреНрд╕реНрдб=рдЯреА рдХреЗ рд▓рд┐рдПред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ