Издање програмског језика Руст 1.55

Објављено је издање системског програмског језика Руст 1.55, који је основао пројекат Мозилла, али је сада развијен под окриљем независне непрофитне организације Руст Фоундатион. Језик се фокусира на безбедност меморије, обезбеђује аутоматско управљање меморијом и обезбеђује средства за постизање високог паралелизма задатака без коришћења сакупљача смећа или времена извршавања (време извођења се своди на основну иницијализацију и одржавање стандардне библиотеке).

Руст-ово аутоматско управљање меморијом елиминише грешке приликом манипулације показивачима и штити од проблема који произилазе из манипулације меморијом ниског нивоа, као што је приступ меморијском региону након што је он ослобођен, нулте референце показивача, прекорачење бафера итд. Да би дистрибуирао библиотеке, обезбедио склапање и управљао зависностима, пројекат развија Царго пакет менаџер. Репозиторијум цратес.ио је подржан за хостовање библиотека.

Главне иновације:

  • Менаџер Царго пакета има могућност да обједини дупле грешке и упозорења која се јављају током изградње. Приликом извршавања команди као што су „тест терета“ и „провера терета --алл-таргетс“ које резултирају вишеструким прављењем пакета са различитим параметрима, кориснику се сада приказује резиме појављивања проблема који се понавља, уместо да буде приказан више идентичних упозорења када се иста ствар више пута прави. $ царго +1.55.0 цхецк —алл-таргетс Провера фоо в0.1.0 упозорење: функција се никада не користи: 'фоо' —> срц/либ.рс:9:4 | 9 | фн фоо() {} | ^^^ | = напомена: '#[варн(деад_цоде)]' подразумевано укључено упозорење: 'фоо' (либ) је генерисало 1 упозорење: 'фоо' (либ тест) је генерисало 1 упозорење (1 дупликат) Завршено дев [неоптимизовано + дебугинфо] циљ (с)за 0.84с
  • Код за рашчлањивање са помичним зарезом у стандардној библиотеци је померен да користи бржи и тачнији Еисел-Лемире алгоритам, који је решио неке раније уочене проблеме са заокруживањем и рашчлањивањем бројева са веома великим бројем цифара.
  • Могућност специфицирања незатворених опсега у шаблонима је стабилизована („Кс..” се тумачи као опсег који почиње са вредношћу Кс и завршава се са максималном вредношћу целобројног типа): усклади к као у32 { 0 => принтлн! („нула!“), 1.. => принтлн!(„позитиван број!“), }
  • Проширене варијанте грешака покривене стд::ио::ЕррорКинд (класификује грешке у категорије као што су НотФоунд и ВоулдБлоцк). Раније су грешке које се нису уклапале у постојеће категорије спадале у категорију ЕррорКинд::Отхер, која се такође користила за грешке у коду треће стране. Сада постоји посебна интерна категорија ЕррорКинд::Унцатегоризед за грешке које се не уклапају у постојеће категорије, а категорија ЕррорКинд::Отхер је ограничена на грешке које се не јављају у стандардној библиотеци (стандардне функције библиотеке које враћају ио::Еррор више не користе категорију ЕррорКинд:: Остало).
  • Нови део АПИ-ја је премештен у категорију стабилних, укључујући методе и имплементације особина које су стабилизоване:
    • Везано::клонирано
    • Драин::ас_стр
    • ИнтоИннерЕррор::инто_еррор
    • ИнтоИннерЕррор::инто_партс
    • МаибеУнинит::ассуме_инит_мут
    • МаибеУнинит::ассуме_инит_реф
    • МаибеУнинит::врите
    • низ::мапа
    • опс::ЦонтролФлов
    • к86::_биттест
    • к86::_биттестандцомплемент
    • к86::_биттестандресет
    • к86::_биттестандсет
    • к86_64::_биттест64
    • к86_64::_биттестандцомплемент64
    • к86_64::_биттестандресет64
    • к86_64::_биттестандсет64
  • Атрибут „цонст“, који одређује могућност његовог коришћења у било ком контексту уместо константи, користи се у методи стр::фром_утф8_унцхецкед.
  • Трећи ниво подршке је имплементиран за платформу поверпц64ле-ункновн-фреебсд. Трећи ниво укључује основну подршку, али без аутоматизованог тестирања, објављивања званичних верзија или провере да ли се код може изградити.

Извор: опеннет.ру

Купите поуздан хостинг за сајтове са ДДоС заштитом, ВПС ВДС сервере 🔥 Купите поуздан веб хостинг са DDoS заштитом, VPS VDS сервере | ProHoster