সফটওয়্যার নির্মাণ স্বয়ংক্রিয় করার জন্য মেসন একটি সফ্টওয়্যার টুল। এটি পাইথনে লেখা বিনামূল্যে এবং ওপেন সোর্স।
একটি প্রকাশনার মাধ্যমে মেসন ১.০.০ বিল্ড সিস্টেমের নতুন সংস্করণের মুক্তির ঘোষণা করা হয়েছে , যা অন্যান্য বিষয়ের পাশাপাশি নতুন বৈশিষ্ট্য এবং রাস্টে লেখা প্রজেক্ট কম্পাইল করার ক্ষেত্রে স্থিতিশীলতা নিয়ে এসেছে।
যারা মেসন (Meson) সম্পর্কে অপরিচিত, তাদের জন্য উল্লেখ্য যে, এই বিল্ড সিস্টেমটি এক্স.অর্গ সার্ভার (X.Org Server), মেসা (Mesa), লাইটটিপিডি (Lighttpd), সিস্টেমডি (systemd), জি-স্ট্রিমার (GStreamer), ওয়েল্যান্ড (Wayland), জিনোম (GNOME), এবং জিটিকে (GTK)-এর মতো সুপরিচিত প্রজেক্টগুলো কম্পাইল করতে ব্যবহৃত হয় ।
মেসনের মূল উন্নয়ন লক্ষ্য হল একটি উচ্চ-গতির সংকলন প্রক্রিয়া প্রদান করা যা সুবিধা এবং ব্যবহারের সহজতার সাথে মিলিত হয়। করার পরিবর্তে, বিল্ডটি ডিফল্টরূপে নিনজা টুলকিট ব্যবহার করে, তবে অন্যান্য ব্যাকএন্ড যেমন xcode এবং VisualStudio ব্যবহার করা যেতে পারে।
সিস্টেমটিতে একটি বিল্ট-ইন ক্রস-প্ল্যাটফর্ম ডিপেন্ডেন্সি ম্যানেজার রয়েছে , যা আপনাকে ডিস্ট্রিবিউশনগুলোর জন্য প্যাকেজ তৈরি করতে মেসন (Meson) ব্যবহার করার সুযোগ দেয়। কম্পাইলেশন নিয়মগুলো একটি সরলীকৃত, ডোমেইন-নির্দিষ্ট ভাষায় লেখা হয়েছে, যা ব্যবহারকারীর জন্য সেগুলোকে সহজে পাঠযোগ্য ও বোধগম্য করে তোলে (লেখকদের দৃষ্টিভঙ্গি অনুযায়ী, ডেভেলপারদের নিয়ম লিখতে ন্যূনতম সময় ব্যয় করা উচিত)।
ক্রস-কম্পাইলেশন সমর্থিত , সেইসাথে GCC, Clang, Visual Studio এবং অন্যান্য কম্পাইলার ব্যবহার করে Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS, এবং Windows-এ কম্পাইলেশন করা যায়।
সি, সি++, ফোরট্রান, জাভা এবং রাস্ট সহ বিভিন্ন প্রোগ্রামিং ভাষায় প্রজেক্ট তৈরি করা সম্ভব । এতে একটি ইনক্রিমেন্টাল কম্পাইলেশন মোড সমর্থিত, যেখানে শুধুমাত্র শেষ কম্পাইলেশনের পর করা পরিবর্তনের সাথে সরাসরি সম্পর্কিত কম্পোনেন্টগুলোই পুনরায় বিল্ড করা হয়।
মেসন পুনরাবৃত্তিযোগ্য বিল্ড তৈরি করতে ব্যবহার করা যেতে পারে, যেখানে বিভিন্ন পরিবেশে বিল্ড চালানোর ফলে সম্পূর্ণ অভিন্ন এক্সিকিউটেবল হয়।
মেসন 1.0 এর প্রধান নতুনত্ব
মেসন ১.০-এর এই নতুন রিলিজে তা তুলে ধরা হয়েছে মরিচা ভাষায় প্রকল্প নির্মাণের মডিউল স্থিতিশীল ঘোষণা করা হয়েছে। এই মডিউলটি মেসা প্রকল্পে মরিচায় লেখা উপাদান তৈরি করতে ব্যবহৃত হয়।
বেশিরভাগ কম্পাইলার চেক ফাংশন দ্বারা সমর্থিত, প্রিফিক্স বিকল্পটি স্ট্রিং ব্যতীত অন্য অ্যারেগুলি পরিচালনা করার ক্ষমতা প্রয়োগ করে।
এই রিলিজের আরেকটি উল্লেখযোগ্য পরিবর্তন হলো নতুন "in" এবং "not in" অপারেটরের সংযোজন, যা একটি স্ট্রিং-এর মধ্যে কোনো সাবস্ট্রিং-এর উপস্থিতি নির্ণয় করে। এটি পূর্বে উপলব্ধ অ্যারে বা ডিকশনারিতে কোনো উপাদানের উপস্থিতি যাচাই করার পদ্ধতির অনুরূপ।
এছাড়াও, আমরা দেখতে পাই যে সমস্ত উপলব্ধ কম্পাইলার সতর্কবার্তার আউটপুট সক্রিয় করার জন্য " warning-level=everything" অপশনটি যোগ করা হয়েছে (clang এবং MSVC-তে এটি -Weverything এবং /Wall ব্যবহার করে, এবং GCC-তে আলাদা সতর্কবার্তা অন্তর্ভুক্ত করা হয়েছে, যা মোটামুটিভাবে clang-এর -Weverything মোডের অনুরূপ)।
এটিও উল্লেখ্য যে , "--workdir" নামে একটি নতুন আর্গুমেন্ট যোগ করা হয়েছে, যা আপনাকে ওয়ার্কিং ডিরেক্টরি ওভাররাইড করার সুযোগ দেবে । উদাহরণস্বরূপ, ওয়ার্কিং ডিরেক্টরির পরিবর্তে বর্তমান ডিরেক্টরি ব্যবহার করার জন্য।
rust.bindgen পদ্ধতিটি "নির্ভরতা" আর্গুমেন্ট প্রক্রিয়া করার ক্ষমতা প্রয়োগ করে যাতে কম্পাইলার দ্বারা প্রক্রিয়াকরণের জন্য নির্ভরতাগুলির পাথ পাস করা যায় এবং java.generate_native_headers ফাংশনটি অবমূল্যায়িত করা হয়েছে এবং মেসনের সাধারণ ফাংশন নামকরণ শৈলীর সাথে মেলে java.native_headers-এ নামকরণ করা হয়েছে।
এছাড়াও, এটিও উল্লেখ করা হয়েছে যে ক্রস-কম্পাইল করার সময়, ডেভেলপার এনভায়রনমেন্ট এখন হোস্ট মেশিনের জন্য সমস্ত এনভায়রনমেন্ট ভেরিয়েবল সেট করে । যদি প্রপার্টিটি সংজ্ঞায়িত করা থাকে, তবে এটি এখন ক্রস-ফাইলের QEMU_LD_PREFIX এবং sys_root ভ্যালুও সেট করে। এর মানে হলো, ক্রস-কম্পাইল করা এক্সিকিউটেবলগুলো প্রায়শই কম্পাইলেশন মেশিনে স্বচ্ছভাবে চলতে পারে, উদাহরণস্বরূপ, x86_64 লিনাক্স থেকে aarch64 লিনাক্সের জন্য ক্রস-কম্পাইল করার সময়।
অবশেষে, আপনি যদি আরও জানতে আগ্রহী হন, তাহলে নিচের লিঙ্কে বিস্তারিত তথ্য পেয়ে যাবেন ।
লিনাক্সে মেসন কিভাবে ইনস্টল করবেন?
যারা তাদের সিস্টেমে এই বিল্ড সিস্টেম ইন্সটল করতে আগ্রহী তাদের জন্য, আমরা নীচে শেয়ার করা নির্দেশাবলী অনুসরণ করে তা করতে পারেন।
তাদের জানা উচিত যে মেসন PyPi তে উপলব্ধ, তাই এটি কমান্ডের সাথে ইনস্টল করা যেতে পারে:
pip3 install meson
একটি নোট হিসাবে, আপনার জানা উচিত যে পিপ ইনস্টল করার জন্য টাইপ করার সঠিক কমান্ডটি সিস্টেমের মধ্যে পরিবর্তিত হতে পারে, তাই এটি সুপারিশ করা হয় যে আপনি পাইপ-এর পাইথন 3 সংস্করণ ব্যবহার করুন।