LINUX.ORG.RU

Pijul 0.11

 , , ,


3

6

Вышла новая версия Pijul — свободной системы управления версиями, основанной на теории патчей и написанной на языке Rust.

Pijul развивает идеи Darcs — Pijul быстрее, лучше, в нём решена проблема экспоненциальной сложности слияния и поддерживаются ветки (для всех, кто спросил и еще спросит «чем оно лучше Git» - ссылка на FAQ)

Слово «Pijul» (произносится «пихуль») — это мексиканское названия Бороздчатоклювого ани, вида птиц семейства кукушковых, чьи особи совместно работают над строительством гнёзд.

Улучшения в версии 0.11:

  • Добавлено частичное клонирование подкаталогов: pijul clone --path и pijul pull --path. При этом скачиваются только те патчи, которые затрагивают указанный подкаталог.
  • Добавлен парсер ~/.ssh/config — теперь Pijul будет автоматически использовать настройки псевдонимов хостов, SSH-прокси, ключей и т. д.
  • Внутренняя архитектура переведена на использование библиотеки Tokio — де-факто стандарта для асинхронного программирования на языке Rust. Минус велосипеды, новичкам будет проще разобраться в коде Pijul.
  • Исправлено много мелких и две крупные ошибки. Одна из них приводила к падению производительности при использовании pijul record, другая в некоторых случаях приводила к изменении содержимого патчей и файлов после клонирования.

Для нужд Pijul автором также развиваются вспомогательные библиотеки:

  • Thrussh — реализация клиента и сервера SSH на языке Rust.
  • Pleingres — клиентская библиотека, реализующая сетевой протокол PostgreSQL на языке Rust.
  • Sanakirja — хранилище «ключ-значение» на языке Rust, основанное на B-деревьях и поддерживающее транзации (аналог LMDB). «Sanakirja» по-фински означает «словарь».

Автор также разрабатывает Pijul Nest — аналог GitHub на основе Pijul и Rust. К сожалению, Nest пока не является свободным проектом.

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: tailgunner (всего исправлений: 4)

Ответ на: комментарий от tailgunner

Значит, проблема гита под windows — использование posix-эмуляции.

Это не та проблема, из-за которой можно тормозить в разы. И fork, и exec - операции редкие.

В данный момент Windows у меня нет от слова совсем, поэтому протестировать не могу. Может как-нить поставлю VirtualBox с виндой и посмотрю, насколько дольше там выполняется одиночная внешняя команда, и сколько отжирают pipe'ы. Пока же могу только сказать, что набор bash-скриптов, выполнявшийся в родном linux за единицы минут (не более 5 минут, а может и быстрее, точно не помню), в cygwin и msys2 выполнялся не менее 30-40 минут. И это при выключенном антивирусе и др. ненужных службах. С включённым касперским там вообще ад.

Ну а касательно редкости — тоже всё относительно. Например, в коротком цикле

n=0
while [ $n -lt 100 ]
 do
   grep 'search_string' file${n}.txt | awk '{print "$1: $3 $4"}' | tr '[:lower:]' '[:upper:]'
   let n+=1;
 done

произойдёт 300 вызовов fork и exec и в общей сложности будет создано 200 pipe-каналов для чтения и обработки 100 текстовых файлов. Если файлы небольшие, и обработка занимает немного времени, то относительная доля fork и exec увеличивается. Хотя для того, чтобы говорить с цифрами в руках, надо измерять.

aureliano15 ★★
()
Ответ на: комментарий от NextGenenration

Харэ уже троллить тупостью. Непредсказуемые лаги из-за сборки мусора юзеру не нужны (даже юзеру блокнота, не говоря о более важных системах), вот и весь сказ.

anonymous
()
Ответ на: комментарий от anonymous

Харэ уже троллить тупостью. Непредсказуемые лаги из-за сборки мусора юзеру не нужны (даже юзеру блокнота, не говоря о более важных системах), вот и весь сказ.

Почитай про современные gc. Ты уже не в 80, где си является значительным достижением

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

И какие же остальные?

А там было что-то хорошее?

Один баг в хроме и сразу убогость веба

Баг не в хроме, а в архитектуре html/css, ибо компу приходится очень сильно пыхтеть, чтобы просто поменять цвет одного элемента.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

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

Это тебе кажется что нужно отрендерить только курсор. А вот забагованному хрому кажется что нужно отрендерить всё остальное. И так 60 раз в секунду. Вот по этой причине vs code так себя и вёл.

NextGenenration ★★
()
Ответ на: комментарий от tailgunner

Чтоб компилятор меня понимал, когда я комбинирую дженерики с типами внутри трейтов. Сейчас он частенько взбрыкивает и отказывается компилировать вполне валидный с точки зрения здравого смысла код.

q0tw4 ★★★★
()
Ответ на: комментарий от tailgunner

Ну а фишки всякие можно узать, а можно не узать. Впрочем если введут контроль еффектов как в purescript, будет надежнее код. Кроме контроля памяти компилятор сможет контролировать вообще любое взаимодействие с системой.

q0tw4 ★★★★
()
Ответ на: комментарий от RazrFalcon

А IDEA всё также тупит.

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

NextGenenration ★★
()
Ответ на: комментарий от q0tw4

Ну а фишки всякие можно узать, а можно не узать

Впрочем если введут контроль еффектов как в purescript

Everything and the kitchen sink. И получится очередной Си++.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ясно.

Емнип дважды взять владение одной переменной в одной строке нельзя.

NextGenenration ★★
()
Ответ на: комментарий от O02eg

VimScript тоже интерпретатор с GC.

Вот и получается что сложная программа на си/крестах несёт в себе половину лиспа, только хуже.

Вимеры пытались отказаться от VimScript в пользу какого-то другого встраиваемого языка?

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Вимеры пытались отказаться от VimScript в пользу какого-то другого встраиваемого языка?

А какой другой встраиваемый язык не болеет GC?

O02eg ★★★★★
()
Ответ на: комментарий от gtk3

Если у windows [skip] были открытые исходники

Кстати, их исходники не такие уж закрытые, т. к. периодически утекают. Последний раз это случилось в прошлом году, а первый взлом с массовой утечкой исходников Windows произошёл аж в 2004. Вот сейчас гуглил, чтоб вспомнить год, и узнал, что Microsoft до сих пор безуспешно пытается вычистить из Сети эти исходники 14-летней давности. См., например, https://xakep.ru/2015/04/15/windows-nt-4-0/ :-)

aureliano15 ★★
()

Вылез из танка, тред не читал.

1. Кто-то реально думает, что его блабла нужнее поделки самого Торвальдса?
2. Руст таки нужен?
3. Является ли главной новостью ssh на руст, а это так, для прикрытия?

Deleted
()
Ответ на: комментарий от NextGenenration

Оно тормозит даже там, где тормозить не должно. Sublime Text на данный момент является эталоном отзывчивости.

RazrFalcon ★★★★★
()
Ответ на: комментарий от O02eg

А какой другой встраиваемый язык не болеет GC?

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

Не любой случайный код можно сразу, открыв документацию по языку переписать на другой. То есть то что написано к примеру на ruby может не взлететь на php.

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

NextGenenration ★★
()
Ответ на: комментарий от RazrFalcon

И виной тут невозможность тонкого контроля содержимого в html+css.

Его не осилили профессионалы крестовики. Сразу не осилили. Через несколько версий хрома эту багу поправят.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Емакс например тупит только при запуске. Потом из него вполне норм ИДЕ, даже на слабых машинах.

q0tw4 ★★★★
()
Ответ на: комментарий от NextGenenration

Попробуйте формулировать свои мысле в голове/тетрадке, а потом уже писать на лор.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Оно тормозит даже там, где тормозить не должно.

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

Sublime Text на данный момент является эталоном отзывчивости.

С каких пор текстовой редактор записан в раряд ide?

NextGenenration ★★
()
Ответ на: комментарий от q0tw4

Емакс например тупит только при запуске. Потом из него вполне норм ИДЕ, даже на слабых машинах.

В нём реализована хотя-бы половина тех фич из idea?

NextGenenration ★★
()
Ответ на: комментарий от RazrFalcon

В тех же настройках.

Подключение к базе данных и в софте 2007 года от microsoft тормозит. Точнее не тормозит, а выполняетя не мгновенно. Вроде как тогда ещё не слишком microsoft писал на c#. И потом, это именно gc тормозит или же синхронный код запрашивающий какую-то долгую операцию?

NextGenenration ★★
()
Ответ на: комментарий от q0tw4

Смотря какой язык и какой выбрать плагин

Вот по этому и работает быстро. Правда тут возникает вопрос в том что лучше - пытаться работать в emacs при слабой поддержке языка и необходимости учиться элементарным вещам типа открытия файла или же поставить к примеру vs code и получить примерно такую же слабую поддержку языка.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Было бы кому обноружить. Это как с дырами в коде - дыра есть, но её никто не видит.

И ещё раз. Утечка - не уязвимость

anonymous
()
Ответ на: комментарий от anonymous

И ещё раз. Утечка - не уязвимость

Разве я утверждаю обратное? Утечка это скорее неприятность, особенно если это утечка не в каком-то десктопном софте, а в софте на сервере, который придётся периодически перезапускать

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Хватит спорить с голосами в голове. Я ни про какую базу не говорил. Банальная установка/снятие галок. Ввод значений в поля. Всё лагает космически.

При этом у QtC всё отлично. Как же так?

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

Ты видно даже ту статью которая является единственным источником твоих знаний о NoSQL не осилил прочитать целиком. Абзац про eventual consistency осилил, а дальше воспитательница спать погнала, и до strong consistency ты не добрался.

slovazap ★★★★★
()
Ответ на: комментарий от Deleted

3. Является ли главной новостью ssh на руст, а это так, для прикрытия?

Может быть, но thrussh зависит от ring, а оно такое...

tailgunner ★★★★★
()
Ответ на: комментарий от dinama

при всём моем уважении

Вы мне первый раз в жизни пишете, вашему уважению - грош цена.

именно из-за ужасного синтаксиса никак не перейду на этот язык.

Если вы не можете перейти на язык из-за синтаксиса, у меня для вас плохие новости.

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

Да, я не дописал - «кроме lifetimes». Да, могло быть красивее, но ничего критичного.

slovazap ★★★★★
()
Ответ на: комментарий от RazrFalcon

Хватит спорить с голосами в голове. Я ни про какую базу не говорил. Банальная установка/снятие галок. Ввод значений в поля. Всё лагает космически.

При этом у QtC всё отлично. Как же так?

Открой в gedit дамп базы данных, мегабайт на 20. А теперь попробуй в поле поиска по одной букве, а не копипастом начать вводить текст. А теперь повтори в vs code. А теперь подумай, что написано на электроне, а что нет.

NextGenenration ★★
()
Ответ на: комментарий от NextGenenration

Тоже можешь без профилировщика видеть паузы в сборке мусора?

Тоже могу без профилировщика увидеть бешеную латентность при обработке запросов. Когда их много, и когда ты должен укладываться в разумные пределы, это становится проблемой.

Я уже не говорю про потребление памяти, которое при использовании generational GC сильно выше.

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 2)
Ответ на: комментарий от slovazap

у меня для вас плохие новости.

и какие-же?

ps да, кроме let, еще fn надо писать.

dinama
()
Ответ на: комментарий от slovazap

Если вы не можете перейти на язык из-за синтаксиса, у меня для вас плохие новости.

Расскажешь об этом, когда на code review кто-нибудь не заметит перепутанные местами and_then и or_else. Из-за замыленного глаза. Не то чтобы это было поводом отказаться от языка, но Rust объективно визуально перегружен и вообще стоило бы подумать о возможных путях решения.

kirk_johnson ★☆
()
Ответ на: комментарий от NextGenenration

Ничего что vscode использует ripgrep, написанный на расте, для поиска.

Ну и речь была про html+css. При чём тут поиск текста - не ясно.

RazrFalcon ★★★★★
()
Ответ на: комментарий от kirk_johnson

and_then и or_else

А при чём тут язык? Это просто code style.

RazrFalcon ★★★★★
()
Ответ на: комментарий от kirk_johnson

Тоже могу без профилировщика увидеть бешеную латентность при обработке запросов

Это где?

Я уже не говорю про потребление памяти, которое при использовании generational GC сильно выше.

Актуально только для мест с очень высокими нагрузками

NextGenenration ★★
()
Ответ на: комментарий от kirk_johnson

Расскажешь об этом, когда на code review кто-нибудь не заметит перепутанные местами and_then и or_else. Из-за замыленного глаза.

Разве грамотно написанные мутационные тесты не поймают подобный код?

NextGenenration ★★
()
Ответ на: комментарий от RazrFalcon

Ничего что vscode использует ripgrep, написанный на расте, для поиска.

Наглядная демонстрация того что даже на самых производительных языках можно писать говнокод.

Ну и речь была про html+css

Только вот по какой-то причине баги хрома распространяют на весь веб.

При чём тут поиск текста - не ясно.

При том что навигация не тормозит, ввод не тормозит.

NextGenenration ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.