The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.45, opennews (??), 20-Июл-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


136. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Аноним (136), 20-Июл-20, 15:05 
>шланг и крейт

Истинно системному языку не нужен рантайм. Значит Раст не достаточно "системен".

Ответить | Правка | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Аноним84701 (ok), 20-Июл-20, 15:19 
>>шланг и крейт
> Истинно системному языку не нужен рантайм. Значит Раст не достаточно "системен".

Суровые челяб^W опеннетные анонимы не используют компиляторы, считая их "не достаточно системным рантаймом"? o_O


Ответить | Правка | Наверх | Cообщить модератору

150. "Выпуск языка программирования Rust 1.45"  +1 +/
Сообщение от Аноним (3), 20-Июл-20, 16:44 
А раста нет рантайма, и на нем можно сделать ОС. См. Redox
Ответить | Правка | К родителю #136 | Наверх | Cообщить модератору

174. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от ann (??), 20-Июл-20, 18:56 
Можно и на всяких жавах. Было такое когда-то. И что?

Ты ставил этот Redox? Я ставил. Спасибо но сырое присырое.

Ответить | Правка | Наверх | Cообщить модератору

185. "Выпуск языка программирования Rust 1.45"  –1 +/
Сообщение от Аноним (3), 20-Июл-20, 21:27 
> Можно и на всяких жавах. Было такое когда-то. И что?

Не, ну на жаве это на перепиленной, а тут язык изначально поддерживает режим zero runtime

> Ты ставил этот Redox? Я ставил. Спасибо но сырое присырое.

А это уже другой вопрос, насколько он готов

Ответить | Правка | Наверх | Cообщить модератору

233. "Выпуск языка программирования Rust 1.45"  –1 +/
Сообщение от Ретроград (?), 21-Июл-20, 08:33 
В расте нет режима "zero runtime". Там хочешь-не хочешь, но нужно подключать core, который задействуется в каждом втором примитиве языка. Ну либо писать на расте как на урезанном C, в котором половина синтаксических конструкций работать не будет, но нафиг он тогда такой нужен.

Проблема раста как раз в том, что неадекваты почему-то позиционируют его как язык системного программирования. Хотя даже простого взгляда на то, откуда он появился и для чего пилится, достаточно, чтобы понять, что это за язык на самом деле. Это абсолютно прикладной ЯП, типа Java и C#. Delphi 21 века, если угодно.

Ответить | Правка | Наверх | Cообщить модератору

255. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от alex312 (?), 21-Июл-20, 12:07 
>Ну либо писать на расте как на урезанном C

ты так расхваливаешь зерокостность С, а где она ?
libc -  половина на асме.
linux - та часть где эта зерокостность надо - ассеблер.

Так что эт, бревно из глазика своего выйми, а потом будешь про зерокостность рассказывать.

Ответить | Правка | Наверх | Cообщить модератору

279. "Выпуск языка программирования Rust 1.45"  +1 +/
Сообщение от Совершенно другой аноним (?), 21-Июл-20, 14:42 
>>Ну либо писать на расте как на урезанном C
> ты так расхваливаешь зерокостность С, а где она ?
> libc -  половина на асме.

https://github.com/lattera/glibc

C - 65.8%, Assembly - 14.2%, C++ - 9.4%, Objective-C - 4.4%, Roff - 3.4%, Makefile - 0.8%, Other -
2.0%

На ассеблере там то, что должно работать очень быстро. И как-бы требовать от C "zerocost abstraction", при практически отсутствии этих самых "abstraction", как-то странно. Скорее всего речь не про "zerocost abstraction", а про runtime, которого по стандарту, особо и нет. В gcc, кстати, такой runtime - есть, этот то, который живёт в libgcc, разные там умножения 64-х разрядные для 32-х битных платформ и т.д. И при этом нет memcpy()/memset() - т.к. это библиотека. Как я понимаю Rust в этом плане требует на порядок больше.

> linux - та часть где эта зерокостность надо - ассеблер.

в linux на ассемблере тоже либо то, что должно работать быстро, либо то, что не выразимо на самом языке - типа чтения разных специфичных регистров. Остальное всё на C.

https://github.com/torvalds/linux

C - 96.6%, C++ - 1.3%, Assembly - 1.1%, Objective-C - 0.3%, Shell - 0.3%, Makefile - 0.2%, Other - 0.2%

Ответить | Правка | Наверх | Cообщить модератору

284. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от alex312 (?), 21-Июл-20, 15:16 
> Как я понимаю Rust в этом плане требует на порядок больше.

А вот как раз и нет. Раст ,как и С, может ужиматься очень сильно, в этом плане он ничем не уступает С.
Да, понятно, если писать для МК то нельзя пользоваться всем чем хочеться из std, но то же самое касается и С.

Все что я хочу сказать, что раст не менее зерокостный чем С. Единственное что у С есть  - это его легаси (но его дохрена).

Ответить | Правка | Наверх | Cообщить модератору

290. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Совершенно другой аноним (?), 21-Июл-20, 15:41 
>> Как я понимаю Rust в этом плане требует на порядок больше.
> А вот как раз и нет. Раст ,как и С, может ужиматься
> очень сильно, в этом плане он ничем не уступает С.
> Да, понятно, если писать для МК то нельзя пользоваться всем чем хочеться
> из std, но то же самое касается и С.

