Mae ForgeZero 1.9.0 (fz), teclyn adeiladu llinell orchymyn ar gyfer prosiectau a ysgrifennwyd yn C, C++, ac ieithoedd cydosod (NASM, GAS, FASM), wedi'i ryddhau. Nid oes angen Makefile na ffeiliau ffurfweddu eraill ar yr offeryn ar gyfer defnydd sylfaenol. Mae cod y prosiect wedi'i ysgrifennu yn Go ac mae wedi'i drwyddedu o dan drwydded MIT.
Mae ForgeZero yn canfod y math o ffeil ac yn dewis y backend priodol yn awtomatig. Mae pob ffeil cod yn cael ei llunio i ffeil gwrthrych, yna'n cael ei gwirio am symbolau byd-eang dyblyg ar draws pob gwrthrych ac yn cael ei chysylltu i mewn i un ffeil weithredadwy. Dim ond ar ôl gwneud newidiadau i'r ffeiliau cod cysylltiedig y caiff ffeiliau wedi'u llunio eu storio yn y storfa dros dro a'u hail-lunio. Yn ddewisol, mae olrhain newidiadau system ffeiliau ac ail-lunio yn bosibl ar ôl diweddariadau ffeiliau cod.
Y crynhowyr a gefnogir yw GCC, Clang, G++, a Clang++; y cydosodwyr yw NASM, GAS, a FASM; y cysylltwyr yw LD, GCC, a Clang; a chefnogir yr archifydd AR. Rhybuddion gorfodol ar gyfer C a C++ yw: "-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion". Mae'r glanweithyddion AddressSanitizer ac UndefinedBehaviorSanitizer wedi'u galluogi yn ddiofyn (gellir eu hanalluogi gyda'r faner -sanitize=false). Y llwyfannau a gefnogir yw: Linux, macOS, Windows (WSL2 ac yn frodorol yn arbrofol).
Prif newidiadau yn fersiwn 1.9.0:
- Ychwanegwyd baner "-target" , sy'n galluogi traws-grynhoi ar gyfer unrhyw bensaernïaeth gyda'r offer rhagddodiad priodol. Mae fz yn pennu enwau'r crynhoydd, y cysylltydd a'r archifydd yn awtomatig yn seiliedig ar y dynodwr penodedig (e.e., "arm-linux-gnueabihf-gcc"). Cefnogir pob platfform targed safonol GNU, gan gynnwys arm-linux-gnueabihf, aarch64-linux-gnu, a riscv64-linux-gnu.
- Mae cefnogaeth ar gyfer y Protocol Gweinydd Iaith (LSP) wedi'i weithredu. Mae'r faner "-compile-commands" yn cynhyrchu ffeil compile_commands.json (Cronfa Ddata Casgliad) yng ngwreiddyn y prosiect. Darllenir y ffeil yn ôl iaith. gweinyddion clangd a ccls, gan ddarparu cwblhau awtomatig, llywio cod, a diagnosteg mewn golygyddion sy'n cefnogi LSP (Neovim, VSCode, CLion, Emacs, ac ati).
- Mae'r gorchymyn "-update" fz bellach yn cadw'r ffeil ddeuaidd gyfredol i /usr/local/bin/fz.old cyn gosod fersiwn newydd, gan ganiatáu ichi ddychwelyd i'r fersiwn flaenorol heb ei hailosod.
- Trwsiwyd nam mewn prosiectau aml-gyfeiriadur lle byddai ffeiliau ag enwau sylfaen union yr un fath o is-gyfeiriaduron gwahanol yn trosysgrifo ffeiliau gwrthrych ei gilydd. Cynhyrchir enwau ffeiliau gwrthrych bellach yn seiliedig ar y llwybr cymharol llawn i'r ffeil ffynhonnell.
- Wedi gweithredu modd rhyngweithiol "fz -shell" ar gyfer adeiladu ffeiliau unigol.
- Mae cwmpas prawf wedi'i ychwanegu ar gyfer y gorchmynion SplitCommand, CmdSet, a CmdBuild. Mae cwmpas prawf ar gyfer y pecyn cysylltu wedi cynyddu o 17% i 60%, ac mae cwmpas pob pecyn wedi rhagori ar 40%.
- Ychwanegwyd mecanwaith amnewid CheckTool ar gyfer profi senarios gyda chydrannau cadwyn offer ar goll.
Newidiadau o'i gymharu â datganiadau blaenorol:
- Mae Fersiwn 1.8.0 yn gweithredu cydosod llyfrgelloedd statig (-type static / -lib), yn sicrhau unigrywiaeth enwau ffeiliau gwrthrych mewn prosiectau aml-gyfarwyddwr, ac yn cywiro gwallau yn yr is-system gydosod sy'n gysylltiedig â chroesi'r llwybr "..".
- Mae Fersiwn 1.7.0 yn ychwanegu crynhoad cyfochrog (-j N, 0 — canfod nifer y creiddiau'n awtomatig), cefnogaeth ar gyfer sgriptiau cysylltu (-T) a chyfeiriadau pwynt mynediad (-Ttext), modd rhyngweithiol (fz -shell), dewis penodol o fformat allbwn (elf32, elf64, bin), crynhoad ffeiliau C++ (.cpp, .cc, .cxx) gyda'r un baneri rhybuddio llym ag ar gyfer C.
- Mae Fersiwn 1.6.0 yn ychwanegu cychwyniad prosiect (fz -init, yn creu .fz.yaml, .fzignore, README.md), cefnogaeth fformat bin (-format bin) ar gyfer llwythwyr cychwyn a cadarnwedd, a meysydd ffurfweddu libs, flags.cc, flags.asm, flags.ld.
- Mae Fersiwn 1.5.0 yn cyflwyno cyfeiriaduron ffynhonnell lluosog (source_dirs), rhestrau ffeiliau penodol (source_files), patrymau cynnwys/eithrio, maes libs ar gyfer llyfrgelloedd cysylltu, y ffeil .fzignore, ac uno ffeiliau ffurfweddu aml-lefel.
Ffynhonnell: opennet.ru
