প্রকল্প সম্পর্কে
Daslang (পূর্বে daScript) একটি উচ্চ-পারফরম্যান্স, স্ট্যাটিক্যালি টাইপড প্রোগ্রামিং ভাষা, যা গেম এবং রিয়েল-টাইম অ্যাপ্লিকেশনের জন্য নির্মিত। এটি Gaijin Entertainment-এ তৈরি করা হয়েছিল তাদের ECS গেম ইঞ্জিনে স্ক্রিপ্টিং ভাষা এবং C++-এর মধ্যে ইন্টারঅপ ওভারহেড মোকাবেলা করার জন্য, যেখানে ডেটা মার্শালিং ফ্রেম বাজেট গ্রাস করছিল। Daslang-এর ডেটা লেআউট C++-এর সাথে মেলে, তাই স্ক্রিপ্ট-থেকে-C++ কলগুলিকে প্রায় শূন্য-খরচ হিসেবে বর্ণনা করা হয়, কোনো মার্শালিং, বক্সিং বা রূপান্তর ছাড়াই।
README-তে উল্লিখিত মূল নীতিগুলির মধ্যে রয়েছে দ্রুত ইটারেশন (একটি সম্পূর্ণ প্রোডাকশন গেম প্রায় পাঁচ সেকেন্ডে রিকম্পাইল হয়, বিল্ট-ইন হট রিলোড সহ), এক্সপ্লিসিটনেস (কোনো লুকানো টাইপ রূপান্তর বা নীরব অ্যালোকেশন নেই; একটি `options log` ফ্ল্যাগ কম্পাইলার আউটপুট দেখায়), একটি প্রাগম্যাটিক নিরাপত্তা অবস্থান, GC চাপ কমানোর জন্য ম্যানুয়াল `delete`, নেটিভ গতির জন্য AOT থেকে C++ এবং একটি কম্পাইল-টাইম ম্যাক্রো সিস্টেম যা লাইব্রেরিগুলিকে একটি ডোমেনের জন্য সিনট্যাক্স পুনর্নির্মাণ করতে দেয়।
তিনটি এক্সিকিউশন স্তর পরিকল্পিত: একটি দ্রুত ট্রি-ভিত্তিক ইন্টারপ্রেটার, C++-এ AOT কম্পাইলেশন (কনসোলের জন্য প্রয়োজনীয়) এবং LLVM-এর মাধ্যমে JIT। একটি হাইব্রিড মোড সেমান্টিক হ্যাশিং ব্যবহার করে যাতে অপরিবর্তিত ফাংশন AOT থাকে যখন পরিবর্তিত ফাংশন ইন্টারপ্রেটারে ফিরে যায়, যা সম্পূর্ণ রিবিল্ড ছাড়াই হটফিক্সের অনুমতি দেয়।
ইনস্টলেশন রিকার্সিভ সাবমডিউল আপডেট সহ git clone-এর মাধ্যমে। বিল্ডিং CMake ব্যবহার করে Release কনফিগারেশন এবং `daslang` টার্গেট সহ। AOT ব্যবহার একটি `.das` ফাইল থেকে একটি C++ স্টাব তৈরি করে, যা পরে হোস্ট অ্যাপ্লিকেশনের সাথে কম্পাইল এবং লিঙ্ক করা হয়। JIT ব্যবহারের জন্য ডায়নামিক বাইন্ডিংয়ের কারণে একটি নির্দিষ্ট পাথে (`lib/LLVM.dll`) LLVM 16.0.6 শেয়ার্ড লাইব্রেরি প্রয়োজন, তারপর স্ক্রিপ্টগুলি `-jit` দিয়ে চলে। CMake অ্যাপ্লিকেশনগুলিতে এমবেডিং `find_package(DAS)`-এর মাধ্যমে করা হয়, যা `libDaScript` এবং `libDaScriptDyn` টার্গেট সরবরাহ করে।
একটি বিল্ট-ইন প্যাকেজ ম্যানেজার, daspkg, ইনস্টল, আপডেট এবং daslang প্যাকেজ বিল্ডিং পরিচালনা করে, যার মধ্যে বিশুদ্ধ-daslang এবং C++ নেটিভ মডিউল রয়েছে, একটি ইনডেক্স বা একটি git URL থেকে, সার্চ সমর্থন সহ। VS Code এক্সটেনশনগুলি সিনট্যাক্স হাইলাইটিং এবং ল্যাঙ্গুয়েজ-সার্ভার বৈশিষ্ট্য যেমন লিন্টিং, ডিবাগিং এবং স্নিপেট সরবরাহ করে। একটি MCP সার্ভার AI কোডিং সহকারীদের কাছে 29টি কম্পাইলার-সমর্থিত টুল প্রকাশ করে, যা কম্পাইলেশন ডায়াগনস্টিকস, টাইপ পরিদর্শন, গো-টু-ডেফিনিশন, ফাইন্ড-রেফারেন্স, AST ডাম্প, AOT জেনারেশন, এক্সপ্রেশন মূল্যায়ন, পার্স-অ্যাওয়ার গ্রেপ এবং প্যাকেজ ম্যানেজমেন্ট কভার করে, stdio ট্রান্সপোর্ট ব্যবহার করে কোনো অতিরিক্ত বিল্ড নির্ভরতা ছাড়াই। একটি tree-sitter গ্রামার কোডবেস পার্স করে এবং সিনট্যাক্স হাইলাইটিং, ast-grep-এর মাধ্যমে পার্স-অ্যাওয়ার সার্চ এবং একটি Zed এক্সটেনশন সহ এডিটর এক্সটেনশন সমর্থন করে।
প্রকল্পটি BSD 3-Clause লাইসেন্সের অধীনে, ভেন্ডরড থার্ড-পার্টি কম্পোনেন্ট তাদের নিজস্ব লাইসেন্স বজায় রাখে।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.