Checking and running
Native binary build করার আগে সাধারণত কোডটা check করা হয়, আর
প্রায়ই reference interpreter-এ চালিয়ে দেখা হয়। এছাড়া beansc compiler-এর প্রতিটা
stage আলাদা করে দেখায়, যাতে কোন stage কী বানাল সেটা দেখা যায়।
beansc check
“beansc check” সেকশনকোনো কিছু build না করেই একটা file type-check করে।
beansc check app.b- সব ঠিক থাকলে
<file>: okছাপায়। - কিছু ভুল থাকলে
file:line:col: error: ...হিসেবে error ছাপায় আর exit 1 দেয়।
check কমান্ড --target, --cpu, --features, আর --runtime নেয়। এতে build না
করেই দেখে নেওয়া যায় কোডটা কোনো নির্দিষ্ট target আর runtime profile-এর জন্য
ঠিক আছে কি না। কোনো runtime profile-এ যে capability নেই, সেটা এই check-এর সময়েই
নাম ধরে আটকে দেওয়া হয়। দেখুন target।
beansc run
“beansc run” সেকশনfile-টা check করে, তারপর reference interpreter-এ চালায়। এখানে কোনো native build হয় না।
beansc run app.bprogram-এ argument পাঠাতে হলে সেগুলো ---এর পরে দিন:
beansc run app.b -- --verbose input.txtInterpreter-এ program panic করলে run exit 3 দেয়। দেখুন Exit code আর সমস্যা
সমাধান।
Stage-গুলো দেখা
“Stage-গুলো দেখা” সেকশনএই কমান্ডগুলো compiler-এর একেকটা stage ঢেলে দেখায়। এগুলো বোঝা আর debug করার জন্য, রোজকার কাজের জন্য না।
| কমান্ড | কী ছাপায় |
|---|---|
beansc lex <file.b>... | token stream। |
beansc parse <file.b>... | parse-করা AST। |
beansc mir <file.b> | check-করা, ownership-plan-করা MIR। |
beansc llvm <file.b> | native build যে LLVM IR ব্যবহার করে সেটা। |
beansc parse app.bbeansc mir app.bbeansc llvm app.blex আর parse এক বা একাধিক file নেয়। mir আর llvm একটা file নেয়।