LLVM lld വികസിപ്പിച്ച മോൾഡ് 1.1 ലിങ്കറിന്റെ റിലീസ്

മോൾഡ് ലിങ്കറിന്റെ ഒരു റിലീസ് പ്രസിദ്ധീകരിച്ചു, ഇത് ലിനക്സ് സിസ്റ്റങ്ങളിലെ ഗ്നു ലിങ്കറിന് പകരമായി വേഗമേറിയതും സുതാര്യവുമായ പകരമായി ഉപയോഗിക്കാം. LLVM lld ലിങ്കറിന്റെ രചയിതാവാണ് പദ്ധതി വികസിപ്പിച്ചത്. ഒബ്‌ജക്‌റ്റ് ഫയലുകൾ ലിങ്ക് ചെയ്യുന്നതിന്റെ ഉയർന്ന വേഗതയാണ് മോൾഡിന്റെ ഒരു പ്രധാന സവിശേഷത, ഇത് ഗ്നു ഗോൾഡ്, എൽഎൽവിഎം എൽഎൽഡി ലിങ്കറുകളേക്കാൾ വളരെ മുന്നിലാണ് (സിപി യൂട്ടിലിറ്റി ഉപയോഗിച്ച് ഫയലുകൾ പകർത്തുന്നതിന്റെ പകുതി വേഗത്തിലാണ് മോൾഡിൽ ലിങ്ക് ചെയ്യുന്നത്). കോഡ് C++ (C++20) ൽ എഴുതുകയും AGPLv3 ലൈസൻസിന് കീഴിൽ വിതരണം ചെയ്യുകയും ചെയ്യുന്നു.

പുതിയ വേർസികൾ:

  • ലിങ്കിംഗ് ഘട്ടത്തിൽ ഒപ്റ്റിമൈസേഷനുള്ള പിന്തുണ ചേർത്തു (LTO, ലിങ്ക് ടൈം ഒപ്റ്റിമൈസേഷൻ). ബിൽഡ് പ്രോസസ്സിൽ ഉൾപ്പെട്ടിരിക്കുന്ന എല്ലാ ഫയലുകളുടെയും അവസ്ഥ കണക്കിലെടുത്ത് LTO ഒപ്റ്റിമൈസേഷനുകൾ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, അതേസമയം പരമ്പരാഗത ഒപ്റ്റിമൈസേഷൻ മോഡുകൾ ഓരോ ഫയലും വെവ്വേറെ ഒപ്റ്റിമൈസ് ചെയ്യുകയും മറ്റ് ഫയലുകളിൽ നിർവചിച്ചിരിക്കുന്ന കോൾ ഫംഗ്ഷനുകൾക്കുള്ള വ്യവസ്ഥകൾ കണക്കിലെടുക്കുകയും ചെയ്യുന്നില്ല. മുമ്പ്, GCC അല്ലെങ്കിൽ LLVM ഇന്റർമീഡിയറ്റ് കോഡ് (IR) ഫയലുകൾ കണ്ടെത്തിയപ്പോൾ, അനുബന്ധ ld.bfd അല്ലെങ്കിൽ ld.lld ലിങ്കറുകൾ വിളിച്ചിരുന്നു, ഇപ്പോൾ മോൾഡ് IR ഫയലുകൾ സ്വതന്ത്രമായി പ്രോസസ്സ് ചെയ്യുകയും GNU ld, GNU എന്നിവയിലും ഉപയോഗിക്കുന്ന ലിങ്കർ പ്ലഗിൻ API ഉപയോഗിക്കുകയും ചെയ്യുന്നു. സ്വർണ്ണ ലിങ്കറുകൾ. പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ, LTO മറ്റ് ലിങ്കറുകളേക്കാൾ വളരെ വേഗതയുള്ളതാണ്, കാരണം മിക്ക സമയവും ലിങ്ക് ചെയ്യുന്നതിനുപകരം കോഡ് ഒപ്റ്റിമൈസേഷനുകൾ നടത്താനാണ് ചെലവഴിക്കുന്നത്.
  • ഹോസ്റ്റിലും ടാർഗെറ്റ് പ്ലാറ്റ്‌ഫോമുകളിലും RISC-V (RV64) ആർക്കിടെക്ചറിനുള്ള പിന്തുണ ചേർത്തു.
  • പോസ്റ്റ്-ലിങ്കിംഗ് ഘട്ടത്തിൽ ഒപ്റ്റിമൈസേഷനുകളുടെ തുടർന്നുള്ള പ്രയോഗത്തിനായി ഇൻപുട്ട് ഫയലുകളിൽ നിന്ന് ഔട്ട്‌പുട്ട് ഫയലുകളിലേക്ക് റീലോക്കേഷൻ വിഭാഗങ്ങൾ പകർത്തുന്നത് പ്രവർത്തനക്ഷമമാക്കുന്നതിന് “--എമിറ്റ്-റിലോക്സ്” ഓപ്ഷൻ ചേർത്തു.
  • വെർച്വൽ അഡ്രസ് സ്‌പെയ്‌സിൽ അവയുടെ വിലാസങ്ങൾ ശരിയാക്കുന്നതിന് മുമ്പ് വിഭാഗങ്ങളുടെ ക്രമം ക്രമരഹിതമാക്കുന്നതിന് “--ഷഫിൾ-സെക്ഷൻസ്” ഓപ്ഷൻ ചേർത്തു.
  • ഇൻപുട്ട് ഫയലുകൾ തമ്മിലുള്ള ഡിപൻഡൻസിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ CSV ഫോർമാറ്റിൽ ഔട്ട്‌പുട്ട് ചെയ്യുന്നതിന് “--print-dependencies”, “--print-dependencies=full” എന്നീ ഓപ്ഷനുകൾ ചേർത്തു, ഉദാഹരണത്തിന്, ചില ഒബ്‌ജക്റ്റ് ഫയലുകൾ ലിങ്ക് ചെയ്യുമ്പോൾ കണക്ഷനുള്ള കാരണങ്ങൾ വിശകലനം ചെയ്യാൻ ഇത് ഉപയോഗിക്കാം. അല്ലെങ്കിൽ ഫയലുകൾക്കിടയിൽ മിനിഫിക്കേഷൻ വർക്ക് ഡിപൻഡൻസികൾ നടത്തുമ്പോൾ.
  • "--warn-one", "--warn-textrel" എന്നീ ഓപ്ഷനുകൾ ചേർത്തു.
  • libxxhash-ലെ ആശ്രിതത്വം നീക്കം ചെയ്തു.

അവലംബം: opennet.ru

ഒരു അഭിപ്രായം ചേർക്കുക