mold 3.0.0 হাই-স্পিড লিংকারের একটি নতুন প্রধান রিলিজ, C++ থেকে Rust-এ পুনর্লিখিত। এটি প্রথম Rust সংস্করণ, 2.42.1 শেষ C++ রিলিজ। mold 3.x-এর লক্ষ্য GNU ld-এর সাথে সামঞ্জস্যের ফাঁক বন্ধ করা, বিশেষ করে লিংকার স্ক্রিপ্ট সমর্থনে, এবং Linux ডিস্ট্রিবিউশনে ডিফল্ট লিংকার হিসেবে গৃহীত হওয়ার পথ প্রশস্ত করা।
mold 3.0 হল 2.42.1-এর একটি ড্রপ-ইন প্রতিস্থাপন, একই কমান্ড-লাইন অপশন গ্রহণ করে এবং একই টার্গেট সমর্থন করে। লিংকিং পারফরম্যান্স সমান থাকে। Rust-এ স্থানান্তর mold-কে দূষিত ইনপুট ফাইলের সাথে নিরাপদ করে তোলে; C++ সংস্করণ সীমার বাইরে মেমরি পড়তে পারত, যেখানে mold 3.0 সীমা পরীক্ষা করে এবং পরিবর্তে প্যানিক করে।
বিল্ড পরিবর্তনের মধ্যে CMake-এর পরিবর্তে Cargo ব্যবহার করা অন্তর্ভুক্ত, যার জন্য Rust 1.95 বা তার পরবর্তী প্রয়োজন। `cargo build --release` এবং `./install-mold.sh` চালান। mold আর TBB-এর উপর নির্ভর করে না এবং mimalloc 3.5.3-কে স্ট্যাটিকভাবে লিংক করে। টেস্ট স্যুট `cargo test` দিয়ে চলে।
বাগ ফিক্সের মধ্যে রয়েছে ভার্সন স্ক্রিপ্টের সাথে ক্র্যাশ ঠিক করা, `--gc-sections` আর `--init` এবং `--fini` থেকে ফাংশন সরায় না, এবং বেশ কয়েকটি এলাকায় অনির্ধারিত আউটপুট ঠিক করা। শেয়ার্ড লাইব্রেরিতে প্রতীকের বিরুদ্ধে PC-আপেক্ষিক রিলোকেশনের ত্রুটিগুলি এখন সঠিকভাবে পরিচালিত হয়।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing