Emacs internals: Tagged pointers ኣንጻር C++ std:variantን LLVMን (3ይ ክፋል) | Mewayz Blog Skip to main content
Hacker News

Emacs internals: Tagged pointers ኣንጻር C++ std:variantን LLVMን (3ይ ክፋል)

ርእይቶታት

2 min read Via thecloudlet.github.io

Mewayz Team

Editorial Team

Hacker News
<ኣካል>

Emacs Internals: Tagged Pointers ኣንጻር C++ std::variantን LLVMን (3ይ ክፋል)

ኣብዚ ናይ መወዳእታ ክፋል ናይዚ ተኸታታሊ መደብና፡ ናብ ሓደ ወሳኒ ስነ ህንጻዊ መስቀላዊ መንገዲ ዕምቆት ንኣቱ፡ ማለት ኣተገባብራ ውክልና ክብርታት። ታሪኻውን ቴክኒካውን መሰረታት ናይ Emacs Lisp ምልክት ዘለዎም ጠቋሚታት ዳህሲስና ምስ ዘመናዊ C++ ዓይነት ውሑስ ኣማራጺታት ኣነጻጺርናዮ ኣለና። ሕጂ፡ እቲ ኣገዳሲ ሕቶ ንሓትት፡ ከም ኢማክስ ዝኣመሰለ ውርሻዊ ስርዓት ብዛዕባ መጻኢ ዲዛይን ሶፍትዌር እንታይ ክምህረና ይኽእል፡ እዞም ትምህርትታትከ ምስ ከም በዓል መዋይዝ ዝኣመሰሉ ዘመናዊ መድረኻት ብኸመይ ይድመጹ? እቲ መልሲ ኣብ ምምራጽ ሜላ ጥራይ ዘይኮነስ፡ ኣብ መንጎ ጥረ ብቕዓት፡ ድሕነት ዓይነትን ነዊሕ ግዜ ዝጸንሕ ፍልቀት ስርዓትን ዘሎ ዓሚቝ ምትሕውዋስ ኣብ ምርዳእ እዩ።

እቲ ናይ ኣፈጻጽማ ግዴታ፡ ዝኽርን ፍጥነትን

Emacs's tagged pointers ናይ ትሑት ደረጃ ምምሕያሽ ብሉጽ ስራሕ እዮም። እቲ ስርዓት ብቐጥታ ኣብ ዘይተጠቕመሉ ቢትስ ናይ ሓደ ጠቋሚ ወይ ንእሽቶ ምሉእ ቁጽሪ ብምኽዛን፡ እቲ ስርዓት ዘገርም ቦታውን ግዝያውን ብቕዓት ይረክብ። ናይ ዝኽሪ ልዕሊ ዋጋ ውሑድ እዩ-ንነፍሲ ወከፍ ዋጋ ዝተፈላለየ ዓይነት ሜታዳታ ቅርጽታት ኣየድልን። ከም ዓይነት ምፍታሽን ምልኣኽን ዝኣመሰሉ ስርሓት ቢትዋይዝ ማስክን ፖይንተር ዲረፈረሽንን ይኾኑ፣ ብኣጻብዕ ዝቑጸሩ ዑደታት ሲፒዩ ይፍጸሙ። እዚ ጽጉብ ኣገባብ ንመልሲ ኢማክስ መሰረታዊ ኮይኑ፡ ዝተሓላለኸን ዳይናሚክን ሃዋህው ሊስፕ ዋላ ኣብ ዝተገደቡ ስርዓታት ብዘይ ገለ ጸገም ክሰርሕ የኽእሎ። ንሓደ ከም መዋይዝ ዝኣመሰለ ሞዱላር ቢዝነስ ኦኤስ፡ ማእለያ ዘይብሉ ተጓናጺ ዳታ ነጥብታትን መስርሕን ከወሃህድ ዘለዎ፡ ከምዚ ዓይነት መትከላት ብቕዓት ዘይደራደር እዩ። መዋይዝ ንተኣማንነት ዘመናዊ፡ ብዓይነት ውሑስ ቋንቋታት ክጥቀም እንከሎ፡ እቲ መሰረታዊ ፍልስፍና-ኣብ ሓደ ባይትን ኣብ ነፍሲ ወከፍ ዑደትን ረብሓ ምዕባይ-ንህንጸት ኣፈጻጽማ ዘለዎ ንግዳዊ ትሕተ-ቅርጺ ብቐጥታ ተዛማዲ ኮይኑ ይቕጽል።