У C по стандарту есть:

6 The two forms of conforming implementation are hosted and freestanding. ...
A conforming freestanding implementation shall accept any strictly conforming program in which the ∗ use of the features specified in the library clause (clause 7) is confined to the contents of the standard headers <float.h>, <iso646.h>, <limits.h>, <stdalign.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, <stdint.h>, and <stdnoreturn.h>.

Так вот, freestanding - это, типа, для написания ОС и т.д. Как Вы можете видеть, там вообще ничего не требуется - т.е. ни одной функции - только константы типа лимитов. Самим языковым средствам вообще ничего не надо от runtime-а. Как я уже писал выше - для gcc, на самом деле это не совсем так, есть минимальный набор функций, который необходим, если Вы начинаете работать с операциями разрядностью >32 на 32-х битных платформах.

> Все что я хочу сказать, что раст не менее зерокостный чем С.

Будут-ли при этом доступны все языковые средства? Я не про библиотеку, а про сам язык.

Ответить | Правка | Наверх | Cообщить модератору

299. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от alex312 (?), 21-Июл-20, 16:15 
>Будут-ли при этом доступны все языковые средства? Я не про библиотеку, а про сам язык.

конечно будут.

Ответить | Правка | Наверх | Cообщить модератору

315. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Совершенно другой аноним (?), 21-Июл-20, 17:33 
>>Будут-ли при этом доступны все языковые средства? Я не про библиотеку, а про сам язык.
> конечно будут.

Правильно я понимаю, что необходимы следующие "символы" (согласно https://doc.rust-lang.org/core/):
memcpy, memcmp, memset, rust_begin_panic и rust_eh_personality?

Ответить | Правка | Наверх | Cообщить модератору

369. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от freecoderemail (?), 07-Авг-20, 10:36 

#[lang = "eh_personality"]
#[no_mangle]
pub extern fn rust_eh_personality() {
}

#[lang = "panic_impl"]
#[no_mangle]
pub extern fn rust_begin_panic(info: &PanicInfo) -> ! {
    unsafe { intrinsics::abort() }
}

memcpy, memcmp, memset можно написать самому. Уже обсуждали тут: https://www.opennet.ru/openforum/vsluhforumID3/121437.html#5

Ответить | Правка | К родителю #315 | Наверх | Cообщить модератору

363. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Аноним (-), 30-Июл-20, 18:14 
> У C по стандарту есть:

Не забудь еще про freestanding прочитать, умник.

Ответить | Правка | К родителю #290 | Наверх | Cообщить модератору

364. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Совершенно другой аноним (?), 31-Июл-20, 10:45 
>> У C по стандарту есть:
> Не забудь еще про freestanding прочитать, умник.

Если я в чём-то где то не прав - подскажите пожалуйста. В данном контексте мне, к сожалению, не понятна суть Вашего замечания. Из стандарта, всё, что касается freestanding environment:

4. Conformance

...

6 The two forms of conforming implementation are hosted and freestanding. ...
A conforming freestanding implementation shall accept any strictly conforming program in which the use of the features specified in the library clause (clause 7) is confined to the contents of the standard headers <float.h>, <iso646.h>, <limits.h>, <stdalign.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, <stdint.h>, and <stdnoreturn.h>. A conforming implementation may have extensions (including additional library functions), provided they do not alter the behavior of any strictly conforming program.4)

4) This implies that a conforming implementation reserves no identifiers other than those explicitly reserved in this International Standard.

5.1.2 Execution environments
1 Two execution environments are defined: freestanding and hosted. In both cases,
program startup occurs when a designated C function is called by the execution
environment. All objects with static storage duration shall be initialized (set to their
initial values) before program startup. The manner and timing of such initialization are
otherwise unspecified. Program termination returns control to the execution
environment

5.1.2.1 Freestanding environment
1 In a freestanding environment (in which C program execution may take place without any
benefit of an operating system), the name and type of the function called at program
startup are implementation-defined. Any library facilities available to a freestanding
program, other than the minimal set required by clause 4, are implementation-defined.
2 The effect of program termination in a freestanding environment is implementationdefined.

5.1.2.4 Multi-threaded executions and data races
1 ... Under a freestanding implementation, it is implementation-defined whether a program can have more than one thread of execution.

Ответить | Правка | Наверх | Cообщить модератору

192. "Выпуск языка программирования Rust 1.45"  +1 +/
Сообщение от анонимуслинус (?), 20-Июл-20, 22:21 
вот тут соглашусь пиши ассемблерным кодом))) и будет всем счастья. тогда нынешние системы у каждого будут выдавать хрелион процентов мощности при затратах 0,001% общих мощностей. и окажется что даже пень 4 это жесткий сервак)) а так да языки с защитой памяти удобны, но так же все дальше от системных применений. хотя и проще.
Ответить | Правка | К родителю #136 | Наверх | Cообщить модератору

292. "Выпуск языка программирования Rust 1.45"  +/
Сообщение от Аноним (-), 21-Июл-20, 15:54 
Мне будеь счастье тогда и только тогда, когда ты перестанешь хамить. Умей проигрывать.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру