The OpenNET Project / Index page

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

Опубликована командная оболочка fish 4.0, переписанная на языке Rust

28.02.2025 22:23

Состоялся релиз интерактивной командной оболочки fish 4.0.0 (friendly interactive shell), нацеленной на создание более дружественной пользователю альтернативы bash и zsh. Fish поддерживает такие возможности как подсветка синтаксиса с автоматическим выявлением ошибок ввода, предложение возможных вариантов ввода на основе истории прошлых операций, автодополнение ввода опций и команд с использованием их описания в man-руководствах, комфортная работа из коробки без необходимости дополнительной настройки, упрощённый язык написания сценариев, поддержка буфера обмена, средства поиска в истории выполненных операций. Код проекта распространяется под лицензией GPLv2. Готовые пакеты сформированы для Ubuntu, Debian, Fedora и openSUSE.

Новая ветка примечательна полным переводом кодовой базы с языка С++ на Rust. Отмечается, что переход на Rust позволил решить проблемы с многопоточностью, повысить безопасность работы с памятью, сделать проект более привлекательным для новых разработчиков и задействовать современный инструментарий, выявляющий ошибки на этапе компиляции. Работа по переписыванию fish на Rust заняла два года. В создании выпуска 4.0 приняли участие более 200 разработчиков.

  1. Главная ссылка к новости (https://fishshell.com/blog/new...)
  2. OpenNews: Командную оболочку Fish планируют переписать на языке Rust
  3. OpenNews: Выпуск командной оболочки fish 3.0
  4. OpenNews: Выпуск командной оболочки GNU Rush 2.0
  5. OpenNews: Релиз командной оболочки zsh 5.1
  6. OpenNews: Доступен командный интерпретатор Bash 5.2
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/62811-fish
Ключевые слова: fish, shell, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (76) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:32, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Не POSIX совместимо. Опять поделка уровня привет мир.
     
     
  • 2.7, Аноним (7), 22:58, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Напомню что линукс это "mostly POSIX-compliant".
    В отличии например от макоси.
    Так что над№№№вать на ПОФИГС можно но абсолютно бессмысленно.
     
     
  • 3.42, grand (?), 00:44, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >В отличии например от макоси.

    Хоооороошая операционная система ! Хааарошей архитектуры!
    >"mostly POSIX-compliant" линукс

    напротив операционная система плохая. Распухшее, плохо администриуемое моноядро , практически невозможно перевести на прогрессивные безопасные языки программирования. Ибо для этого нужно как минимум вдвое, а на самом деле - и втрое больше разработчиков ,чтобы разрабатывать и то,и другое , и еще и патчи принимать.А их и так не хватает.И прекратить разработку , и взять и за 4 года все на rust переписать - смелости нет.

     
     
  • 4.52, Аноним (52), 01:24, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Я конечно угораю с рынка труда в целом, что ит, что ритейл какой нибудь. Одних ТП эйчарихи сливают еще до собеса, других выкидывают потому что русский, а потом ноют что спецов нет, работать некому.
     
     
  • 5.60, Аноним (60), 01:42, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.61, Аноним (60), 01:43, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 5.68, Уський (?), 03:32, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Привыкай, уський, теперь мир идет в сторону отказа от всего соссийского :)
     
  • 2.9, Аноним (9), 22:58, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Эта поделка существует дольше, чем ты слово POSIX знаешь.
     
  • 2.22, morphe (?), 23:32, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ещё бы скрипты кто-то posix-совместимые писал, кругом же башизмы и никакой posix shell их не переварит
     
  • 2.45, Аноним (45), 00:56, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ведь это так важно куда ты будешь вводить свои 'cd' и 'ls'
     
  • 2.49, Аноньимъ (ok), 00:59, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Посикс - худшее что случалось с IT индустрией.
    После сишки конечно.
     
     
  • 3.50, Аноним (50), 01:05, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
  • 3.67, Аноним (67), 03:11, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    После сишеки, были си с плюсами.
    Это так, для уравновешивания.
     
  • 2.79, laindono (ok), 05:50, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А posix вообще актуален? В мире победившего linux как-то не очень понятно, в чём смысл.

    Разве posix это не стандарт? Стандарты вообще для чего пишут, знаешь? Чтоб проще было обеспечивать совместимость. Совместимость между linux и чем? Между linux и бздном? Между linux и яблоком? Не очень-то хотелось, не очень-то они совмещаются. Ввиду не слишком пересекающихся ниш.

     

  • 1.2, Герострат (?), 22:35, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Не думал, что рыба может заржаветь
     
     
  • 2.11, Dzen Python (ok), 23:05, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Смотря какой рыбец.
     

  • 1.10, Dzen Python (ok), 22:59, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хм...
    А аналоги по функционалу есть? zsh - не то.
     

  • 1.12, Карлос Сношайтилис (ok), 23:09, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О! А я помню, были разговоры про "поиграют с ростом и вернуться", при обсуждении fish.
     
     
  • 2.15, НяшМяш (ok), 23:10, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Поиграли, проиграли - теперь ржавое xD

    Ждём переписывание zsh.

     
     
  • 3.51, Аноним (51), 01:05, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ооо не не не!!!
     

  • 1.13, Нуину (?), 23:09, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > решить проблемы с многопоточностью

    Какие?

     

  • 1.14, Шарп (ok), 23:10, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Шелл красивый и хипстерский, но несовместимость с бгмерзским башем всё портит.
     
     
  • 2.21, morphe (?), 23:30, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Был бы он совместим - был бы таким же мерзким как баш.
    Для существующих скриптов слой совместимости есть, чтобы их sourceить - bass, зачем что-то ещё?
     

  • 1.17, Аноним (-), 23:16, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    К сожалению в новость не добавили предпосылки и причины этого действия fishshel... большой текст свёрнут, показать
     
     
  • 2.20, Внеземная_ОСЬ (?), 23:25, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    autocxx что это ? Авто связка как понятно , что вообще нового сделано кроме пере байтирования и пере дампирования чужого труда в другую директорию ?
     
     
  • 3.24, Аноним (-), 23:42, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > autocxx что это ?

    interop между растом и с++

    > что вообще нового сделано кроме пере байтирования и пере дампирования чужого труда

    Чьего труда?
    Это их же код.

     
     
  • 4.29, Code_convert_avi_to_mpeg (?), 23:47, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Много что кто говорит
     
  • 2.30, Аноним (50), 00:01, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, т.е. на цпп было 17 человек, которые коммитили, а на расте 7 человек, круто. Ну и переписали шелл(что не рокет сайнс) ВСЕГО за 2 года. Потрясающий результат. Все причины высосаны из пальца в желании скрыть истинную причину - автору просто захотелось. Но, видимо, яиц не хватило напрямую написать.
     
     
  • 3.33, Аноним (33), 00:10, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Учитывая что им просто по фану, причин быть и не должно.

    Написали обычный хелло-ворд. Э... переписали.

    Что бы показать что умеют пользоваться растом.

     
     
  • 4.35, Аноним (50), 00:14, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну так претензия к тупому списку причин, которые им пришлось придумать, чтобы оправдать свое решение. Могли бы просто заявить Я ХОЧУ.
    Ну и фанатов Х не особо стоит слушать по поводу Х. Там и хрен лучше стоять начал, и трава 100% позеленела и деньги сами в кармане начали появляться.
     
     
  • 5.53, Аноним (52), 01:27, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Про деньги это да. На что модно, хайпует, в тренде, на то и переписывают, тут и грантик подрезать можно.
     
  • 3.37, Аноним (-), 00:19, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Да, т.е. на цпп было 17 человек, которые коммитили,

    За 11 лет.

    > а на расте 7 человек, круто.

    За два года.

    > Ну и переписали шелл(что не рокет сайнс) ВСЕГО за 2 года.

    В свободное время?

    > Потрясающий результат.

    Уверен ты бы справился лучше и поделишься своими достижениями.
    (Ладно это была шутка, понятно что ты сольешься)

    > Все причины высосаны из пальца в желании скрыть истинную причину - автору просто захотелось.

    Он прямо пишет "Nobody is being paid to work on fish, so we need it to be fun."

    > Но, видимо, яиц не хватило напрямую написать.

    Не, скорее у тебя мозгов почитать)


     
     
  • 4.41, Аноним (50), 00:37, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Видимо свободного времени было меньше Кстати, а написание кода на Си с последую... большой текст свёрнут, показать
     
     
  • 5.69, JackONeill (?), 03:40, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Стул не сожги)
     
  • 3.43, Аноним (43), 00:47, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Власти скрывают А истинная причина - авторам заплатили за переписывание корпы ... большой текст свёрнут, показать
     
     
  • 4.44, Аноним (50), 00:49, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой-то поток шизофазии. Такое комментировать только портить.
     

  • 1.19, Аноним (19), 23:24, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    > Состоялся релиз интерактивной командной оболочки

    зачем это в 21 веке - где кнопки мышью тыкать? ещё два года переписывали 200 человек, пипец похоже на расте то быстро пишется бгг

     
     
  • 2.56, Аноним (52), 01:34, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 2.75, Аноним (75), 04:46, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > зачем это в 21 веке - где кнопки мышью тыкать.

    Подсмотрел у друга программиста он тыкает кнопочки copy - paste, на ios, mac.
    Зачем консоли.

     

  • 1.23, Ан Оним (?), 23:33, 28/02/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот что разработчики пишут в https://github.com/fish-shell/fish-shell/pull/9512#issuecomment-1410820102

    C++'s string handling is subpar, and it's much too easy to fall into passing raw wchar_t * around (and we don't have access to string_view and that just enables even more use-after-free bugs!). This is annoying, because a shell is almost entirely string handling and unix api wizardry.

    Fish also uses threads, for things like the autosuggestion and syntax highlighting ...
    C++ offers few guarantees on what can be accessed from which thread. @ridiculousfish has been trying to crack this for years, and hasn't been confident enough in his solution. We want a tech stack that helps us here, and C++ doesn't.
    -----
    Вобщем, вывод такой: разработчики фиша просто плохо знают С++, чтобы программа на С++ была надёжной, разработчик должен быть ответственным и дисциплинированным, а они хотят по fun'у всё делать, чтоб язык за них всё сделал. А С++ will never thank you.

     
     
  • 2.25, Ан Оним (?), 23:45, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если вместо std::string использовать С-массив из wchar_t, то конечно будет ненадёжно
     
  • 2.26, Аноним (-), 23:46, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, какие плохие разработчики Рыба.
    Но странное дело андроид тоже избавляется от С++, новый код стараются не писать.
    И в хроме какая-то движуха.
    А в ядро С++ даже не взяли, в отличии от))

    > чтоб язык за них всё сделал

    Действительно, какая наглость!
    Надо чтобы программист все ручками писал и каждый битик считал.

     
     
  • 3.36, Ан Оним (?), 00:17, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Надо чтобы программист все ручками писал и каждый битик считал.

    Кто-то должен и это уметь делать. Как-то дали мне задание чтоб на микроконтроллере определённую работу сделать не более чем за 17 микросекунд, так пришлось все команды программы перевести в циклы процессора чтобы время подсчитать

     
     
  • 4.39, Аноним (-), 00:22, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>Надо чтобы программист все ручками писал и каждый битик считал.
    > Кто-то должен и это уметь делать.

    Кому надо, пусть учится.

    > Как-то дали мне задание чтоб на микроконтроллере определённую работу сделать не более чем за 17 микросекунд, так пришлось все команды программы перевести в циклы процессора чтобы время подсчитать

    Как это соотносится с командной оболочкой?


     
     
  • 5.57, Аноним (52), 01:38, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так с такими трендами, что творяться сейчас в индустрии, попросто не останется тех, кто будет учиться таким вещам. И учебников тоже не станет, потому что все отменят.
    Нейронки, пишущие код, язык, не дающий работать с памятью и процессором напрямую, такие вещи до добра не доведут.
     
     
  • 6.70, Прохожий (??), 04:23, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >попросто не останется тех, кто будет учиться таким вещам

    Когда-то очень важным навыком считалось умение охотиться. И где теперь этот навык, и кому он особо нужен?

    >язык, не дающий работать с памятью и процессором напрямую

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

     
  • 2.27, Аноним (19), 23:47, 28/02/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вобщем, вывод такой: разработчики фиша просто плохо знают С++

    да лучше раст изучать чем тратить молодость на плюсы

     
     
  • 3.31, Аноним (33), 00:04, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > да лучше раст изучать чем тратить молодость на плюсы

    лучше тратить молодость на раст, чем тратить молодость на плюсы

    Поправил.

    Правда в таком варианте звучит сомнительно.

     
     
  • 4.47, Ан Оним (?), 00:56, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Молодость знаете на что надо тратить? На работе случай был: лето, жара, окна и двери в коридор открыты, работать особо неохота, вдруг слышим в коридоре незнакомые женские каблучки, идут по коридору и приближаются к нашему коридору. Все уставились в открытую дверь в ожидании кто же это. И прошла мимо красивая высокая блондинка в коротком летнем платье. Все застыли в оцепении. Начальник показывает пальцем вслед блондинке и говорит "Вот, ребята, чем надо заниматься, а не той ф**нёй, которой мы сейчас здесь занимаемся".
     
     
  • 5.71, Прохожий (??), 04:27, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Земля итак идиотами переполнена. А вам всё мало?

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

     
  • 5.74, Аноним (75), 04:43, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > женские каблучки, идут по коридору
    > Начальник показывает пальцем вслед блондинке и говорит "Вот, ребята, чем надо заниматься, а не той ф**нёй, которой мы сейчас здесь занимаемся".

    Ходить на каблуках.
    А почему начальник как надо не показал на своем примере.

     
     
  • 6.80, laindono (ok), 05:55, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.32, анонимус (??), 00:08, 01/03/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.34, Аноним (34), 00:14, 01/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Fish 4.0.0 only says "Segmentation Fault (core dump)" https://github.com/fish-shell/fish-shell/issues/11187

    Ах-ах-ах, безопасный раст не спас от ошибок сегментации.

     
     
  • 2.38, Аноним (50), 00:22, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По ссылке шедевр. Бедолага даже ссаный шелл сбилдить не смог по причине РАСТ. Я емакс на 2х ядрах и 1.5гб озу собирал. Какой позор...
     
     
  • 3.59, Алконим (?), 01:42, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Hello world собирается нормально без проблем. Не знаю какие проблемы там у автора. (На большее раст не способен)
     
     
  • 4.73, Прохожий (??), 04:35, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Раст, конечно, способен, если те, кто его использует, имеет голову на плечах и руки, растущие из плеч. Остальным же можно просто посочувствовать.
     
  • 2.40, Аноним (19), 00:24, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так у него старый проц, бинарь просто собран с оптимистичными флагами
     
     
  • 3.63, Аноним (63), 01:52, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну допустим это так. Но сбилдить то под себя почему не получается? Чтоб сбилдить шелл (шелл, Карл!) из исходников уже C2D и 2Гб RAM недостаточно?
     
  • 2.48, Аноним (48), 00:57, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это определенно наш кумир

    > CPU: Intel Core 2 Duo T6670 (2) @ 2.201GHz

     
     
  • 3.54, Аноним (63), 01:28, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Core 2 Duo 2Ghz уже недостаточно для шелла?
     
     
  • 4.72, Прохожий (??), 04:30, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Для готовой оболочки - достаточно. Но речь же о компиляции. Для компиляции - нет, недостаточно, очевидно. И?
     
  • 2.55, Аноним (63), 01:32, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Там еще интереснее:

    > Okay I wasn't able to compile Fish right on that laptop since apparently 3 GB RAM isn't enough? It's just running out of memory.
    > Yeah, compiling rust programs is fairly memory intensive.

    Я на таком же компе целый Firefox собирал из pkgsrc, а тут какой-то шелл. Блин, что с этим растом не так?

     
     
  • 3.58, 12yoexpert (ok), 01:41, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    а что с ним так?
     
     
  • 4.62, Аноним (63), 01:44, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Растолюбы говорят там какие-то боровы есть
     
     
  • 5.77, 12yoexpert (ok), 05:26, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    скорее медведи
     
  • 2.81, laindono (ok), 06:05, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну...

    > Okay, that CPU is from 2009.

    Почему кто-то ожидает, что всё будет работать из коробки на устаревшем неподдерживаемом оборудовании? При том, что проблема скорее всего фиксится перекомпиляцией, о чём там и сказанно.

    Откуда вообще может взяться эта несовместимость? Новые процы содержат кучу полезных инструкций, благодаря которым можно оптимизировать некоторые части кода. Например какое-нибудь сравнение строк через SIMD. 99% пользователей получают улучшение (в данном случае производительности), 1% получают проблемы (фиксятся, но в ручную). Вполне справедливый обмен, как по мне.

     

  • 1.46, Anoni (?), 00:56, 01/03/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     
  • 1.64, Аноним (64), 02:00, 01/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нормально они так зарелизили - сотни регресионгых багов, уже 4.1 версия на подходе

    https://github.com/fish-shell/fish-shell/labels/regression

     
     
  • 2.65, Аноним (65), 02:29, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так. С нуля переписать на другой язык. На 100 тысяч строк 100 багов - думаю это вполне себе окей..
     
  • 2.66, Аноним (-), 02:41, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Нормально они так зарелизили - сотни регресионгых багов, уже 4.1 версия на подходе

    А я повёлся) Вот и доверяй в следующий раз Анониму.

     

  • 1.76, Аноним (76), 05:23, 01/03/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Изначально написали на Си, потом переписали на Си с плюсами, теперь переписали на Ржавом. Жду завершение нового переписывания кодовой базы на язык УНАСМНОГОСВОБОДНОГОВРЕМЕНИНАЧНЁМПЕРЕПИСЫВАТЬРАДИПЕРЕПИСКИ.  
     
     
  • 2.78, 12yoexpert (ok), 05:27, 01/03/2025 [^] [^^] [^^^] [ответить]  
  • +/
    медленно движутся к электрону, познают себя
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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