Kev Tso Tawm ntawm ForgeZero 1.9.0, lub cuab yeej tsim rau C thiab assembler

ForgeZero 1.9.0 (fz), ib lub cuab yeej tsim cov kab hais kom ua rau cov haujlwm sau ua C, C ++, thiab cov lus sib dhos (NASM, GAS, FASM), tau tso tawm. Lub cuab yeej tsis xav tau Makefile lossis lwm cov ntaub ntawv teeb tsa rau kev siv yooj yim. Cov lej project tau sau ua Go thiab tau tso cai raws li daim ntawv tso cai MIT.

ForgeZero nrhiav pom hom ntaub ntawv thiab xaiv qhov backend tsim nyog. Txhua cov ntaub ntawv code raug muab tso ua ke rau hauv cov ntaub ntawv khoom, tom qab ntawd kuaj xyuas cov cim thoob ntiaj teb sib npaug thoob plaws txhua yam khoom thiab txuas rau hauv ib cov ntaub ntawv executable. Cov ntaub ntawv compiled raug cached thiab rov muab tso ua ke tsuas yog tom qab kev hloov pauv tau ua rau cov ntaub ntawv code cuam tshuam. Xaiv tau, kev hloov pauv ntawm cov ntaub ntawv system thiab rov muab tso ua ke ua tau tom qab hloov kho cov ntaub ntawv code.

Cov compilers uas txhawb nqa yog GCC, Clang, G++, thiab Clang++; cov assemblers yog NASM, GAS, thiab FASM; cov linkers yog LD, GCC, thiab Clang; thiab AR archiver tau txhawb nqa. Cov lus ceeb toom yuav tsum muaj rau C thiab C++ yog: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Cov AddressSanitizer thiab UndefinedBehaviorSanitizer sanitizers tau qhib los ntawm lub neej ntawd (lawv tuaj yeem raug kaw nrog lub chij -sanitize = cuav). Cov platforms txhawb nqa yog: Linux, macOS, Windows (WSL2 thiab sim ua ntej).

Cov kev hloov pauv tseem ceeb hauv version 1.9.0:

  • Ntxiv tus chij "-target" , uas ua rau muaj kev sib sau ua ke rau txhua lub architecture nrog cov cuab yeej prefix tsim nyog. fz txiav txim siab cov npe ntawm cov compiler, linker, thiab archiver raws li tus cim qhia tshwj xeeb (piv txwv li, "arm-linux-gnueabihf-gcc"). Txhua lub platform GNU target txheem tau txais kev txhawb nqa, suav nrog arm-linux-gnueabihf, aarch64-linux-gnu, thiab riscv64-linux-gnu.
  • Kev txhawb nqa rau Language Server Protocol (LSP) tau raug siv. Lub chij "-compile-commands" tsim cov ntaub ntawv compile_commands.json (Compilation Database) hauv lub hauv paus project. Cov ntaub ntawv raug nyeem los ntawm hom lus servers clangd thiab ccls, muab kev ua tiav tsis siv neeg, kev taw qhia code, thiab kev kuaj mob hauv cov neeg kho uas txhawb nqa LSP (Neovim, VSCode, CLion, Emacs, thiab lwm yam).
  • Cov lus txib fz "-update" tam sim no txuag cov binary tam sim no rau /usr/local/bin/fz.old ua ntej txhim kho ib qho version tshiab, cia koj dov rov qab mus rau qhov version dhau los yam tsis tau rov nruab dua.
  • Kho qhov kab laum hauv ntau daim nplaub tshev uas cov ntaub ntawv nrog cov npe zoo sib xws los ntawm cov subdirectories sib txawv yuav sau dua cov ntaub ntawv khoom ntawm ib leeg. Cov npe ntaub ntawv khoom tam sim no tau tsim raws li txoj kev sib raug zoo mus rau cov ntaub ntawv qhov chaw.
  • Siv hom kev sib tham sib "fz -shell" rau kev tsim cov ntaub ntawv ib leeg.
  • Kev them nqi kuaj tau ntxiv rau cov lus txib SplitCommand, CmdSet, thiab CmdBuild. Kev them nqi kuaj rau pob txuas tau nce ntxiv los ntawm 17% mus rau 60%, thiab kev them nqi rau txhua pob tau tshaj 40%.
  • Ntxiv ib txoj kev hloov CheckTool rau kev sim cov xwm txheej nrog cov khoom siv toolchain uas ploj lawm.

Kev hloov pauv ntawm cov ntawv tso tawm dhau los:

  • Version 1.8.0 siv qhov kev sib sau ua ke ntawm cov tsev qiv ntawv static (-type static / -lib), xyuas kom meej tias cov npe ntawm cov ntaub ntawv khoom tsis muaj qhov tshwj xeeb hauv ntau tus thawj coj cov haujlwm, thiab kho qhov yuam kev hauv cov kab ke sib dhos cuam tshuam nrog kev hla ntawm txoj kev "..".
  • Version 1.7.0 ntxiv kev sib sau ua ke sib luag (-j N, 0 - kev tshawb nrhiav tus lej ntawm cov cores), kev txhawb nqa rau cov ntawv sau txuas (-T) thiab cov chaw nkag mus (-Ttext), hom sib tham (fz -shell), kev xaiv meej ntawm hom ntawv tso zis (elf32, elf64, bin), kev sau ua ke ntawm cov ntaub ntawv C ++ (.cpp, .cc, .cxx) nrog cov cim ceeb toom nruj tib yam li C.
  • Version 1.6.0 ntxiv qhov project initialization (fz -init, tsim .fz.yaml, .fzignore, README.md), bin format support (-format bin) for bootloaders and firmware, and configuration fields libs, flags.cc, flags.asm, flags.ld.
  • Version 1.5.0 qhia txog ntau qhov chaw qhia chaw (source_dirs), cov npe ntaub ntawv qhia meej (source_files), suav nrog / tsis suav cov qauv, ib daim teb libs rau cov tsev qiv ntawv txuas, cov ntaub ntawv .fzignore, thiab ntau theem kev sib koom ua ke ntawm cov ntaub ntawv teeb tsa.

Tau qhov twg los: opennet.ru

Yuav txhim khu kev qha hosting rau cov chaw nrog DDoS tiv thaiv, VPS VDS servers 🔥 Yuav lub vev xaib hosting txhim khu kev qha nrog kev tiv thaiv DDoS, VPS VDS servers | ProHoster