C மற்றும் அசெம்ப்ளருக்கான உருவாக்கக் கருவியான ஃபோர்ஜ்ஜீரோ 1.9.0 வெளியிடப்பட்டது.

C, C++, மற்றும் அசெம்பிளி மொழிகளில் (NASM, GAS, FASM) எழுதப்பட்ட திட்டங்களுக்கான ஒரு கட்டளை வரி உருவாக்கக் கருவியான ForgeZero 1.9.0 (fz) வெளியிடப்பட்டுள்ளது. இந்தக் கருவியின் அடிப்படைப் பயன்பாட்டிற்கு Makefile அல்லது பிற உள்ளமைப்புக் கோப்புகள் தேவையில்லை. இந்தத் திட்டத்தின் நிரல் Go மொழியில் எழுதப்பட்டுள்ளது மற்றும் இது MIT உரிமத்தின் கீழ் உரிமம் பெற்றுள்ளது.

ஃபோர்ஜ்ஜீரோ கோப்பு வகையைக் கண்டறிந்து, பொருத்தமான பேக்கெண்டைத் தானாகவே தேர்ந்தெடுக்கிறது. ஒவ்வொரு கோட் கோப்பும் ஒரு ஆப்ஜெக்ட் கோப்பாகத் தொகுக்கப்பட்டு, பின்னர் அனைத்து ஆப்ஜெக்டுகளிலும் நகல் குளோபல் சிம்பல்கள் உள்ளதா எனச் சரிபார்க்கப்பட்டு, ஒரே எக்ஸிக்யூட்டபிள் கோப்பாக இணைக்கப்படுகிறது. தொகுக்கப்பட்ட கோப்புகள் கேச் செய்யப்பட்டு, அதனுடன் தொடர்புடைய கோட் கோப்புகளில் மாற்றங்கள் செய்யப்பட்ட பின்னரே மீண்டும் தொகுக்கப்படுகின்றன. விருப்பத்திற்கேற்ப, கோட் கோப்புப் புதுப்பிப்புகளுக்குப் பிறகு, கோப்பு முறைமை மாற்றங்களைக் கண்காணித்து மீண்டும் தொகுப்பது சாத்தியமாகும்.

ஆதரிக்கப்படும் கம்பைலர்கள் GCC, Clang, G++, மற்றும் Clang++; அசெம்ப்ளர்கள் NASM, GAS, மற்றும் FASM; லிங்கர்கள் LD, GCC, மற்றும் Clang; மற்றும் AR ஆர்க்கைவர் ஆதரிக்கப்படுகிறது. C மற்றும் C++ க்கான கட்டாய எச்சரிக்கைகள்: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". AddressSanitizer மற்றும் UndefinedBehaviorSanitizer சானிடைசர்கள் இயல்பாகவே இயக்கப்பட்டுள்ளன (அவற்றை -sanitize=false என்ற ஃபிளாக் மூலம் முடக்கலாம்). ஆதரிக்கப்படும் தளங்கள்: Linux, macOS, Windows (WSL2 மற்றும் சோதனை ரீதியாக இயல்பானது).

