Ìtújáde ForgeZero 1.9.0, ohun èlò ìkọ́lé fún C àti assembler

ForgeZero 1.9.0 (fz), irinṣẹ́ ìkọ́lé ìlà àṣẹ fún àwọn iṣẹ́ àgbékalẹ̀ tí a kọ ní èdè C, C++, àti àkójọpọ̀ (NASM, GAS, FASM), ti jáde. Ohun èlò náà kò nílò Makefile tàbí àwọn fáìlì ìṣètò mìíràn fún lílo ìpìlẹ̀. Koodu iṣẹ́ àgbékalẹ̀ náà wà ní Go, ó sì ní ìwé àṣẹ lábẹ́ ìwé àṣẹ MIT.

ForgeZero máa ń ṣàwárí irú fáìlì náà, ó sì máa ń yan ẹ̀yìn tó yẹ láìfọwọ́sí. A máa ń kó fáìlì kódì kọ̀ọ̀kan jọ sínú fáìlì ohun kan, lẹ́yìn náà a máa ṣàyẹ̀wò fún àwọn àmì àgbáyé tó jọra lórí gbogbo ohun kan, a sì so wọ́n pọ̀ mọ́ fáìlì kan ṣoṣo tó ṣeé ṣe. A máa ń kó àwọn fáìlì tó wà nínú àkójọpọ̀ jọ, a sì máa ń tún wọn ṣe lẹ́yìn tí a bá ti ṣe àtúnṣe sí àwọn fáìlì kódì tó wà nínú rẹ̀. Ní ọ̀nà tó bá wù ú, a lè ṣe àtúntò àti àtúntò fáìlì lẹ́yìn tí a bá ti ṣe àtúnṣe fáìlì kódì.

Àwọn àkójọpọ̀ tí a lè ṣe àtìlẹ́yìn ni GCC, Clang, G++, àti Clang++; àwọn àkójọpọ̀ ni NASM, GAS, àti FASM; àwọn àkójọpọ̀ ni LD, GCC, àti Clang; a sì ń ṣe àtìlẹ́yìn fún àkójọpọ̀ AR. Àwọn ìkìlọ̀ pàtàkì fún C àti C++ ni: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". A ń lo àwọn ohun ìwẹ̀nùmọ́ AddressSanitizer àti UndefinedBehaviorSanitizer láti ṣàtúnṣe (a lè pa wọ́n rẹ́ pẹ̀lú àmì -sanitize=àṣìṣe). Àwọn ìpìlẹ̀ tí a lè ṣe àtìlẹ́yìn ni: Linux, macOS, Windows (WSL2 àti pé wọ́n jẹ́ ti ìwádìí).

Awọn ayipada akọkọ ni ẹya 1.9.0:

  • A fi àsíá "-target" kún un , èyí tí ó mú kí a lè ṣe àkójọpọ̀-àkójọpọ̀ fún èyíkéyìí àgbékalẹ̀ pẹ̀lú àwọn irinṣẹ́ ìṣáájú tí ó yẹ. fz ń pinnu orúkọ àwọn olùkójọpọ̀, olùsopọ̀, àti olùtọ́jú ìwé ní ​​tààràtà nípa dídámọ̀ pàtó kan (fún àpẹẹrẹ, "arm-linux-gnueabihf-gcc"). Gbogbo àwọn ìpele ìfojúsùn GNU tí ó wọ́pọ̀ ni a ń ṣètìlẹ́yìn fún, títí kan arm-linux-gnueabihf, aarch64-linux-gnu, àti riscv64-linux-gnu.
  • A ti ṣe àtìlẹ́yìn fún Ìlànà Ẹgbẹ́ Èdè (LSP). Àmì "-compile-commands" ń ṣe àgbékalẹ̀ fáìlì compile_commands.json (Compilation Database) nínú gbòǹgbò iṣẹ́ náà. A ń ka fáìlì náà ní èdè. apèsè clangd àti ccls, èyí tí ó ń pèsè ìparí ara-ẹni, ìṣàwárí kódù, àti àyẹ̀wò nínú àwọn olóòtú tí ó ń ṣe àtìlẹ́yìn fún LSP (Neovim, VSCode, CLion, Emacs, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ).
  • Àṣẹ fz "-update" ti fi binary lọwọlọwọ pamọ si /usr/local/bin/fz.old ṣaaju fifi ẹya tuntun sori ẹrọ, eyi ti o fun ọ laaye lati yi pada si ẹya ti tẹlẹ laisi fifi sori ẹrọ.
  • A ti ṣe àtúnṣe àṣìṣe kan nínú àwọn iṣẹ́ àkójọpọ̀ oní-pupọ níbi tí àwọn fáìlì tí ó ní orúkọ ìpìlẹ̀ kan náà láti oríṣiríṣi àwọn ìtọ́sọ́nà kékeré yóò ti yí àwọn fáìlì ohun kan padà. Àwọn orúkọ fáìlì ohun ni a ń ṣẹ̀dá nísinsìnyí ní ìbámu pẹ̀lú ipa ọ̀nà tí ó péye sí fáìlì orísun náà.
  • Mo ti ṣe agbekalẹ ipo ibaraẹnisọrọ "fz -shell" fun kikọ awọn faili kan ṣoṣo.
  • A ti fi agbegbe idanwo kun fun awọn aṣẹ SplitCommand, CmdSet, ati CmdBuild. Agbegbe idanwo fun package asopọ ti pọ si lati 17% si 60%, ati agbegbe fun gbogbo awọn idii ti kọja 40%.
  • A fi ẹ̀rọ ìyípadà CheckTool kún un fún dídánwò àwọn ìṣẹ̀lẹ̀ pẹ̀lú àwọn èròjà irinṣẹ́ tí kò sí.

Àwọn àyípadà láti àwọn ìtẹ̀jáde ìṣáájú:

  • Ẹ̀yà 1.8.0 ń ṣe àkójọ àwọn ilé ìkàwé aláìdúró (-type static / -lib), ó ń rí i dájú pé àwọn orúkọ fáìlì ohun kan yàtọ̀ síra nínú àwọn iṣẹ́ olùdarí púpọ̀, ó sì ń tún àwọn àṣìṣe nínú ètò ìṣàkójọ tí ó ní í ṣe pẹ̀lú ìyípadà ipa ọ̀nà ".." ṣe.
  • Ẹ̀yà 1.7.0 fi àkójọpọ̀ onípele kan náà kún (-j N, 0 — ìwádìí ara ẹni nípa iye àwọn ohun èlò), àtìlẹ́yìn fún àwọn ìwé àfọwọ́kọ ìjápọ̀ (-T) àti àwọn àdírẹ́sì ojú ìwé ìwọlé (-Ttext), ipò ìbáṣepọ̀ (fz -shell), yíyan ọ̀nà ìjáde tí ó ṣe kedere (elf32, elf64, bin), àkójọpọ̀ àwọn fáìlì C++ (.cpp, .cc, .cxx) pẹ̀lú àwọn àmì ìkìlọ̀ tí ó muna kan náà gẹ́gẹ́ bí ti C.
  • Ẹ̀yà 1.6.0 fi kún ìbẹ̀rẹ̀ iṣẹ́ akanṣe (fz -init, ṣẹ̀dá .fz.yaml, .fzignore, README.md), àtìlẹ́yìn ìṣètò bin (-format bin) fún àwọn bootloaders àti firmware, àti àwọn pápá ìṣeto libs, flags.cc, flags.asm, flags.ld.
  • Ẹ̀yà 1.5.0 ṣe àgbékalẹ̀ ọ̀pọ̀lọpọ̀ àwọn ìwé àkójọpọ̀ orísun (source_dirs), àwọn àkójọ fáìlì tí ó ṣe kedere (source_files), àwọn ìlànà pẹ̀lú/ìyọkúrò, pápá libs fún àwọn ilé ìkàwé linker, fáìlì .fzignore, àti ìṣọ̀kan ọ̀pọ̀lọpọ̀ àwọn fáìlì ìṣètò.

orisun: opennet.ru

Ra alejo gbigba igbẹkẹle fun awọn aaye pẹlu aabo DDoS, awọn olupin VPS VDS 🔥 Ra gbigbalejo oju opo wẹẹbu ti o gbẹkẹle pẹlu aabo DDoS, awọn olupin VPS VDS | ProHoster