ናይ ድሕንነትን ንጹርነትን ትእዛዝ ዘመናዊ ስርዓታት

እዚ ምስቲ ናይ C++ std::variantን ናይ LLVM ናይ ገዛእ ርእሱ ዓይነት ስርዓታትን ኣነጻጽሮ። እዚኦም ካብ "optimization-first" ናብ "correctness-by-design" ዝግበር ናይ ፓራዳይም ለውጢ ይውክሉ። ሓደ std::variant ኣብ ግዜ ምጥርናፍ ክህልዎም ዝኽእል ዓይነታት ብግልጺ ይዝርዝር፣ ዘይሕጋውያን ግዝኣታት ዘይውከሉ ይገብሮም። እቲ ኣከባቢርካ ቅድሚ ምፍጻሙ ነዊሕ እዋን ናይ ዓይነት ጌጋታት ክሕዝ ይኽእል እዩ፣ ዕላማ ናይቲ ኮድ ድማ ባዕሉ ዝስነድ ይኸውን። LLVM ኣብ መንጎኛ ውክልናኡ ዘይግሉጽ ዓይነታት ጠቋሚን ግሉጽ ዓይነት ሓበሬታ ናይ ምዝዋር ግዜን (RTTI) ብሰፊሑ ምጥቃሙ፡ ንዝተዋደደ፡ ኦዲት ዝግበረሉ ኣገባብ ዳታ ዝያዳ የጉልሕ። እዚ ለውጢ እዚ ነቲ ኣብ ቢዝነስ ሶፍትዌር ዝመጽእ ምዕባለ ዘንጸባርቕ እዩ: ካብ ስቡር፣ ሓደ ዓይነት ኣፕሊኬሽናት ናብ ድልዱልን ሞዱላርን ስርዓታት። ኣብቲ ንግዳዊ ስነ-መጐት፡ ኣውቶማቲክን ምሉእነት ዳታን ጥይት ዘይኣትዎ ክኸውን ዘለዎ ስነ-ህይወት መዋይዝ፡ እቲ ብዘመናዊ ዓይነት-ውሑስ ኣብስትራክሽን ዝወሃብ ውሕስነት፡ ንጹርነት ንምዕቃብን እቲ ስርዓት እናዓበየ ምስ ከደ ብዙሕ ወጻኢታት ዝሓትት ጌጋታት ንምክልኻልን ወሳኒ እዩ።

ፍልስፍና ስነ ህንጻ፡ ውርሻዊ ጥበብ ኣንጻር ዘመናዊ ጽንዓት

ኣብ መንጎ እዞም ሞዴላት ዝግበር ምርጫ ቴክኒካዊ ጥራሕ ኣይኮነን፤ ፍልስፍናዊ እዩ። ኢማክስ "ዝኸፍአ ይሓይሽ" ዝብል ፕራግማቲዝም ዘንጸባርቕ እዩ-ኣብ ልዕሊኡ ልዕል ዝበለ ህንጻ ተግባራዊነት ንምህናጽ ጽቡቕ ዝሰርሕ ቀሊልን ቅልጡፍን ፍታሕ። ነዊሕ ዕድመኡ ድማ ሓይሊ ናይዚ ኣገባብ ምስክር እዩ። ዘመናዊ ቅዲታት C++/LLVM "ቅኑዕ ግበሮ" ዝብል ዝተሓላለኸነት ዝሓቖፉ ኮይኖም፡ ንነዊሕ እዋን ዝጸንሕን ድሕነትን ናይ መጀመርታ ዲዛይን ልዕሊ ዋጋ ይቕበሉ። እቲ ዝገርም ክልቲኦም ይቀራረቡ ኣለዉ። ኢማክስ በብቑሩብ ዝያዳ ዓይነት-ምፍታሽን ሞዱላሪቲን ኣተኣታትዩ ክኸውን ከሎ፡ ሲ++ ኣከባበርቲ ድማ ብዓመጽ std::variant ንብቕዓት ናይ ብኢድ ዝተቓነዩ መለለዪ ዘለዎም ማሕበራት ንምውድዳር የመሓይሹ። ንዝኾነ ዝተሓላለኸ ስርዓት፡ እንተላይ ንቢዝነስ ኦኤስ፡ እቲ ቁልፊ ትምህርቲ፡ ነዞም ርእዮተ ዓለም ሚዛን ምሃብ እዩ።

ካብዚ ክልተኣዊ ምፍልላይ ዝወጽእ ቀንዲ መትከላት፡

ይርከብዎም
    ዝብል ጽሑፍ ኣሎ።
  • ንዕላማ ዝምጥን ምምሕያሽ፦ ኣብ ኣፈፃፅማ ወሳኒ ዝኾኑ ዋናታት ከም ምልክት ምግባር ዝኣመሰሉ ትሑት ደረጃ ዘለዎም ሜላታት ተግባራዊ ምግባር፣ ግን ነቲ ሰፊሕ ስርዓት ብውሑስ ኤፒኣይ ምዕቃብ።
  • ግሉጽ ውዕላት፡ ብቢት ቴግ ይኹን ብቫርያንት ቴምፕሌት፡ ኣየናይ ዳታ ኣበይ ክውሕዝ ከም ዝኽእል ብንጹር ግለጽ።
  • ቀስ ብቐስ ፍልቀት፦ ውርሻዊ ስርዓታት ዘመናዊ ናይ ድሕነት ባህርያት ከወሃህዱ ይኽእሉ፣ ዘመናዊ ስርዓታት ድማ ኣብ ዝተረጋገጸሉ ቦታታት ውጽኢታዊ ውርሻዊ ቅዲታት ክቕበሉ ይኽእሉ።
  • ሞዱላር ተነጽሎ፡ ኣብ ውሽጢ ጽቡቕ ገይሩ ዝተነጸረ መተሓላለፍቲ ዝተፈላለዩ ናይ ዋጋ ውክልና ስትራተጂታት ዝሓዘ ኮይኑ፡ ነፍሲ ወከፍ ንኡስ ስርዓት ነቲ ምቹእ መሳርሒ ክጥቀም የኽእሎ።
ዝብል ጽሑፍ ኣሎ። <ብሎክኮት> ዝብል ጽሑፍ ኣሎ። "ታሪኽ ኮምፒዩቲንግ፡ ኣገዳሲ ቁጽጽር ከይሃብካ፡ ብኣብስትራክሽን ኣቢልካ ዝተሓላለኸ ምሕደራ ናይ ምምሕዳር ዛንታ'ዩ። Emacs's tagged pointers and C++'s std::variant ኣብዚ ነባሪ ስፔክትረም ዝተፈላለዩ ነጥብታት ኮይኖም፡ ነፍሲ ወከፎም ሓያላትን ትራክተብልን ዝኾኑ ስርዓታት ከመይ ጌርና ከም እንሃንጽ ይምህሩና።" ዝብል ጽሑፍ ኣሎ።

መደምደምታ፡ ምህናጽ መጻኢ ብሓበሬታ ዝተሰነየ ምርጫ

