ஒரு Red Hat ஊழியர் கோல்ஸ் அசெம்பிளி முறையை வழங்கினார். குனு மேக்கின் வெளியீடு 4.2

ரிச்சர்ட் WM ஜோன்ஸ், ஆசிரியர் libguestfs, Red Hat இல் பணிபுரிகிறார், சமர்ப்பிக்க புதிய சட்டசபை பயன்பாடு இலக்குகள், ஸ்கிரிப்ட்களின் ஒட்டுமொத்த எளிமை மற்றும் புரிந்துகொள்ளும் தன்மையைப் பேணுகையில், தயாரிப்பின் பயன்பாட்டில் உள்ள குறைபாடுகள் மற்றும் சிக்கல்களை நீக்குவதை நோக்கமாகக் கொண்டது. மேக் பயன்பாடு 1976 இல் வடிவமைக்கப்பட்டது மற்றும் பல கருத்தியல் குறைபாடுகளைக் கொண்டுள்ளது; பொதுவான கருத்தை மாற்றாமல் இந்தக் குறைபாடுகளை அகற்ற இலக்குகள் திட்டமிடுகின்றன.
இலக்குகளின் மூல குறியீடு வழங்கியது GPLv2+ இன் கீழ் உரிமம் பெற்றது.

தீர்ந்த பிரச்சினைகள்:

  • ஒரே ஒரு சார்புத் தீர்மான யுக்திக்கான ஆதரவு - "இலக்குக் கோப்பு விடுபட்டிருந்தால் அல்லது சார்புகளில் ஒன்றை விட பழையதாக இருந்தால் சட்டசபை அறிவுறுத்தல் இயக்கப்படும்." URL இருப்பதைச் சரிபார்த்தல், எந்தக் கோப்புடனும் மாற்றியமைக்கும் நேரத்தை ஒப்பிட்டுப் பார்ப்பது, தொகுப்பின் கட்டமைப்பை மதிப்பீடு செய்தல் போன்ற பிற தந்திரங்களைச் செயல்படுத்த இலக்குகள் திட்டமிட்டுள்ளன. கோஜி, செக்சம்களின் ஒப்பீடு, சோதனைகளைத் தேர்ந்தெடுத்துத் தவிர்க்கும் சோதனை வழக்குகளை இயக்குதல்.
  • உருவாக்க இலக்குகளைச் செயலாக்கும் போது, ​​கோப்புகள் மற்றும் விதிப் பெயர்களைப் பிரிப்பதில்லை, இதன் விளைவாக, ஒரு விதியை இயக்கும் போது, ​​அது உருவாக்கப்பட்டதாகக் கூறும் கோப்பு உண்மையில் உருவாக்கப்படும் என்பதைச் சரிபார்க்க முடியாது. எடுத்துக்காட்டாக, சோதனைகளுடன் ஸ்கிரிப்ட்களை இயக்கும் "சோதனை" என்ற விதி உங்களிடம் இருந்தால், "சோதனை" என்ற கோப்பு தற்செயலாக உருவாக்கப்பட்டால், சோதனைகள் இனி அழைக்கப்படாது, ஏனெனில் இலக்கு கட்டமைக்கப்பட்டுள்ளது மற்றும் தேவையில்லை என்று மேக் கருதும். எந்தச் செயலையும் (தயாரிப்பில் உள்ள சிக்கலைச் சமாளிக்க, நீங்கள் ".PHONY: test" கட்டளையைக் குறிப்பிடலாம்). இலக்குகள் கோப்புகளையும் விதிப் பெயர்களையும் வெளிப்படையாகப் பிரிக்கிறது.

    ஒரு Red Hat ஊழியர் கோல்ஸ் அசெம்பிளி முறையை வழங்கினார். குனு மேக்கின் வெளியீடு 4.2

  • சட்டசபை வழிமுறைகளுக்கு ஒரே ஒரு அளவுருவை வழங்குவதில் சிக்கல்.

    ஒரு Red Hat ஊழியர் கோல்ஸ் அசெம்பிளி முறையை வழங்கினார். குனு மேக்கின் வெளியீடு 4.2

    பெயரிடப்பட்ட அளவுருக்களின் தன்னிச்சையான எண்ணைப் பயன்படுத்த இலக்குகள் உங்களை அனுமதிக்கிறது. எடுத்துக்காட்டாக, பிழைத்திருத்தக் கோப்பின் அடையாளத்தை பெயரிலிருந்து தனித்தனியாக பிரித்தெடுக்கலாம்:

    ஒரு Red Hat ஊழியர் கோல்ஸ் அசெம்பிளி முறையை வழங்கினார். குனு மேக்கின் வெளியீடு 4.2

  • ஷெல் மொழிபெயர்ப்பாளருடன் தொடர்புகொள்வதில் சிக்கல்கள். எடுத்துக்காட்டாக, கோப்பு மற்றும் கோப்பகப் பெயர்களில் உள்ள இடைவெளிகளைக் கட்டுப்படுத்த வேண்டிய அவசியம், ஒவ்வொரு கட்டளையை இயக்கும் போது தனி ஷெல் மொழிபெயர்ப்பாளரைத் தொடங்குவதில் உள்ள வளங்களை வீணாக்குதல், "$" எழுத்தின் இரட்டை விளக்கம் (ஷெல் மற்றும் மேக் இரண்டிலும் பயன்படுத்தப்படுகிறது), உள்தள்ளல்களை கணக்கில் எடுத்துக்கொள்வது.

    அசெம்பிளி மாறிகளுக்கு "$" என்பதற்குப் பதிலாக "%" குறியீட்டைப் பயன்படுத்துவதன் மூலம் இந்த சிக்கல்கள் இலக்குகளில் தீர்க்கப்படுகின்றன ("$" என்பது ஷெல்லுக்கு மட்டுமே உள்ளது), பாகுபடுத்தியைப் பயன்படுத்தி LALR(1), நீங்கள் மேற்கோள்களுடன் பாதைகள் மற்றும் கோப்பு பெயர்களைச் சுற்றி வர வேண்டும் மற்றும் சுருள் பிரேஸ்களுடன் குறியீடு தொகுதிகளை முன்னிலைப்படுத்த வேண்டும். முழு கட்டளைத் தொகுதியும் கட்டளை ஷெல்லின் ஒரு நிகழ்வில் தொடங்கப்பட்டது, மேலும் தொகுதிக்குள், சிறப்பு இடைவெளிகளைக் குறிப்பிடாமல் தன்னிச்சையான குறியீடு வடிவமைப்பு அனுமதிக்கப்படுகிறது.

    இருந்தது:
    இலக்கு: foo.o bar.o
    ${CC} ${CFLAGS} $< -o $@

    ஆனது:
    "இலக்கு": "foo.o", "bar.o" {
    %CC %CFLAGS %< -o %@
    }

இலக்குகளின் பிற அம்சங்கள்:

  • தன்னிச்சையான பெயர்கள் மற்றும் அளவுருக்களைக் குறிப்பிடுவதற்கான விருப்ப ஆதரவு:

    இலக்கு அனைத்தும் = : "இலக்கு"

    இலக்கு இணைப்பு =
    "இலக்கு" : "foo.o", "bar.o" { ...}

    இலக்கு தொகுத்தல் (பெயர்) =
    "%name.o" : "%name.c", "dep.h" { %CC %CFLAGS -c $^ -o $@}

  • இரண்டு வெளியீட்டு முறைகள்: கோப்புப்பெயர்களுடன் உருவாக்க இலக்குகளை பொருத்த பயன்முறையை உருவாக்கவும் (எடுத்துக்காட்டாக, கோப்பு "foo.o" இலக்கு "%name.o" உடன் பொருந்தும்), மற்றும் நேரடி தொகுத்தல் முறை:

    இலக்கு அனைத்து =: இணைப்பு

    இலக்கு இணைப்பு =
    "இலக்கு" : "foo.o", தொகுத்தல் ("பார்") { ... }

    இலக்கு தொகுத்தல் (பெயர்) =
    "%name.o" : "%name.c", "dep.h" { %CC %CFLAGS -c $^ -o $@}

  • சட்டசபை தந்திரங்கள் சிறப்பு விதிகளால் தீர்மானிக்கப்படுகின்றன, அவை சட்டசபை இலக்கை மீண்டும் இணைக்க வேண்டியதன் அவசியத்தை தீர்மானிக்க பயன்படுகிறது. ஒரு கோப்பின் முன்னிலையில் ஒரு இணைப்பு உருவாக்கப்பட்டால், இது தொடர்புடைய அடையாளம் (விதியின் பெயருக்கான "இலக்கு" மற்றும் கோப்பைச் சரிபார்ப்பதற்கான *கோப்பு ("இலக்கு") மூலம் வெளிப்படையாக தீர்மானிக்கப்படுகிறது.

    "இலக்கு" : "foo.o", "bar.o" { ...}

    *கோப்பு("இலக்கு") : *கோப்பு("foo.o"), *file("bar.o") { ...}

  • அசெம்பிளி தந்திரங்களின் தன்னிச்சையான பண்புகளை டெவலப்பர் வரையறுக்கலாம். "*கோப்பு" கொடி இயல்பாகவே வரையறுக்கப்படுகிறது (@{...} என்பது வெளியீட்டை அடக்குவதைக் குறிக்கிறது, மேலும் "வெளியேறு 99" மறுகட்டமைப்பின் அவசியத்தைக் குறிக்கிறது):

    தந்திரம் *கோப்பு (கோப்பு பெயர்) = @{
    test -f %கோப்பின் பெயர் || வெளியேறு 99
    % இல் f க்கு

    ஆதாரம்: opennet.ru

கருத்தைச் சேர்