మే 3న, GCC తొమ్మిదవ వెర్షన్ యొక్క మొదటి పబ్లిక్ విడుదల జరిగింది: GCC 9.1.
ఇది ఎనిమిదవదానితో పోలిస్తే అనేక ముఖ్యమైన మెరుగుదలలు మరియు జోడింపులను కలిగి ఉంది
సంస్కరణ: Telugu.
సాధారణ మార్పులు
ఎంపికలు
- పరిమాణాన్ని అంగీకరించే ఆదేశాలు ఇప్పుడు 64-బిట్ విలువలు మరియు పరిమాణాన్ని పేర్కొనడానికి ప్రత్యయాలకు మద్దతు ఇస్తాయి;
- ఎంపిక జోడించబడింది -ఫ్లైవ్-ప్యాచింగ్, డైనమిక్ కోడ్ రీప్లేస్మెంట్కు విధ్వంసకరంగా ఉండే ఆప్టిమైజేషన్లను నియంత్రించడానికి;
- కమాండ్ షెల్లో ఆటో-కంప్లీషన్కు మద్దతు ఇవ్వడానికి --కంప్లీషన్ ఎంపిక జోడించబడింది;
- కంపైలర్ డయాగ్నస్టిక్స్ ఇప్పుడు లైన్ నంబర్లను కలిగి ఉంది (-fno-diagnostics-షో-లైన్-సంఖ్యలు) మరియు
సమాచారం రకం (fno-డయాగ్నోస్టిక్స్-షో-లేబుల్స్); - ఎంపిక జోడించబడింది -fdiagnostics-format=json JSON ఆకృతిలో డయాగ్నస్టిక్లను అవుట్పుట్ చేయడానికి;
- అమరికను పేర్కొనడానికి ఎంపికలు (-ఫాలైన్-ఫంక్షన్స్, ఉదాహరణకు) ఇప్పుడు రెండు అమరిక ఎంపికలను అంగీకరించవచ్చు;
- ఫైల్ల జాబితాను ఫిల్టర్ చేయడానికి ఎంపికలు జోడించబడ్డాయి (-fprofile-filter-files, -fprofile-exclude-files), ఇవి ప్రొఫైలర్ చేత వాయిద్యం చేయబడతాయి;
- అడ్రస్ శానిటైజర్ ఇప్పుడు స్టాక్లోని వేరియబుల్స్కు చెల్లని యాక్సెస్లను క్యాచ్ చేయడానికి మరింత కాంపాక్ట్ అలైన్మెంట్ని ఉపయోగిస్తుంది;
- అనేక అవుట్పుట్ మెరుగుదలలు -fopt-info;
- ఎంపిక జోడించబడింది -fsave-ఆప్టిమైజేషన్-రికార్డ్ ఆప్టిమైజేషన్ నివేదికను ఫైల్లో సేవ్ చేయడానికి;
- ఎంపిక జోడించబడింది -fipa-స్టాక్-అలైన్మెంట్ и -fipa-రిఫరెన్స్-అడ్రస్ చేయగల.
కొత్త అంతర్నిర్మిత లక్షణాలు
కొత్త లక్షణం
ఇతర
దీనికి సంబంధించిన అనేక కోడ్ ఉత్పత్తి మెరుగుదలలు:
- స్విచ్ నిర్మాణాల తరం;
- అంతర్-విధానపరమైన ఆప్టిమైజేషన్లు;
- ప్రొఫైలింగ్ సమాచారం ఆధారంగా ఆప్టిమైజేషన్;
- అసెంబ్లీ దశలో ఆప్టిమైజేషన్ (LTO);
అలాగే gcov యొక్క అంతర్గత ఆకృతి ఇప్పుడు JSON మరియు కొత్త ఎంపిక --ఉపయోగం-హాట్నెస్-రంగులు కోడ్ యొక్క రంగు పంక్తులు ఎంత తరచుగా ఉపయోగించబడుతున్నాయి అనే దాని ఆధారంగా ఉంటాయి.
భాషలు
అమలు యొక్క నాణ్యత మరియు పరిపూర్ణత OpenACC C, C++, మరియు Fortran భాషలు అభివృద్ధి చెందుతూనే ఉన్నాయి.
సి లాంటి భాషలు
- OpenMP 5.0కి పాక్షిక మద్దతు అమలు చేయబడింది;
- ఫీచర్ జోడించబడింది __బిల్టిన్_కన్వర్ట్వెక్టర్;
- హెచ్చరిక జోడించబడింది -వాడ్డ్రెస్-ఆఫ్-ప్యాక్డ్-మెంబర్;
- ఇప్పటికే ఉన్న అనేక హెచ్చరికలకు మెరుగుదలలు;
- మాక్రోకు తప్పుడు ఆర్గ్యుమెంట్ల సంఖ్యను పంపుతున్నప్పుడు ఎర్రర్ టెక్స్ట్ ఇప్పుడు మాక్రో యొక్క డిక్లరేషన్ను కలిగి ఉంటుంది;
- అక్షర దోష దిద్దుబాటు సూచనలకు మెరుగుదలలు.
C
- -std=c2x (భవిష్యత్ C ప్రమాణం) కోసం ఒక ఆర్గ్యుమెంట్తో _Static_assert మద్దతు;
- కొత్త హెచ్చరిక -అసంపూర్ణ-విలువ, ఇది abs() వంటి ఫంక్షన్ల కోసం తప్పు వాదన రకాన్ని క్యాచ్ చేస్తుంది.
C ++
- కొత్త హెచ్చరికలు: -విస్మరించబడిన-కాపీ,
-వినిట్-లిస్ట్-జీవితకాలం,
-అవగాహన-కదలిక,
-Wpessimizing-move,
-Wclass-మార్పిడి; - భవిష్యత్ ప్రమాణాల నుండి కొత్త ఫీచర్లను అమలు చేయడానికి పని జరుగుతోంది C++2a;
- ఫ్రంటెండ్ ఇప్పుడు అనేక సోర్స్ కోడ్ మూలకాల గురించి మరింత ఖచ్చితమైన సమాచారాన్ని నిల్వ చేస్తుంది, ఇది డయాగ్నస్టిక్స్లో మరింత వివరణాత్మక సమాచారాన్ని ప్రదర్శించడానికి మిమ్మల్ని అనుమతిస్తుంది;
- ఓవర్లోడ్ చేయబడిన ఫంక్షన్లు, బైనరీ ఆపరేటర్లు, ఫంక్షన్ కాల్లు మరియు ఫార్మాట్ స్ట్రింగ్ల కోసం మెరుగైన డయాగ్నస్టిక్స్;
- అనేక జనాదరణ పొందిన ఎర్రర్ల కోసం (తప్పిపోయిన కుండలీకరణాలు, నేమ్స్పేస్లు, అక్షరదోషాలు మొదలైనవి) కోసం కొన్ని డెవలప్మెంట్ ఎన్విరాన్మెంట్ల మద్దతుతో ఆటోమేటిక్ పరిష్కారాలు జోడించబడ్డాయి.
libstdc++
- C++17 అమలు ఇకపై ప్రయోగాత్మకం కాదు;
- సమాంతర అల్గోరిథంలు జోడించబడ్డాయి, , , ఎ ఇకపై -lstdc++fs అవసరం లేదు;
- C++2a కోసం మెరుగైన ప్రయోగాత్మక మద్దతు ( , , std::bind_front, etc.);
- Windowsలో ఫైల్ స్ట్రీమ్లను తెరవడానికి మద్దతు, దీని మార్గాలు నాన్-చార్ క్యారెక్టర్లను కలిగి ఉంటాయి;
- ప్రారంభ మద్దతు Windowsలో;
- నెట్వర్కింగ్ TS కోసం ప్రారంభ మద్దతు.
D
D భాష వెర్షన్ 2.076 GCCలో చేర్చబడింది.
ఫోర్ట్రాన్
- అసమకాలిక I/O కోసం పూర్తి మద్దతు;
- MINLOC మరియు MAXLOC కోసం BACK ఆర్గ్యుమెంట్ అమలు చేయబడింది;
- FINDLOC మరియు IS_CONTIGUS ఫంక్షన్లు అమలు చేయబడ్డాయి;
- సంక్లిష్ట సంఖ్యల భాగాలను యాక్సెస్ చేయడానికి సింటాక్స్ అమలు చేయబడింది: c%re మరియు c%im;
- అమలు చేయబడిన సింటాక్స్ str%len మరియు a%kind;
- అమలు చేయబడిన C డిస్క్రిప్టర్లు మరియు ISO_Fortran_binding.h హెడర్;
- ఆర్గ్యుమెంట్లలో ఒకటి NaN అయినప్పుడు MAX మరియు MIN ఫంక్షన్ల ఫలితం కోసం అవసరాలు సడలించబడ్డాయి;
- ఎంపిక జోడించబడింది -fdec-చేర్చండి;
- డైరెక్టివ్ జోడించబడింది బిల్టిన్.
libgccjit
- ఫీచర్ జోడించబడింది gcc_jit_context_add_driver_option.
ఇతర
అనేక ఆర్కిటెక్చర్- మరియు OS-నిర్దిష్ట మార్పులు.
మూలం: linux.org.ru