منصوبے کے بارے میں

Hum ایک ابتدائی مرحلے (0.0.1 pre-alpha) کا ڈیزائن ڈرافٹ ہے جو سسٹمز پروگرامنگ لینگویج کے لیے ہے۔ اس کا بیان کردہ مقصد یہ ہے کہ low-level Rust/C++ طرز کی طاقت کو Python جیسی پڑھنے میں آسانی، static types، واضح effects، بطور ڈیفالٹ memory safety، اور compiler-generated context کے ساتھ جوڑا جائے جو انسانوں اور coding agents دونوں کے لیے ہو۔ بنیادی خیال یہ ہے کہ جو contracts عام طور پر comments کے طور پر لکھے جاتے ہیں وہ checked promises بن جائیں۔ ایک task مختلف sections declare کر سکتا ہے جیسے `why`، `targets`، `uses`، `changes`، `needs`، `ensures`، `protects`، `trusts`، `fails when`، `watch for`، `cost`، `allocates`، `avoids`، `tradeoffs`، `optimizes`، `tests`، اور `does`۔ repository میں ایک جان بوجھ کر sabotaged fixture شامل ہے جس کا `ensures: result == a + b` ایک `return a - b` body کی وجہ سے violate ہوتا ہے؛ اسے چلانے پر ایک diagnostic پیدا ہوتا ہے جو caller کے بجائے task implementation کو مورد الزام ٹھہراتا ہے۔ Ownership words (`borrow`، `change`، `consume`) کو بھی checked promises سمجھا جاتا ہے۔ Local views تنگ ہوتے ہیں: کسی field کو borrow کرنا اس field پر بعد کی write سے invalid ہو جاتا ہے، اور کسی list element کو borrow کرنا بعد کی growth سے invalid ہو جاتا ہے۔ ایک writable alias form (`let alias = change record.field`) کے ذریعے لکھا جاتا ہے اور یہ صرف اپنے آخری straight-line syntactic use تک live رہتا ہے۔ Use-after-move کی اطلاع move site کے نام کے ساتھ دی جاتی ہے۔ `old(...)` کسی parameter کی value کو task entry پر capture کرتا ہے، اس لیے وہ swap جو کبھی swap نہیں کرتا، اس کے اپنے contract سے پکڑا جاتا ہے۔ README حدود کے بارے میں واضح ہے: `cost:`، `allocates:`، `protects:`، اور `trusts:` لائنیں آج recorded intent، graph facts، اور generated obligations ہیں، enforced proofs نہیں۔ Checker reports ایک واضح non-claims list جاری کرتی ہیں تاکہ checked اور declared کے درمیان حد نظر آتی رہے۔ Status: ایک Milestone 0 Rust bootstrap compiler front-end، جس میں Milestone 1 execution `hum run` کے ذریعے پہلے Formal Core fixtures کی interpretation سے شروع ہو چکی ہے۔ پہلا canonical native slice `programs/integer_sign.hum` ہے، جسے `hum run --native --allow stdout.write ... --args -7` کے ساتھ چلایا جاتا ہے، جو source کو check کرتا ہے، backend facts verify کرتا ہے، اور supported Windows اور Linux hosts پر Cranelift کے ذریعے print کرتا ہے۔ README اسے ایک محدود program shape قرار دیتا ہے، عمومی native compilation نہیں۔ repository documentation-heavy ہے: architecture، language reference، grammar، syntax surface، capabilities، target facts، evidence reports، math obligations، resource reports، Core Hum contract/preview/lower/verify، type/effect/ownership/resource checks، IR contract اور readiness، backend input/probe/contract، LSP capabilities، doctor، نیز decision records، security model، unsafe policy، interop اور portability، memory safety model، compile-time strategy، stdlib strategy، runtime profiles، backend strategy، roadmap، governance، اور research notes۔ Tooling میں ایک TextMate grammar، ایک منصوبہ بند formatter (`humfmt`)، ایک package manager plan (Nectar)، اور CLI commands شامل ہیں جیسے `check`، `version`، `explain`، `diagnostics`، `capabilities`، `target-facts`، `core-contract`، `core-preview`، `core-lower`، `core-verify`، اور `full-type-check`، جن میں سے کئی JSON output دیتے ہیں۔ bootstrap compiler Rust میں لکھا گیا ہے اور بطور ڈیفالٹ unsafe code کو deny کرتا ہے، جس میں ایک reviewed، locally allowed unsafe JIT invocation boundary اور پانچ pinned Cranelift dependencies ہیں۔ Cargo موجودہ build اور install path ہے، تاہم README نوٹ کرتا ہے کہ Hum کو طویل مدت میں "صرف ایک Cargo crate" کے طور پر پیش نہیں کرنا چاہیے۔