பதிப்பு 1.9.0 இல் முக்கிய மாற்றங்கள்:

  • "-target" கொடி சேர்க்கப்பட்டது இது, பொருத்தமான முன்னொட்டுக் கருவிகளைக் கொண்டு எந்தவொரு கட்டமைப்பிற்கும் குறுக்குத் தொகுப்பைச் செயல்படுத்துகிறது. fz, குறிப்பிடப்பட்ட அடையாளங்காட்டியின் (எ.கா., "arm-linux-gnueabihf-gcc") அடிப்படையில் தொகுப்பி, இணைப்பி மற்றும் காப்பகியின் பெயர்களைத் தானாகவே தீர்மானிக்கிறது. arm-linux-gnueabihf, aarch64-linux-gnu, மற்றும் riscv64-linux-gnu உட்பட அனைத்து நிலையான GNU இலக்குத் தளங்களும் ஆதரிக்கப்படுகின்றன.
  • மொழி சேவையக நெறிமுறைக்கான (LSP) ஆதரவு செயல்படுத்தப்பட்டுள்ளது. "-compile-commands" கொடியானது, திட்டத்தின் மூலத்தில் compile_commands.json (தொகுப்புத் தரவுத்தளம்) என்ற கோப்பை உருவாக்குகிறது. இந்தக் கோப்பு மொழியால் படிக்கப்படுகிறது. சேவையகங்கள் clangd மற்றும் ccls, LSP-ஐ ஆதரிக்கும் எடிட்டர்களில் (Neovim, VSCode, CLion, Emacs போன்றவை) தானியங்கு நிறைவு, குறியீடு வழிசெலுத்தல் மற்றும் கண்டறிதல் ஆகியவற்றை வழங்குகின்றன.
  • fz "-update" கட்டளையானது, புதிய பதிப்பை நிறுவுவதற்கு முன்பு தற்போதைய பைனரியை /usr/local/bin/fz.old என்ற கோப்பில் சேமிக்கிறது. இதன்மூலம், மீண்டும் நிறுவத் தேவையின்றி முந்தைய பதிப்பிற்குத் திரும்பச் செல்ல உங்களால் முடியும்.
  • பல கோப்பகத் திட்டங்களில், வெவ்வேறு துணைக்கோப்பகங்களில் உள்ள ஒரே அடிப்படைப் பெயர்களைக் கொண்ட கோப்புகள் ஒன்றின் ஆப்ஜெக்ட் கோப்பை மற்றொன்று மேலெழுதும் பிழை சரிசெய்யப்பட்டுள்ளது. இப்போது ஆப்ஜெக்ட் கோப்புப் பெயர்கள், மூலக் கோப்பின் முழுமையான சார்புப் பாதையின் அடிப்படையில் உருவாக்கப்படுகின்றன.
  • ஒற்றைக் கோப்புகளை உருவாக்குவதற்காக "fz -shell" என்ற ஊடாடும் முறை செயல்படுத்தப்பட்டுள்ளது.
  • SplitCommand, CmdSet, மற்றும் CmdBuild கட்டளைகளுக்கான சோதனை வரம்பு சேர்க்கப்பட்டுள்ளது. லிங்கர் தொகுப்பிற்கான சோதனை வரம்பு 17%-இலிருந்து 60%-ஆக அதிகரித்துள்ளது, மேலும் அனைத்து தொகுப்புகளுக்குமான வரம்பு 40%-ஐத் தாண்டியுள்ளது.
  • கருவித்தொடர் கூறுகள் விடுபட்டிருக்கும் சோதனைச் சூழல்களுக்காக, செக்டூல் (CheckTool) மாற்று இயங்குமுறை ஒன்று சேர்க்கப்பட்டுள்ளது.

முந்தைய வெளியீடுகளிலிருந்து ஏற்பட்ட மாற்றங்கள்:

  • பதிப்பு 1.8.0, ஸ்டாட்டிக் லைப்ரரிகளின் அசெம்ப்ளியைச் (-type static / -lib) செயல்படுத்துகிறது, பல டைரக்டரி ப்ராஜெக்ட்களில் ஆப்ஜெக்ட் கோப்புப் பெயர்களின் தனித்துவத்தை உறுதி செய்கிறது, மேலும் ".." பாதையைக் கடந்து செல்வது தொடர்பான அசெம்ப்ளி துணை அமைப்பில் உள்ள பிழைகளைச் சரிசெய்கிறது.
  • பதிப்பு 1.7.0, இணைத் தொகுப்பு (-j N, 0 — கோர்களின் எண்ணிக்கையைத் தானாகக் கண்டறிதல்), லிங்கர் ஸ்கிரிப்டுகளுக்கான ஆதரவு (-T) மற்றும் நுழைவுப் புள்ளி முகவரிகள் (-Ttext), ஊடாடும் பயன்முறை (fz -shell), வெளியீட்டு வடிவத்தின் வெளிப்படையான தேர்வு (elf32, elf64, bin), மற்றும் C கோப்புகளைப் போலவே அதே கடுமையான எச்சரிக்கைக் குறியீடுகளுடன் C++ கோப்புகளை (.cpp, .cc, .cxx) தொகுத்தல் ஆகிய அம்சங்களைச் சேர்க்கிறது.
  • பதிப்பு 1.6.0, திட்டத் துவக்கம் (fz -init, .fz.yaml, .fzignore, README.md ஆகியவற்றை உருவாக்குகிறது), பூட்லோடர்கள் மற்றும் ஃபார்ம்வேருக்கான bin வடிவமைப்பு ஆதரவு (-format bin), மற்றும் libs, flags.cc, flags.asm, flags.ld ஆகிய உள்ளமைவுப் புலங்களைச் சேர்க்கிறது.
  • பதிப்பு 1.5.0, பல மூல அடைவுகள் (source_dirs), தெளிவான கோப்புப் பட்டியல்கள் (source_files), சேர்க்க/விலக்கு வடிவங்கள், இணைப்பான் நூலகங்களுக்கான libs புலம், .fzignore கோப்பு மற்றும் உள்ளமைப்புக் கோப்புகளின் பல-நிலை ஒன்றிணைப்பு ஆகியவற்றை அறிமுகப்படுத்துகிறது.

ஆதாரம்: opennet.ru

DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster