Oracle ကုမ္ပဏီ
GraalVM
- Node.js 12.10.0 နှင့် လိုက်ဖက်မှုရှိသည်ကို အာမခံပါသည်။
- ပုံမှန်မဟုတ်သော ကမ္ဘာလုံးဆိုင်ရာ ဂုဏ်သတ္တိများနှင့် လုပ်ဆောင်ချက်များကို မူရင်းအားဖြင့် ပိတ်ထားသည်-
global (globalThis ဖြင့် အစားထိုးသည်၊ js.global-property ကို return ပြန်ရန် သတ်မှတ်ခြင်း)၊ စွမ်းဆောင်ရည် (js.performance)၊ print နှင့် printErr (js.print); - ECMAScript 2020 မုဒ် (“-js.ecmascript-version=2020”);
- မှီခိုမှု ICU4J ကို 64.2၊ ASM မှ 7.1 သို့ အပ်ဒိတ်လုပ်ထားသည်။
- ထပ်ထည့်ထားသော ချလံ gc။
- မွမ်းမံထားသော Python 3.7.8 စံပြစာကြည့်တိုက်၊
- NumPy 1.16.4 နှင့် Pandas 0.25.0 အတွက် ပံ့ပိုးမှု ထပ်လောင်း;
- ထပ်လောင်းအချိန်ကိုက်ပံ့ပိုးမှု;
- socket.socket သည် သင့်အား “graalpython -m http.server” ကို run ရန်နှင့် ကုဒ်ဝှက်ထားသော (TLS မပါဘဲ) http အရင်းအမြစ်များကို ဖွင့်ရန် ခွင့်ပြုသည့် အခြေအနေသို့ ဆောင်သွားခဲ့သည်။
- pandas.DataFrame အရာဝတ္ထုများကို ပြသခြင်းဆိုင်ရာ ပြဿနာများကို ဖြေရှင်းခဲ့သည်။
bytes.startswith tuples ၏ မှားယွင်းစွာ လုပ်ဆောင်ခြင်း
ထပ်ဆင့်ရေးသားသူများ၏ တာဝန်ကို ဖျက်စီးခြင်းနှင့် dict.__contains__ အဘိဓာန်များအတွက်၊ - ast.PyCF_ONLY_AST အတွက် ပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။
ခွင့်ပြုသည်။ pytest အလုပ်လုပ်ကြောင်းသေချာပါစေ။ - ထပ်ပြောပါသည်။
ထောက်ပံ့ PEP 498 (စာသားများတွင် string interpolation); -
ဟိုဟာ ပုံမှန် Python တင်သွင်းမှု အထားအသိုကို အသုံးပြု၍ JVM အတန်းများကို တင်သွင်းရန် “--python.EmulateJython” အလံအား တင်သွင်းပြီး Python ကုဒ်မှ JVM ခြွင်းချက်များကို ဖမ်းယူပါ။ - ပိုကောင်းအောင် parser စွမ်းဆောင်ရည်၊ ခြွင်းချက် ကက်ရှ်၊
JVM ကုဒ်မှ Python အရာဝတ္ထုများကို ဝင်ရောက်ကြည့်ရှုခြင်း။ python ကုဒ်နှင့် မူရင်း extensions များအတွက် စွမ်းဆောင်ရည်စစ်ဆေးမှုများတွင် ပိုမိုကောင်းမွန်သောရလဒ်များ (llvm ၏ထိပ်ရှိ မူရင်း extensions များကို လုပ်ဆောင်ခြင်းသည် JIT compilation အတွက် GraalVM သို့ bitcode llvm ကိုရောက်ရှိသွားသည်ဟု ဆိုလိုသည်)။
- မူရင်း extensions များကို စုစည်းရန်၊ built-in LLVM toolkit ကို ယခုအသုံးပြုပြီး ဇာတိကုဒ်နှင့် bitcode နှစ်မျိုးလုံးကို ဖန်တီးပါသည်။ ဆိုလိုသည်မှာ ချိတ်ဆက်မှုပြဿနာအများစုကို ဖယ်ရှားပစ်ရန် နောက်ထပ် မူရင်း extension များကို ဘောင်အတွင်းမှ စုစည်းသင့်သည်။
- TruffleRuby တွင် မူရင်း extension များကို ထည့်သွင်းရန်အတွက် သီးခြား LLVM တပ်ဆင်ခြင်း
- TruffleRuby တွင် C++ extensions များကို ထည့်သွင်းခြင်းသည် libc++ နှင့် libc++abi ကို ထည့်သွင်းရန်မလိုအပ်တော့ပါ။
- လိုင်စင်ကို EPL 2.0/GPL 2.0/LGPL 2.1 သို့ အပ်ဒိတ်လုပ်ထားပြီး၊ လတ်တလော JRuby နှင့် အတူတူပင်။
- GC.stat သို့ ရွေးချယ်နိုင်သော အကြောင်းပြချက်များအတွက် ပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။
- Kernel#load method ကို wrapper နှင့် Kernel#spawn ဖြင့် :chdir;
- rb_str_drop_bytes ကို ထပ်ထည့်ထားသောကြောင့် OpenSSL က ၎င်းကို အသုံးပြုသောကြောင့် အလွန်ကောင်းမွန်ပါသည်။
- Rails 6 ရှိ သံလမ်းအသစ်အတွက် လိုအပ်သော ကြိုတင်ထည့်သွင်းထားသော ကျောက်မျက်ရတနာများ၏ တိုးချဲ့မှုများ ပါဝင်သည်။
- မူရင်း extension များကို စုစည်းရန်အတွက် MRI တွင်ကဲ့သို့ အလံများကို အသုံးပြုပါသည်။
- စွမ်းဆောင်ရည် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်ပြီး မှတ်ဉာဏ်သုံးစွဲမှုကို လျှော့ချထားသည်။
- R 3.6.1 နှင့် လိုက်ဖက်မှုရှိသည်ကို အာမခံပါသည်။
- LLVM ကိုအခြေခံ၍ မူရင်း extensions များလည်ပတ်ခြင်းအတွက် ပဏာမပံ့ပိုးမှု ပေါင်းထည့်ထားသည်။ မူရင်း R ပက်ကေ့ဂျ်များကို တည်ဆောက်သောအခါ၊ FastR သည် GraalVM ၏ built-in LLVM ကိရိယာကို အသုံးပြုရန် စီစဉ်ထားသည်။ ရလဒ် binary ဖိုင်များတွင် မူရင်းကုဒ်နှင့် LLVM ဘစ်ကုဒ် နှစ်မျိုးလုံး ပါဝင်ပါမည်။
ကြိုတင်ထည့်သွင်းထားသော ပက်ကေ့ဂျ်များကိုလည်း ဤနည်းဖြင့် တည်ဆောက်ထားပါသည်။
FastR သည် မူရင်း တိုးချဲ့ကုဒ်ကို မူရင်းအတိုင်း ဖွင့်ပြီး လုပ်ဆောင်သော်လည်း "--R.BackEnd=llvm" ရွေးချယ်မှုဖြင့် စတင်သောအခါ၊ ဘစ်ကုဒ်ကို အသုံးပြုပါမည်။ "--R.BackEndLLVM=pkg1,pkg2" ကို သတ်မှတ်ခြင်းဖြင့် LLVM နောက်ခံကို အချို့သော R ပက်ကေ့ဂျ်များအတွက် ရွေးချယ်အသုံးပြုနိုင်ပါသည်။ သင့်တွင် ပက်ကေ့ဂျ်များကို ထည့်သွင်းရာတွင် အဆင်မပြေပါက၊ သင်သည် fastr.setToolchain("native") ကိုခေါ်ဆိုခြင်းဖြင့် သို့မဟုတ် $FASTR_HOME/etc/Makeconf ဖိုင်ကို ကိုယ်တိုင်တည်းဖြတ်ခြင်းဖြင့် အရာအားလုံးကို ပြန်ပြောင်းနိုင်ပါသည်။ - ဤထုတ်ဝေမှုတွင်၊ FastR သည် GCC runtime libraries များမပါဘဲ တင်ပို့သည်။
- ပုံသေမှတ်ဉာဏ်ယိုစိမ့်မှု;
- ကြီးမားသော vector များ (>1GB) ဖြင့် အလုပ်လုပ်သောအခါ ပြဿနာများကို ဖြေရှင်းပေးသည်။
- grepRaw ကို အကောင်အထည်ဖော်ခဲ့သော်လည်း fixed=T အတွက်သာ။
source: opennet.ru