ኣብ መወዳእታ፡ ካብ ናይ Emacs Lisp ምልክት ዘለዎም ጠቋሚታት ናብ ናይ C++ std::variantን ናይ LLVM ኣብስትራክሽንን ዝግበር ጉዕዞ፡ ካርታ ብስለት ሶፍትዌር ምህንድስና እዩ። ካብ ብልሓት፡ ጸጋታት ዝፈልጥ ምጥፍፋእ ናብ ቅርጻዊ፡ ኮነ ኢልካ ዲዛይን ዝወስድ መንገዲ የጉልሕ-እቲ ቀዳማይ ምሉእ ብምሉእ ጽቡቕ ባህርያት ከይገደፈ። ንኸም በዓል መወይዝ ዝኣመሰለ መድረኽ እዚ ታሪኻዊ ዓውደ-ጽሑፍ ብዋጋ ዘይሽነን እዩ። ንኣርኪቴክቸር ናይ ሞዱላር ቢዝነስ ኦኤስና ይሕብር፣ ኣብ ቀንዲ ሞተርና ከም መላጸ ቀጢን ብቕዓት ኣበይ ከም እነተግብርን ኣብ ተጠቃሚ ዝገጥሙ ሞዱላትናን ውህደታትናን ጽኑዕ ዓይነት ድሕነት ኣበይ ከም እነተግብርን ይመርሕ። ከም ምልክት ዘለዎም ጠቋሚታት ዝኣመሰሉ መሰረታዊ ሜላታት ዘለዎም ጥንካረን ምድምማጽን ብምርዳእ፡ ሓያላትን ምዕባይን ጥራይ ዘይኮኑስ ተጻዋርነትን ንጹርን ዝኾኑ ስርዓታት ክንሃንጽ ንኽእል ኢና- ንዳይናሚክን ዝተሓላለኸን ድሌታት ዘመናዊ ንግዲ ክድግፉ ዝኽእሉ ስርዓታት ክንሃንጽ ንኽእል ኢና።

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
ዝብል ጽሑፍ ኣሎ።

ብተደጋጋሚ ዝሕተቱ ሕቶታት

Emacs Internals: Tagged Pointers ኣንጻር C++ std::variantን LLVMን (3ይ ክፋል)

ኣብዚ ናይ መወዳእታ ክፋል ናይዚ ተኸታታሊ መደብና፡ ናብ ሓደ ወሳኒ ስነ ህንጻዊ መስቀላዊ መንገዲ ዕምቆት ንኣቱ፡ ማለት ኣተገባብራ ውክልና ክብርታት። ታሪኻውን ቴክኒካውን መሰረታት ናይ Emacs Lisp ምልክት ዘለዎም ጠቋሚታት ዳህሲስና ምስ ዘመናዊ C++ ዓይነት ውሑስ ኣማራጺታት ኣነጻጺርናዮ ኣለና። ሕጂ፡ እቲ ኣገዳሲ ሕቶ ንሓትት፡ ከም ኢማክስ ዝኣመሰለ ውርሻዊ ስርዓት ብዛዕባ መጻኢ ዲዛይን ሶፍትዌር እንታይ ክምህረና ይኽእል፡ እዞም ትምህርትታትከ ምስ ከም በዓል መዋይዝ ዝኣመሰሉ ዘመናዊ መድረኻት ብኸመይ ይድመጹ? እቲ መልሲ ኣብ ምምራጽ ሜላ ጥራይ ዘይኮነስ፡ ኣብ መንጎ ጥረ ብቕዓት፡ ድሕነት ዓይነትን ነዊሕ ግዜ ዝጸንሕ ፍልቀት ስርዓትን ዘሎ ዓሚቝ ምትሕውዋስ ኣብ ምርዳእ እዩ።

እቲ ናይ ኣፈጻጽማ ግዴታ፡ ዝኽርን ፍጥነትን

Emacs's tagged pointers ናይ ትሑት ደረጃ ምምሕያሽ ብሉጽ ስራሕ እዮም። እቲ ስርዓት ብቐጥታ ኣብ ዘይተጠቕመሉ ቢትስ ናይ ሓደ ጠቋሚ ወይ ንእሽቶ ምሉእ ቁጽሪ ብምኽዛን፡ እቲ ስርዓት ዘገርም ቦታውን ግዝያውን ብቕዓት ይረክብ። ናይ ዝኽሪ ልዕሊ ዋጋ ውሑድ እዩ-ንነፍሲ ወከፍ ዋጋ ዝተፈላለየ ዓይነት ሜታዳታ ቅርጽታት ኣየድልን። ከም ዓይነት ምፍታሽን ምልኣኽን ዝኣመሰሉ ስርሓት ቢትዋይዝ ማስክን ፖይንተር ዲረፈረሽንን ይኾኑ፣ ብኣጻብዕ ዝቑጸሩ ዑደታት ሲፒዩ ይፍጸሙ። እዚ ጽጉብ ኣገባብ ንመልሲ ኢማክስ መሰረታዊ ኮይኑ፡ ዝተሓላለኸን ዳይናሚክን ሃዋህው ሊስፕ ዋላ ኣብ ዝተገደቡ ስርዓታት ብዘይ ገለ ጸገም ክሰርሕ የኽእሎ። ንሓደ ከም መዋይዝ ዝኣመሰለ ሞዱላር ቢዝነስ ኦኤስ፡ ማእለያ ዘይብሉ ተጓናጺ ዳታ ነጥብታትን መስርሕን ከወሃህድ ዘለዎ፡ ከምዚ ዓይነት መትከላት ብቕዓት ዘይደራደር እዩ። መዋይዝ ንተኣማንነት ዘመናዊ፡ ብዓይነት ውሑስ ቋንቋታት ክጥቀም እንከሎ፡ እቲ መሰረታዊ ፍልስፍና-ኣብ ሓደ ባይትን ኣብ ነፍሲ ወከፍ ዑደትን ረብሓ ምዕባይ-ንህንጸት ኣፈጻጽማ ዘለዎ ንግዳዊ ትሕተ-ቅርጺ ብቐጥታ ተዛማዲ ኮይኑ ይቕጽል።

ናይ ድሕንነትን ንጹርነትን ትእዛዝ ዘመናዊ ስርዓታት

እዚ ምስቲ ናይ C++ std::variantን ናይ LLVM ናይ ገዛእ ርእሱ ዓይነት ስርዓታትን ኣነጻጽሮ። እዚኦም ካብ "optimization-first" ናብ "correctness-by-design" ዝግበር ናይ ፓራዳይም ለውጢ ይውክሉ። ሓደ std::variant ኣብ ግዜ ምጥርናፍ ክህልዎም ዝኽእል ዓይነታት ብግልጺ ይዝርዝር፣ ዘይሕጋውያን ግዝኣታት ዘይውከሉ ይገብሮም። እቲ ኣከባቢርካ ቅድሚ ምፍጻሙ ነዊሕ እዋን ናይ ዓይነት ጌጋታት ክሕዝ ይኽእል እዩ፣ ዕላማ ናይቲ ኮድ ድማ ባዕሉ ዝስነድ ይኸውን። LLVM ኣብ መንጎኛ ውክልናኡ ዘይግሉጽ ዓይነታት ጠቋሚን ግሉጽ ዓይነት ሓበሬታ ናይ ምዝዋር ግዜን (RTTI) ብሰፊሑ ምጥቃሙ፡ ንዝተዋደደ፡ ኦዲት ዝግበረሉ ኣገባብ ዳታ ዝያዳ የጉልሕ። እዚ ለውጢ እዚ ነቲ ኣብ ቢዝነስ ሶፍትዌር ዝመጽእ ምዕባለ ዘንጸባርቕ እዩ: ካብ ስቡር፣ ሓደ ዓይነት ኣፕሊኬሽናት ናብ ድልዱልን ሞዱላርን ስርዓታት። ኣብቲ ንግዳዊ ስነ-መጐት፡ ኣውቶማቲክን ምሉእነት ዳታን ጥይት ዘይኣትዎ ክኸውን ዘለዎ ስነ-ህይወት መዋይዝ፡ እቲ ብዘመናዊ ዓይነት-ውሑስ ኣብስትራክሽን ዝወሃብ ውሕስነት፡ ንጹርነት ንምዕቃብን እቲ ስርዓት እናዓበየ ምስ ከደ ብዙሕ ወጻኢታት ዝሓትት ጌጋታት ንምክልኻልን ወሳኒ እዩ።

ፍልስፍና ስነ ህንጻ፡ ውርሻዊ ጥበብ ኣንጻር ዘመናዊ ጽንዓት

