The OpenNET Project / Index page

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



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

Оглавление

Завершён процесс создания организации Rust Foundation , opennews (??), 08-Фев-21, (0) [смотреть все]

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


459. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (459), 10-Фев-21, 00:55 
Тщательно культивировалась она растоманами. Ну или теми, кто их изображал. Шатались по форумам и выдавали косяк инфраструктуры языка за достоинство которого нехватает С и C++. Я о Cargo, если что. Мейнстримом является использование конкретных версий библиотек(модулей), а это прямо противоположное опыту разработки больших систем длительное время, когда программа должна компилироваться с разными версиями библиотек, иногда с изменившемся API или вообще с разными библиотеками делающими одно и то же но по разному и с разными опциями компиляции.
Ответить | Правка | К родителю #155 | Наверх | Cообщить модератору

494. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (492), 10-Фев-21, 12:59 
> когда программа должна компилироваться с разными версиями библиотек, иногда с изменившемся API

В Раст принят semver и это большой плюс. Но ни что не мешает вам версионировать как вздумается, главное в публичный доступ этот позор не выкладывайте.
>или вообще с разными библиотеками делающими одно и то же но по разному и с разными опциями компиляции.

опции компиляции задаются https://doc.rust-lang.org/cargo/reference/features.html
также позволяются билд-скрипты (написанные на Раст! а не 100500 различных утилит и башскриптов) https://doc.rust-lang.org/cargo/reference/build-scripts.html

Зря вы так. cargo очень хорошо документирован, единообразен и допиливается умными людьми.

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

499. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 10-Фев-21, 13:35 
Так покажите мне программу на раст, которая может использовать разные библиотеки для одного и того же в зависимости от опций компиляции.
Ответить | Правка | Наверх | Cообщить модератору

502. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (492), 10-Фев-21, 13:54 
Вот очень хорошая программа на 100% Rust. (Использует только Libc)
https://github.com/hecrj/iced/blob/master/Cargo.toml
Там, в секции Features, в качестве фреймворка async (раст асинхронщину запиливать не стал сам, только интерфейс общий предоставил в СТДлибе) можно использовать как tokio (фреймворк для написания асинхронных приложений и библиотек), так и async-std (асинхронная реализация стандартной библиотеки)
Ответить | Правка | Наверх | Cообщить модератору

506. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 10-Фев-21, 14:38 
Спасибо. Посмотрю на досуге.
Ответить | Правка | Наверх | Cообщить модератору

510. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 10-Фев-21, 14:56 
Я правильно понимаю, что хотя используемые модули и разные, но интерфейс у них один?

Я то о другом спрашивал.

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

Типа:

#ifdef DDDD

aaa->call(1, 2, 3)

#else

aaa->call(4, 5)

#endif

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

517. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (-), 10-Фев-21, 20:33 
В раст это зовется условная компиляция и реализуется с помощью атрибутов https://doc.rust-lang.org/reference/conditional-compilation....
Ответить | Правка | Наверх | Cообщить модератору

522. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (459), 11-Фев-21, 00:30 
Во! Может быть это и подойдёт. Есть ли примеры программ использующих это для вызова разных методов разных библиотек?
Ответить | Правка | Наверх | Cообщить модератору

526. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (-), 11-Фев-21, 15:09 
Зачем вам пример? Библиотека все равно не будет вкомпилирована в проект, если она не используется.

Вот нужная вам часть библиоеки для создания кроссплатформенных GUI'ев для разных систем. Так она выбирает какие библиотеки вкомпилировать в проект, основываясь на конфигурации
https://github.com/linebender/druid/blob/master/druid-shell/...

Вот она же подгружает различные модули для различных платформ для создания унифицированного интерфейса (но это не обязательное условие, можно и две разные функции получить как вы хотите):
https://github.com/linebender/druid/blob/master/druid-shell/...
сами модули распологаются, естественно рядом: https://github.com/linebender/druid/tree/master/druid-shell/...

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

531. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (459), 11-Фев-21, 23:45 
То что можно разное прикомпилировать понял уже.

Основная проблема проектов разрабатываемых длительное время в том, что обычно не рефакторят архитектуру для использования еще одной библиотеки. А самый простой способ - условная компиляция при вызове разных методов разных библиотек.

Что требуется. Перед сборкой на целевой системе проверить наличие библиотек и использовать одну из найденных (какой-то вариант умолчательный, остальные варианты желательно иметь возможность выбрать аргументами вызова компиляции).

Так я и хочу увидеть насколько это возможно и читаемо в реальных проектах.

Пока видел только заточку архитектуры на использование конкретных библиотек, а это подходит только или для маленьких проектов или для проектов с малым временем жизни.

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

532. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (439), 12-Фев-21, 08:53 
>Что требуется. Перед сборкой на целевой системе проверить наличие библиотек и использовать одну из найденных (какой-то вариант умолчательный, остальные варианты желательно иметь возможность выбрать аргументами вызова компиляции).

Я уже писал про билд-скрипты Cargo вроде. Мы ходим по кругу. Как там и написано, можно искать в системе и LibreSSL и OpenSSL и разных версий, и разные файлы (модули) можно компилировать в зависимости от этих условий. Также можно библиотеки как динамически прилинковать, так и скомпилировать GCC. Это билд-скрипты поставляемые с растом (с карго).
https://doc.rust-lang.org/cargo/reference/build-script-examp...

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

534. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 12-Фев-21, 13:56 
Так я и хочу посмотреть пример программы которая использует это. То что это есть это хорошо. Вопрос простой. Есть ПРИМЕР того, как это используется в реальной программе? ПРИМЕР как в реальной программе в одном месте вызываются разные методы разных библиотек в зависимости от опций компиляции?

Те примеры которые были (с разными модулями, у которых один интерфейс) - были очень специфичны.

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

562. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (-), 15-Фев-21, 09:33 
По ссылке реальный пример.
Ответить | Правка | Наверх | Cообщить модератору

564. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 15-Фев-21, 15:41 
> По ссылке реальный пример.

Который показывает что можно использовать разные модули, если у них один интерфейс.

Как бы помягче сказать, это не то, от слова совсем.

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

565. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (-), 15-Фев-21, 16:36 
Да все очень просто.
Есть факт - билд скрипт может обнаружить библиотеку в системе.
Есть воторой факт - билд скрипт умеет компилировать различный код в зависимости от условий.
Кто умеет читать тот поймет как это использовать. Хоть с один интерфейс себе построит, хоть десять штук.
Ответить | Правка | К родителю #564 | Наверх | Cообщить модератору

566. "Завершён процесс создания организации Rust Foundation "  +/
Сообщение от Аноним (499), 16-Фев-21, 11:40 
> Кто умеет читать тот поймет как это использовать. Хоть с один интерфейс себе построит, хоть десять штук.

Во поервых, не себе строить, а использовать уже имеющиеся.

Во вторых, умный поищет делал ли кто-то хоть что-либо подобное. И если нет. То значит есть нерешаемые проблемы. И даже смотреть в эту сторону рано.

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

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

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




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

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