The OpenNET Project / Index page

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



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

Оглавление

Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом на языке Rust , opennews (?), 04-Фев-21, (0) [смотреть все]

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


136. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (136), 05-Фев-21, 07:32 
А точно RUST системный язык ? Морда HTTP в сабже, GNOME-tur и т.д.
Ответить | Правка | Наверх | Cообщить модератору

144. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  –1 +/
Сообщение от Аноним (27), 05-Фев-21, 09:39 
На расте невозможно написать даже вызов ядра, какой уж тут системный...
Ответить | Правка | Наверх | Cообщить модератору

157. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (-), 05-Фев-21, 15:31 
> На расте невозможно написать даже вызов ядра, какой уж тут системный...

Ох уже эти опеннетные исперты ...


#[inline(always)]
pub unsafe fn syscall0(n: usize) -> usize {
    let ret : usize;
    asm!("syscall" : "={rax}"(ret)
                   : "{rax}"(n)
                   : "rcx", "r11", "memory"
                   : "volatile");
    ret
}

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

159. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  –1 +/
Сообщение от Аноним (13), 05-Фев-21, 16:32 
Ты сам видел что ты написал перед тем как нажать кнопку Отправить?
Ответить | Правка | Наверх | Cообщить модератору

162. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (-), 05-Фев-21, 16:48 
> Ты сам видел что ты написал перед тем как нажать кнопку Отправить?

Т.е. по теме возразить нечего?


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

166. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от пердёжник (?), 05-Фев-21, 20:34 
скобку не там закрыл вроде, ну ниче, бывает
Ответить | Правка | К родителю #159 | Наверх | Cообщить модератору

176. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  –1 +/
Сообщение от Аноним (-), 06-Фев-21, 04:49 
> Ох уже эти опеннетные исперты ...

А это, внезапно, не раст вовсе, а обычный такой ...  ассемблер. И вообще-то весь пойнт системного ЯП - в том чтобы на ассемблере не шпрехать. Иначе нафига он сдался? Попрогать на асме я и без раста и LLVM на 60 мегов могую.

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

182. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (182), 06-Фев-21, 08:56 
Глупые растовебмакаки не понимают таких очевидных вещей
Ответить | Правка | Наверх | Cообщить модератору

185. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  –1 +/
Сообщение от Аноним (-), 06-Фев-21, 16:14 
> Глупые растовебмакаки не понимают таких очевидных вещей

А теперь посмотри, как делается вызов ядра на сишечке и перестань балаболить.

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

190. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (-), 06-Фев-21, 20:16 
> А теперь посмотри, как делается вызов ядра на сишечке и перестань балаболить.

Нормальными людьми? Как-то так:
man 2 syscall


NAME
       syscall - indirect system call

SYNOPSIS
       #define _GNU_SOURCE         /* See feature_test_macros(7) */
       #include <unistd.h>
       #include <sys/syscall.h>   /* For SYS_xxx definitions */

       long syscall(long number, ...);


И таки вызов этой штуки - чистой воды си. А то что растовик первым делом ввинчивает пачку асма это круто, конечно, только зачем тогда все эти тантры с каргокультом были?
Ответить | Правка | Наверх | Cообщить модератору

193. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +2 +/
Сообщение от Аноним (195), 06-Фев-21, 21:03 
>[оверквотинг удален]
>        syscall - indirect system call
> SYNOPSIS
>        #define _GNU_SOURCE    
>      /* See feature_test_macros(7) */
>        #include <unistd.h>
>        #include <sys/syscall.h>   /*
> For SYS_xxx definitions */
>        long syscall(long number, ...);
>
> И таки вызов этой штуки - чистой воды си.

То ли жирная демагогия, то ли махровый ламеризм.
Дернуть "вызов ядра" через либу можно и из перла или питона, только внутри либы совсем не магия:
https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/uni...
#define internal_syscall0(number, dummy...)                             \
243 ({                                                                      \
244     unsigned long int resultvar;                                        \
245     asm volatile (                                                      \
246     "syscall\n\t"                                                       \
247     : "=a" (resultvar)                                                  \
248     : "0" (number)                                                      \
249     : "memory", REGISTERS_CLOBBERED_BY_SYSCALL);                        \
250     (long int) resultvar;                                               \
251 })

> А то что растовик первым делом ввинчивает пачку асма это круто, конечно, только зачем тогда все эти тантры с каргокультом были?

Ну, так оно работает на самом деле, если посмотреть что там за "волшебным API". Дергать готовую либу никто не запрещает.
https://docs.rs/syscall/0.2.1/syscall/


pub unsafe fn syscall0(n: usize) -> usize

только либы беруться не из воздуха.

И эти люди гордо пишут про "растовебмакак", лол.

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

184. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (-), 06-Фев-21, 16:10 
>> Ох уже эти опеннетные исперты ...
> А это, внезапно, не раст вовсе, а обычный такой ...  ассемблер.
> И вообще-то весь пойнт системного ЯП - в том чтобы на ассемблере не шпрехать. Иначе нафига он сдался? Попрогать на асме я и без раста и LLVM на 60 мегов могую.

https://github.com/torvalds/linux/blob/master/arch/x86/um/sh...


static inline long stub_syscall0(long syscall)
{
    long ret;

    __asm__ volatile (__syscall
        : "=a" (ret)
        : "0" (syscall) : __syscall_clobber );

    return ret;
}


Так-так, сишка по заверениям местных экспертов - несистемный ЯП. Окай.

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

191. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (-), 06-Фев-21, 20:20 
Вы про kernel side чтоли? Да, там в том же линухе есть асм. Хоть его и побустали основательно в энной версии. И таки да, _некоторые_ системные вещи таки из сей не получится. Ну например на cortex M си нельзя попросить загнать что-то в регистр который не mem-mapped. Есть "интринсики" для этого которые унутрях асм.

Но с user side таки сискол == дерг 1 библиотечной функции.

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

194. "Выпуск утилиты curl 7.75.0 с экспериментальным HTTP-бэкендом..."  +/
Сообщение от Аноним (195), 06-Фев-21, 21:09 
> Но с user side таки сискол == дерг 1 библиотечной функции.

pub unsafe fn syscall0(n: usize) -> usize
Только библиотечные обертки сначала написать надо. Просто дергать - это и из питона с перлом можно, что ни разу не делает их системными ЯП.

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

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

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




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

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