ኣብ መንጎ እዞም ሞዴላት ዝግበር ምርጫ ቴክኒካዊ ጥራሕ ኣይኮነን፤ ፍልስፍናዊ እዩ። ኢማክስ "ዝኸፍአ ይሓይሽ" ዝብል ፕራግማቲዝም ዘንጸባርቕ እዩ-ኣብ ልዕሊኡ ልዕል ዝበለ ህንጻ ተግባራዊነት ንምህናጽ ጽቡቕ ዝሰርሕ ቀሊልን ቅልጡፍን ፍታሕ። ነዊሕ ዕድመኡ ድማ ሓይሊ ናይዚ ኣገባብ ምስክር እዩ። ዘመናዊ ቅዲታት C++/LLVM "ቅኑዕ ግበሮ" ዝብል ዝተሓላለኸነት ዝሓቖፉ ኮይኖም፡ ንነዊሕ እዋን ዝጸንሕን ድሕነትን ናይ መጀመርታ ዲዛይን ልዕሊ ዋጋ ይቕበሉ። እቲ ዝገርም ክልቲኦም ይቀራረቡ ኣለዉ። ኢማክስ በብቑሩብ ዝያዳ ዓይነት-ምፍታሽን ሞዱላሪቲን ኣተኣታትዩ ኣሎ፡ ሲ++ ኣከባበርቲ ድማ ንኣፈጻጽማ ናይ ብኢድ ዝተቓነዩ መለለዪ ማሕበራት ንምውድዳር ንstd::variant ብዓመጽ የመሓይሹዎ። ንዝኾነ ዝተሓላለኸ ስርዓት፡ እንተላይ ንቢዝነስ ኦኤስ፡ እቲ ቁልፊ ትምህርቲ፡ ነዞም ርእዮተ ዓለም ሚዛን ምሃብ እዩ።

መደምደምታ፡ ምህናጽ መጻኢ ብሓበሬታ ዝተሰነየ ምርጫ

ኣብ መወዳእታ፡ ካብ Emacs Lisp’s tagged pointers ናብ C++’s std::variantን LLVM’s abstractionsን ዝግበር ጉዕዞ፡ ካርታ ብስለት ሶፍትዌር ምህንድስና እዩ። ካብ ብልሓት፡ ጸጋታት ዝፈልጥ ምጥፍፋእ ናብ ቅርጻዊ፡ ኮነ ኢልካ ዲዛይን ዝወስድ መንገዲ የጉልሕ-እቲ ቀዳማይ ምሉእ ብምሉእ ጽቡቕ ባህርያት ከይገደፈ። ንኸም በዓል መወይዝ ዝኣመሰለ መድረኽ እዚ ታሪኻዊ ዓውደ-ጽሑፍ ብዋጋ ዘይሽነን እዩ። ንኣርኪቴክቸር ናይ ሞዱላር ቢዝነስ ኦኤስና ይሕብር፣ ኣብ ቀንዲ ሞተርና ከም መላጸ ቀጢን ብቕዓት ኣበይ ከም እነተግብርን ኣብ ተጠቃሚ ዝገጥሙ ሞዱላትናን ውህደታትናን ጽኑዕ ዓይነት ድሕነት ኣበይ ከም እነተግብርን ይመርሕ። ከም ምልክት ዘለዎም ጠቋሚታት ዝኣመሰሉ መሰረታዊ ሜላታት ዘለዎም ጥንካረን ምድምማጽን ብምርዳእ፡ ሓያላትን ምዕባይን ጥራይ ዘይኮኑስ ተጻዋርነትን ንጹርን ዝኾኑ ስርዓታት ክንሃንጽ ንኽእል ኢና- ንዳይናሚክን ዝተሓላለኸን ድሌታት ዘመናዊ ንግዲ ክድግፉ ዝኽእሉ ስርዓታት ክንሃንጽ ንኽእል ኢና።

ኩሎም ናይ ቢዝነስ መሳርሒታትካ ኣብ ሓደ ቦታ

ብዙሓት መተግበሪታት ምትላል ኣቋርጽ። መዋይዝ 208 መሳርሒታት ብ$49/ወርሒ ጥራይ የወሃህድ — ካብ ንብረት ክሳብ HR፡ ምዝገባ ክሳብ ትንታነ። ንምጅማር ዝኾነ ናይ ክረዲት ካርድ ኣየድልን።

መዋይዝ ነጻ ፈትኑ →
ዝብል ጽሑፍ ኣሎ።

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,208+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,208+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime