Qbs 2.0 బిల్డ్ టూల్కిట్ విడుదల చేయబడింది. Qbsకు Qt ఒక డిపెండెన్సీగా అవసరం, అయినప్పటికీ Qbs స్వయంగా ఏ ప్రాజెక్ట్ బిల్డ్నైనా నిర్వహించేలా రూపొందించబడింది. ప్రాజెక్ట్ బిల్డ్ స్క్రిప్ట్లను నిర్వచించడానికి Qbs, QML భాష యొక్క సరళీకృత వెర్షన్ను ఉపయోగిస్తుంది. ఇది బాహ్య మాడ్యూళ్లను చేర్చడం, జావాస్క్రిప్ట్ ఫంక్షన్లను ఉపయోగించడం మరియు కస్టమ్ బిల్డ్ నియమాలను సృష్టించడం వంటి సౌకర్యవంతమైన బిల్డ్ నియమాలను నిర్వచించడానికి అనుమతిస్తుంది.
Qbsలో ఉపయోగించిన స్క్రిప్టింగ్ భాష సమగ్ర అభివృద్ధి వాతావరణాల ద్వారా బిల్డ్ స్క్రిప్ట్ల ఉత్పత్తి మరియు అన్వయీకరణను ఆటోమేట్ చేయడానికి స్వీకరించబడింది. అదనంగా, Qbs మేక్ఫైల్లను రూపొందించదు, కానీ స్వయంగా, మేక్ యుటిలిటీ వంటి మధ్యవర్తులు లేకుండా, కంపైలర్లు మరియు లింకర్ల ప్రారంభాన్ని నియంత్రిస్తుంది, అన్ని డిపెండెన్సీల వివరణాత్మక గ్రాఫ్ ఆధారంగా నిర్మాణ ప్రక్రియను ఆప్టిమైజ్ చేస్తుంది. ప్రాజెక్ట్లోని నిర్మాణం మరియు డిపెండెన్సీల గురించి ప్రారంభ డేటా ఉనికిని మీరు అనేక థ్రెడ్లలో కార్యకలాపాల అమలును సమర్థవంతంగా సమాంతరంగా చేయడానికి అనుమతిస్తుంది. పెద్ద సంఖ్యలో ఫైల్లు మరియు సబ్డైరెక్టరీలను కలిగి ఉన్న పెద్ద ప్రాజెక్ట్ల కోసం, Qbsని ఉపయోగించి పునర్నిర్మాణం యొక్క పనితీరు మేక్ కంటే చాలా రెట్లు వేగంగా ఉంటుంది - పునర్నిర్మాణం దాదాపు తక్షణమే నిర్వహించబడుతుంది మరియు డెవలపర్ వేచి ఉండే సమయాన్ని వృథా చేయమని బలవంతం చేయదు.
2018లో Qt కంపెనీ Qbs అభివృద్ధిని నిలిపివేయాలని నిర్ణయించుకున్న విషయాన్ని గుర్తుచేసుకుందాం. Qbs అనేది qmakeకి ప్రత్యామ్నాయంగా అభివృద్ధి చేయబడింది, అయితే దీర్ఘకాలంలో Qt కోసం CMakeని ప్రధాన నిర్మాణ వ్యవస్థగా ఉపయోగించాలని నిర్ణయించారు. Qbs అభివృద్ధి ఇప్పుడు కమ్యూనిటీ మరియు ఆసక్తిగల డెవలపర్ల మద్దతుతో స్వతంత్ర ప్రాజెక్ట్గా కొనసాగుతోంది. Qt కంపెనీ అవస్థాపన అభివృద్ధి కోసం ఉపయోగించబడుతోంది.
వెర్షన్ సంఖ్యలో ఈ గణనీయమైన మార్పుకు కారణం, Qt 6లో వాడుకలో లేకుండా పోయిన QtScript స్థానంలో ఒక కొత్త జావాస్క్రిప్ట్ బ్యాకెండ్ను అమలు చేయడమే. దాని సంక్లిష్టమైన జావాస్క్రిప్ట్కోర్ బైండింగ్ల కారణంగా QtScriptను అంతర్గతంగా నిర్వహించడం అసాధ్యమని భావించబడింది. అందువల్ల, ఈ కొత్త బ్యాకెండ్, QEMU మరియు FFmpeg వ్యవస్థాపకుడైన ఫాబ్రిస్ బెల్లార్డ్ రూపొందించిన, స్వయం సమృద్ధిగల మరియు సంక్షిప్తమైన QuickJS జావాస్క్రిప్ట్ ఇంజిన్పై ఆధారపడి ఉంది. ఈ ఇంజిన్ ES2019 స్పెసిఫికేషన్కు మద్దతు ఇస్తుంది మరియు పనితీరులో ఇప్పటికే ఉన్న పోటీదారులను గణనీయంగా అధిగమిస్తుంది (XS కంటే 35%, DukTape కంటే రెండు రెట్లకు పైగా, JerryScript కంటే మూడు రెట్లు, మరియు MuJS కంటే ఏడు రెట్లు).
బిల్డ్ స్క్రిప్ట్లను అభివృద్ధి చేసే విషయంలో, కొత్త ఇంజిన్కు మారడం వల్ల ఎటువంటి ముఖ్యమైన మార్పులు రావు. పనితీరు కూడా దాదాపుగా అలాగే ఉంటుంది. ఒక ముఖ్యమైన తేడా ఏమిటంటే, నిర్వచించబడని విలువలను (undefined values) ఉపయోగించడం కోసం కొత్త ఇంజిన్కు కఠినమైన నిబంధనలు ఉన్నాయి. దీనివల్ల, QtScript ఉపయోగిస్తున్నప్పుడు గమనించని సమస్యలు ప్రస్తుత ప్రాజెక్ట్లలో బయటపడవచ్చు.
మూలం: opennet.ru
