Rust 1.69 Rhyddhau Iaith Rhaglennu

Mae rhyddhau iaith raglennu pwrpas cyffredinol Rust 1.69, a sefydlwyd gan brosiect Mozilla, ond sydd bellach wedi'i datblygu dan nawdd y sefydliad dielw annibynnol Rust Foundation, wedi'i gyhoeddi. Mae'r iaith yn canolbwyntio ar ddiogelwch cof ac yn darparu'r modd i gyflawni gwaith tebyg iawn tra'n osgoi defnyddio casglwr sbwriel ac amser rhedeg (mae amser rhedeg yn cael ei leihau i gychwyn a chynnal a chadw sylfaenol y llyfrgell safonol).

Mae dulliau trin cof Rust yn arbed y datblygwr rhag gwallau wrth drin awgrymiadau ac yn amddiffyn rhag problemau sy'n codi oherwydd trin cof lefel isel, megis cyrchu man cof ar Γ΄l iddo gael ei ryddhau, dadgyfeirio awgrymiadau nwl, gor-redeg byffer, ac ati. Er mwyn dosbarthu llyfrgelloedd, darparu adeiladu a rheoli dibyniaethau, mae'r prosiect yn datblygu rheolwr pecyn Cargo. Cefnogir ystorfa crates.io ar gyfer cynnal llyfrgelloedd.

Darperir diogelwch cof yn Rust ar amser casglu trwy wirio cyfeiriadau, cadw golwg ar berchnogaeth gwrthrychau, cadw golwg ar oes gwrthrychau (scopes), ac asesu cywirdeb mynediad cof wrth weithredu cod. Mae Rust hefyd yn darparu amddiffyniad rhag gorlifiadau cyfanrif, yn gofyn am ymgychwyn gorfodol o werthoedd amrywiol cyn ei ddefnyddio, yn trin gwallau yn well yn y llyfrgell safonol, yn cymhwyso'r cysyniad o gyfeiriadau a newidynnau digyfnewid yn ddiofyn, yn cynnig teipio statig cryf i leihau gwallau rhesymegol.

Prif arloesiadau:

  • Mae'r rheolwr pecyn Cargo yn gweithredu canfod rhybuddion y gellir eu datrys yn awtomatig, ac allbwn argymhellion priodol ar gyfer rhedeg β€œcargo fix” neu β€œcargo clippy -fix”. rhybudd: mewnforio heb ei ddefnyddio: 'std::hash::Hash' β€”> src/main.rs:1:5 | 1 | defnyddio std::hash::Hash; | ^^^^^^^^^^^^^| = nodyn: '#[warn(unused_imports)]' ymlaen trwy rybudd rhagosodedig: cynhyrchodd 'foo' (bin "foo") 1 rhybudd (rhedeg 'cargo fix β€”bin "foo"' i gymhwyso 1 awgrym)
  • Mae Cargo wedi ychwanegu allbwn argymhelliad ar gyfer defnyddio'r gorchymyn "ychwanegu cargo" wrth geisio gosod llyfrgell gyda'r gorchymyn "cargo install".
  • Er mwyn lleihau'r amser casglu, mae cynnwys gwybodaeth dadfygio mewn sgriptiau adeiladu wedi'i atal yn ddiofyn. Os bydd y sgriptiau adeiladu yn rhedeg yn llwyddiannus, ni fydd y newid yn arwain at unrhyw wahaniaethau gweladwy, ond os bydd methiannau'n digwydd, bydd y dymp olrhain yn cynnwys llai o wybodaeth. I ddychwelyd yr hen ymddygiad i Cargo.toml dylech ychwanegu: [profile.dev.build-override] debug = gwir [profile.release.build-override] debug = gwir
  • Mae cyfran newydd o'r API wedi'i symud i'r categori stabl, gan gynnwys dulliau a gweithrediad nodweddion wedi'u sefydlogi:
    • CStr::o_bytes_until_nul
    • craidd::ffi::FromBytesUntilNulError
  • Defnyddir y nodwedd β€œconst”, sy'n pennu'r posibilrwydd o'i ddefnyddio mewn unrhyw gyd-destun yn lle cysonion, yn y swyddogaethau:
    • SocketAddr::newydd
    • SocketAddr::ip
    • SocketAddr::porthladd
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::newydd
    • SocketAddrV4::ip
    • SocketAddrV4::porthladd
    • SocketAddrV6::newydd
    • SocketAddrV6::ip
    • SocketAddrV6::porthladd
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Ychwanegwyd y gallu i ddefnyddio baneri gwir a ffug mewn dadleuon casglwr.

Ffynhonnell: opennet.ru

Ychwanegu sylw