Building the compiler
Beans self-hosted: compiler-টা Beans দিয়েই লেখা। এটা source থেকে build করতে হলে
আগে থেকেই একটা beansc লাগবে, যেটা দিয়ে এটাকে compile করা হবে। build-টা চালায়
project-এর Makefile, আর compiler/version.h হলো version-এর একমাত্র উৎস।
কী কী লাগবে
“কী কী লাগবে” সেকশন- clang
- lld
- make
- git
Debian বা Ubuntu-তে:
sudo apt-get install clang lld make gitmacOS-এ native build-এর জন্য command-line tools-ও লাগে:
xcode-select --installএকটা public checkout-এ build করা
“একটা public checkout-এ build করা” সেকশনpublic checkout-এ কোনো private bootstrap থাকে না, তাই make একটা আগে থেকেই
install করা beansc দিয়ে build/beansc বানায়: হয় PATH-এ থাকাটা, নয়তো
$BEANS_HOME/bin/beansc-এরটা। ভেতরে ভেতরে এটা চালায়:
beansc build compiler/beans/main.b -o build/beansc.newপুরো লুপটা:
# 1. install a release compiler first (the one-line installer)# 2. get the sourcegit clone https://github.com/beans-lang/beans.gitcd beans# 3. buildmake# 4. check it./build/beansc --version./build/beansc run examples/hello.bকোন compiler দিয়ে build-টা bootstrap হবে সেটা BEANSC_BOOT দিয়ে বেছে নিন:
make BEANSC_BOOT=/path/to/beanscone-line installer-এর জন্য দেখুন Install Beans।
C++ bootstrap
“C++ bootstrap” সেকশনprivate C++ bootstrap submodule হাতে থাকলে, make পুরো
stage0 -> stage1 -> stage2 -> stage3 chain-টা চালায়:
beansc0হলো C++ stage-0 compiler।- Stage 2 আর 3 কে byte-identical হতে হবে। ওই fixed point প্রমাণ করে যে self-hosted compiler নিজেকে হুবহু আবার বানাতে পারে।
make test এর উপর differential gate গুলো যোগ করে (দেখুন test চালানো)।
beansc0 কখনো install হয় না, কখনো package হয় না, আর কখনো PATH-এও থাকে
না। এটার একমাত্র কাজ build-টা bootstrap করা।
Install করা
“Install করা” সেকশনsudo make install PREFIX=/usr/localএটা install করে beansc (কখনো beansc0 নয়), runtime-এর source, আর standard
library।
change-এর workflow-এর জন্য দেখুন test চালানো আর Contributing।