Rust တွင်ပြန်လည်ရေးသားထားသော GNU Coreutils ၏အပ်ဒိတ်

Rust ဘာသာစကားဖြင့် ပြန်လည်ရေးသားထားသည့် GNU Coreutils ပက်ကေ့ဂျ်၏ analogue တစ်ခုဖြစ်သည့် uutils coreutils 0.0.12 ကိရိယာအစုံအလင်ကို ပြသထားသည်။ Coreutils သည် မျိုးခွဲ၊ cat၊ chmod၊ chown၊ chroot၊ cp၊ date၊ dd၊ echo၊ hostname၊ id၊ ln နှင့် ls အပါအဝင် အသုံးအဆောင်ပေါင်း တစ်ရာကျော် ပါရှိပါသည်။ တစ်ချိန်တည်းမှာပင်၊ Uutils findutils 0.3.0 ပက်ကေ့ဂျ်ကို GNU Findutils suite (ရှာရန်၊ နေရာချထား၊ မွမ်းမံပြင်ဆင်b နှင့် xargs) မှ utilities များကို Rust အကောင်အထည်ဖော်မှုဖြင့် ထုတ်ပြန်ခဲ့သည်။

ပရောဂျက်ကို ဖန်တီးပြီး Rust ဘာသာစကားကို အသုံးပြုရခြင်း၏ အကြောင်းရင်းမှာ Windows၊ Redox နှင့် Fuchsia ပလပ်ဖောင်းများတွင်လည်း လုပ်ဆောင်နိုင်သည့် Coreutils နှင့် Findutils ၏ ဖြတ်ကျော်ပလပ်ဖောင်း အစားထိုး အကောင်အထည်ဖော်မှုကို ဖန်တီးလိုသော ဆန္ဒဖြစ်သည်။ Uutils နှင့် နောက်ထပ်အရေးကြီးသော ကွာခြားချက်မှာ GPL copyleft လိုင်စင်အစား MIT ခွင့်ပြုချက်လိုင်စင်အောက်တွင် ဖြန့်ဝေခြင်းဖြစ်သည်။

လက်ရှိတွင်၊ 88 utilities များကို အကောင်အထည်ဖော်ခြင်းသည် GNU Coreutils နှင့် လုံး၀ တန်းတူညီမျှရှိစေပါသည်။ cp၊ dd၊ date၊ df၊ install၊ ls၊ more၊ sort၊ split၊ tail နှင့် test အပါအဝင် တစ်ဦးချင်းချို့ယွင်းချက် ၁၈ ခုတွင် မှတ်သားထားသည်။ stty utility သာလျှင် အကောင်အထည်မဖော်နိုင်ပါ။ GNU Coreutils ပရောဂျက်မှ စမ်းသပ်မှုအစုံကို ဖြတ်ကျော်သောအခါ၊ စမ်းသပ်မှု 18 ခု အောင်မြင်စွာ ပြီးမြောက်ခဲ့သော်လည်း Rust analog သည် 214 စမ်းသပ်မှု မအောင်မြင်သေးပါ။ တစ်ချိန်တည်းမှာပင်၊ ပရောဂျက်ဖွံ့ဖြိုးတိုးတက်မှု၏ပြင်းထန်မှုမှာ သိသိသာသာတိုးလာသည် - လွန်ခဲ့သောတစ်နှစ်တွင် developer 313-400 ယောက်မှ 470-20 ယောက်အစား developer 50-30 ထံမှ တစ်လလျှင် ဖာထေး 60-3 ကို ပေါင်းထည့်သည်။

Rust တွင်ပြန်လည်ရေးသားထားသော GNU Coreutils ၏အပ်ဒိတ်

မကြာသေးမီက အောင်မြင်မှုများအနက် စွမ်းဆောင်ရည် ပိုမိုကောင်းမွန်အောင် လုပ်ဆောင်ခြင်းကို မှတ်သားထားသည် - လက်ရှိအခြေအနေတွင်၊ ဦးခေါင်းနှင့် ဖြတ်တောက်ခြင်းကဲ့သို့သော အသုံးအဆောင်များစွာသည် စွမ်းဆောင်ရည်တွင် GNU Coreutils မှ ရွေးချယ်စရာများကို သိသိသာသာ ပိုမိုကောင်းမွန်စေပါသည်။ Test suite လွှမ်းခြုံမှုသည် ကုဒ်အားလုံး၏ 55% မှ 75% သို့ တိုးလာသည် (80% သည် လုံလောက်သော ပစ်မှတ်ဖြစ်သည်)။ ကုဒ်ကို ပြုပြင်ထိန်းသိမ်းမှုကို ရိုးရှင်းစေရန် ပြန်လည်ပြုပြင်ထားခြင်း၊ ဥပမာ၊ မတူညီသော ပရိုဂရမ်များတွင် အမှားအယွင်းများကို ကိုင်တွယ်ခြင်းအား တစ်စုတစ်စည်းတည်းဖြစ်စေပြီး အသုံးပြုခွင့်ဆိုင်ရာ ကုဒ်ကို chgrp နှင့် chown ဖြင့် ပေါင်းစပ်ထားသည်။ GNU Coreutils နှင့် လိုက်ဖက်ညီမှု တိုးတက်စေရန် ပြောင်းလဲမှုများစွာကို ထည့်သွင်းထားသည်။

အနာဂတ်အစီအစဥ်များတွင် stty utility ကိုအကောင်အထည်ဖော်ခြင်း၊ GNU Coreutils နှင့် လိုက်ဖက်ညီမှုတိုးတက်စေရန် ဆက်လက်လုပ်ဆောင်ခြင်း၊ executable files များ၏အရွယ်အစားကိုလျှော့ချရန် ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများထည့်သွင်းခြင်းနှင့် GNU Coreutils နှင့် GNU Findutils အစား Uutils ကိုအသုံးပြုခြင်းနှင့် ဆက်လက်စမ်းသပ်ခြင်း (အဓိကများထဲမှတစ်ခု Debian နှင့် Ubuntu ရှိ uutils ၏ developer များ။ ယခင်က Clang compiler ကို အသုံးပြု၍ Debian GNU/Linux တည်ဆောက်မှုကို ပံ့ပိုးပေးမည့် ပရောဂျက်တစ်ခုတွင် လုပ်ဆောင်ခဲ့သည်။ ထို့အပြင်၊ macOS အတွက် uutils-coreutils ပက်ကေ့ဂျ်ပြင်ဆင်မှု၊ NixOS ပေါ်ရှိ Uutils coreutils ဖြင့် GNU Coreutils ကို အစားထိုးခြင်းနှင့် စမ်းသပ်ခြင်း၊ Apertis ဖြန့်ဖြူးမှုတွင် ပုံသေဖြင့် uutils coreutils ကိုအသုံးပြုရန် ရည်ရွယ်ချက်နှင့် Redox OS အတွက် သတ်မှတ်ထားသော utils များ၏ လိုက်လျောညီထွေရှိမှုကို မှတ်သားထားသည်။ .

source: opennet.ru

မှတ်ချက် Add