рдУрд░реЕрдХрд▓ рдХрдВрдкрдиреА рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреЗ рдкреНрд░рдХрд╛рд╢рди , рдЬреЗ JavaScript (Node.js), Python, Ruby, R, JVM рд╕рд╛рдареА рдХреЛрдгрддреНрдпрд╛рд╣реА рднрд╛рд╖рд╛ (Java, Scala, Clojure, Kotlin) рдЖрдгрд┐ рдЬреНрдпрд╛ рднрд╛рд╖рд╛рдВрд╕рд╛рдареА LLVM рдмрд┐рдЯрдХреЛрдб рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд (C, C++) рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдирд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ , рдЧрдВрдЬ). 19.3 рд╢рд╛рдЦрд╛ рд▓рд╛рдБрдЧ рдЯрд░реНрдо рд╕рдкреЛрд░реНрдЯ (LTS) рд░рд┐рд▓реАрдЭ рдореНрд╣рдгреВрди рд╡рд░реНрдЧреАрдХреГрдд рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдорд░реНрдерди , рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ Java рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрд╕рд╣ (GraalVM рдиреЗрдЯрд┐рд╡реНрд╣ рдЗрдореЗрдЬ). рдкреНрд░рдХрд▓реНрдк рдХреЛрдб GPLv2 рдЕрдВрддрд░реНрдЧрдд рдкрд░рд╡рд╛рдирд╛рдХреГрдд. рддреНрдпрд╛рдЪ рд╡реЗрд│реА, GraalVM рд╡рд╛рдкрд░реВрди Python, JavaScript, Ruby рдЖрдгрд┐ R рднрд╛рд╖рд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдирд╡реАрди рдЖрд╡реГрддреНрддреНрдпрд╛ рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реНрдпрд╛ - , , ╨╕ .
GraalVM рдПрдХ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рдЬреЛ JavaScript, Ruby, Python рдЖрдгрд┐ R рд╕рд╣ JVM рдордзреАрд▓ рдлреНрд▓рд╛рдпрд╡рд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖реЗрддреВрди рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВ рд╢рдХрддреЛ рдЖрдгрд┐ LLVM рдмрд┐рдЯрдХреЛрдбрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд JVM рдордзреНрдпреЗ рдореВрд│ рдХреЛрдб рдЪрд╛рд▓рд╡рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдХрд░рддреЛ. GraalVM рджреНрд╡рд╛рд░реЗ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рднрд╛рд╖рд╛-рд╕реНрд╡рддрдВрддреНрд░ рдбреАрдмрдЧрд░, рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдЖрдгрд┐ рдореЗрдорд░реА рд╡рд╛рдЯрдк рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. GraalVM рд╡рд┐рд╡рд┐рдз рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдШрдЯрдХрд╛рдВрд╕рд╣ рдПрдХрддреНрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдХрд░рддреЗ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрддрд░ рднрд╛рд╖рд╛рдВрдордзреАрд▓ рдХреЛрдбрдордзреВрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрдгрд┐ ре▓рд░реЗрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рдпреЗрддреЛ. JVM-рдЖрдзрд╛рд░рд┐рдд рднрд╛рд╖рд╛рдВрд╕рд╛рдареА рдЖрд╣реЗ рдорд╢реАрди рдХреЛрдбрдордзреНрдпреЗ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЬреНрдпрд╛ рдХрдореАрдд рдХрдореА рдореЗрдорд░реА рд╡рд╛рдкрд░рд╛рд╕рд╣ рдереЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдК рд╢рдХрддрд╛рдд (рдореЗрдорд░реА рдЖрдгрд┐ рдереНрд░реЗрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрдиреЗрдХреНрдЯ рдХрд░реВрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. ).
:
- Node.js 12.10.0 рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ;
- рдЧреИрд░-рдорд╛рдирдХ рдЬрд╛рдЧрддрд┐рдХ рдЧреБрдгрдзрд░реНрдо рдЖрдгрд┐ рдХрд╛рд░реНрдпреЗ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдЕрдХреНрд╖рдо рдХреЗрд▓реА рдЬрд╛рддрд╛рдд:
рд╡реИрд╢реНрд╡рд┐рдХ (globalThis рдиреЗ рдмрджрд▓рд▓реЗ, js.global-рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрдЯ рдХрд░рд╛), рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди (js.performance), рдкреНрд░рд┐рдВрдЯ рдЖрдгрд┐ printErr (js.print); - ECMAScript 2020 рдореЛрдб (тАЬ-js.ecmascript-version=2020тАЭ) рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реЗ Promise.allSettled рдЖрдгрд┐ nullish coalescing рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ;
- рдЕрджреНрдпрдпрд╛рд╡рдд рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ ICU4J рддреЗ 64.2, ASM рддреЗ 7.1.
GraalPython рдордзреНрдпреЗ:
- рдЬреЛрдбрд▓реЗ stubs gc.{enable,disable,isenabled}, рд▓рд╛рдЧреВ charmap_build, sys.hexversion рдЖрдгрд┐ _lzma;
- рдЕрджреНрдпрдпрд╛рд╡рдд рдкрд╛рдпрдерди 3.7.8 рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реА;
- NumPy 1.16.4 рдЖрдгрд┐ Pandas 0.25.0 рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ;
- рдЯрд╛рдЗрдордЗрдЯ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ;
- socket.socket рдЕрд╢рд╛ рд╕реНрдерд┐рддреАрдд рдЖрдгрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ тАЬgraalpython -m http.serverтАЭ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдЕрдирдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб (TLS рд╢рд┐рд╡рд╛рдп) http рд╕рдВрд╕рд╛рдзрдиреЗ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ;
- pandas.DataFrame рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд╕реНрдпрд╛.
bytes.startswith рдордзреАрд▓ tuples рдЪреА рдЪреБрдХреАрдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛,
рдЗрдЯрд░реЗрдЯрд░реНрд╕рдЪреЗ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЪрд░рд┐рдВрдЧ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдЖрдгрд┐ рдбрд┐рдХреНрд╢рдирд░реАрд╕рд╛рдареА dict.__contains__ рдЪрд╛ рд╡рд╛рдкрд░; - ast.PyCF_ONLY_AST рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рдЬреЗ pytest рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛;
- рдЬреЛрдбрд▓реЗ PEP 498 (рд▓рд┐рдЯрд░рд▓реНрд╕рдордзреНрдпреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЯрд░рдкреЛрд▓реЗрд╢рди);
- "--python.EmulateJython" рдзреНрд╡рдЬ рд╕рд╛рдорд╛рдиреНрдп Python рдЖрдпрд╛рдд рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рд╡рд╛рдкрд░реВрди JVM рд╡рд░реНрдЧ рдЖрдпрд╛рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ Python рдХреЛрдбрдордзреВрди JVM рдЕрдкрд╡рд╛рдж рдкрдХрдбрдгреНрдпрд╛рд╕рд╛рдареА;
- рд╕реБрдзрд╛рд░рд┐рдд рдкрд╛рд░реНрд╕рд░ рдХрд╛рдордЧрд┐рд░реА, рдЕрдкрд╡рд╛рдж рдХреЕрд╢рд┐рдВрдЧ,
JVM рдХреЛрдбрд╡рд░реВрди рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ. рдкрд╛рдпрдерди рдХреЛрдб рдЖрдгрд┐ рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрд╕реНрдЯреЗрдВрд╢рдиреНрд╕рд╕рд╛рдареА рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреАрд▓ рд╕реБрдзрд╛рд░рд┐рдд рдкрд░рд┐рдгрд╛рдо (llvm рдЪреНрдпрд╛ рд╡рд░ рдиреЗрдЯрд┐рд╡реНрд╣ рдПрдХреНрд╕реНрдЯреЗрдВрд╢рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рд╣реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдмрд┐рдЯрдХреЛрдб llvm рдЬреЗрдЖрдпрдЯреА рд╕рдВрдХрд▓рдирд╛рд╕рд╛рдареА GraalVM рд▓рд╛ рдкрд╛рд╕ рдХреЗрд▓реЗ рдЬрд╛рддреЗ).
TruffleRuby рдордзреНрдпреЗ:
- рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЕрдВрдЧрднреВрдд LLVM рдЯреВрд▓рдХрд┐рдЯ рдЖрддрд╛ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ, рдЬреЗ рдореВрд│ рдХреЛрдб рдЖрдгрд┐ рдмрд┐рдЯрдХреЛрдб рджреЛрдиреНрд╣реА рддрдпрд╛рд░ рдХрд░рддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдЕрдзрд┐рдХ рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд, рдмрд╣реБрддреЗрдХ рд▓рд┐рдВрдХрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рджреВрд░ рдХрд░рддрд╛рдд;
- TruffleRuby рдордзреНрдпреЗ рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрдЧрд│реЗ LLVM рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди;
- TruffleRuby рд╡рд░ C++ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рдкреБрдвреЗ libc++ рдЖрдгрд┐ libc++ abi рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА;
- рдЕрд▓реАрдХрдбреАрд▓ JRuby рдкреНрд░рдорд╛рдгреЗрдЪ, EPL 2.0/GPL 2.0/LGPL 2.1 рд╡рд░ рдкрд░рд╡рд╛рдирд╛ рдЕрджреНрдпрддрдирд┐рдд рдХреЗрд▓рд╛;
- GC.stat рд╡рд░ рдкрд░реНрдпрд╛рдпреА рд╡рд┐рддрд░реНрдХрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ;
- рд░реЕрдкрд░рд╕рд╣ рдХрд░реНрдирд▓#рд▓реЛрдб рдкрджреНрдзрдд рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЖрдгрд┐ :chdir рд╕рд╣ рдХрд░реНрдирд▓#рд╕реНрдкреЙрди;
- rb_str_drop_bytes рдЬреЛрдбрд▓реЗ, рдЬреЗ рдЙрддреНрддрдо рдЖрд╣реЗ рдХрд╛рд░рдг OpenSSL рддреЗ рд╡рд╛рдкрд░рддреЗ;
- рд░реЗрд▓ 6 рдордзреНрдпреЗ рдирд╡реАрди рд░реЗрд▓рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рд░рддреНрдирд╛рдВрдЪреЗ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ;
- рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдордЖрд░рдЖрдп рдкреНрд░рдорд╛рдгреЗ рдзреНрд╡рдЬ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд;
- рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдореЗрдорд░реА рд╡рд╛рдкрд░ рдХрдореА рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
рдлрд╛рд╕реНрдЯрдЖрд░ рдордзреНрдпреЗ:
- R 3.6.1 рд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ;
- LLVM рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рд╛рдердорд┐рдХ рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ. рдореВрд│ R рдкреЕрдХреЗрдЬреЗрд╕ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, FastR рд╣реЗ GraalVM рдЪреНрдпрд╛ рдЕрдВрдЧрднреВрдд LLVM рдЯреВрд▓рд┐рдВрдЧ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдкрд░рд┐рдгрд╛рдореА рдмрд╛рдпрдирд░реА рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдореВрд│ рдХреЛрдб рдЖрдгрд┐ LLVM рдмрд┐рдЯрдХреЛрдб рджреЛрдиреНрд╣реА рдЕрд╕рддреАрд▓.
рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдкреЕрдХреЗрдЬреЗрд╕ рджреЗрдЦреАрд▓ рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.
FastR рдореВрд│ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛрдб рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рд▓реЛрдб рдХрд░рддреЛ рдЖрдгрд┐ рдЪрд╛рд▓рд╡рддреЛ, рдкрд░рдВрддреБ "--R.BackEnd=llvm" рдкрд░реНрдпрд╛рдпрд╛рд╕рд╣ рд▓реЙрдиреНрдЪ рдХреЗрд▓реНрдпрд╛рд╡рд░, рдмрд┐рдЯрдХреЛрдб рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдИрд▓. "--R.BackEndLLVM=pkg1,pkg2" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВрди LLVM рдмреЕрдХрдПрдВрдб рдХрд╛рд╣реА R рдкреЕрдХреЗрдЬреЗрд╕рд╕рд╛рдареА рдирд┐рд╡рдбрдХрдкрдгреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЬрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рд╕рдорд╕реНрдпрд╛ рдпреЗрдд рдЕрд╕рддреАрд▓, рддрд░ рддреБрдореНрд╣реА fastr.setToolchain("рдиреЗрдЯрд┐рд╡реНрд╣") рд╡рд░ рдХреЙрд▓ рдХрд░реВрди рдХрд┐рдВрд╡рд╛ $FASTR_HOME/etc/Makeconf рдлрд╛рдЗрд▓ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реВрди рд╕рд░реНрд╡рдХрд╛рд╣реА рдкрд░рдд рдХрд░реВ рд╢рдХрддрд╛; - рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдд, рдлрд╛рд╕реНрдЯрдЖрд░ рдЬреАрд╕реАрд╕реА рд░рдирдЯрд╛рдЗрдо рд▓рд╛рдпрдмреНрд░рд░реАрд╢рд┐рд╡рд╛рдп рдкрд╛рдард╡рддреЗ;
- рдирд┐рд╢реНрдЪрд┐рдд рдореЗрдорд░реА рд▓реАрдХ;
- рдореЛрдареНрдпрд╛ рд╡реНрд╣реЗрдХреНрдЯрд░ (>1GB) рд╕рд╣ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдорд╕реНрдпрд╛;
- grepRaw рд▓рд╛рдЧреВ рдХреЗрд▓реЗ, рдкрд░рдВрддреБ рдлрдХреНрдд fixed=T рд╕рд╛рдареА.
рд╕реНрддреНрд░реЛрдд: opennet.ru
