LINUX.ORG.RU

Darcs 2.10.2

 , ,


1

8

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

В новой версии основная масса изменений посвящена исправлению ошибок и улучшениям в коде, среди которых:

  • Оптимизация потребления памяти командой patch apply.
  • При работе в Windows больше не используется mmap.
  • Обновлены подсказки.
  • Исправлены недочёты в пакете тестов.
  • Исправлен баг в команде darcs test.
  • Вновь возможна сборка на платформе PowerPC.

Darcs написан на языке программирования Haskell и распространяется под лицензией GPL.

Страница проекта

>>> Анонс релиза

★★★★★

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

При работе в Windows больше не используется mmap.

Зачем это вообще писать в изменениях? Юзеру пофиг, как оно там во внутренностях устроено.

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

Даешь очередную, никому не нужную, VCS.

Ну у сабжа хотя бы своя уникальная идея, а все плееры одинаковы и все говно.

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

лучше бы veracity вспомнил.

Все же в darcs уникальный подход, но на мой взгляд, он более инопланетянский, чем git. Да и к тому же он был диким тормозом до 1.*, потому шансов взлететь у него в своё время не было.

qnikst ★★★★★
()

git, mercurial - звучит легко и красиво, darcs - тяжелее. Точно как yam - красиво, dnf - быковато.

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

Модераторам: релиз минорный, но новостей про darcs не было очень давно.

Очевидно никому не нужен.

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

А то Хацкель это еще большая маргинальщина чем Раст.

В чём измеряется маргинальность ЯП? Просто любопытно, как ты это определил.

hateyoufeel ★★★★★
() автор топика

Darcs does not yet support local branches.

Ну как бы всё.

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

все плееры одинаковы и все говно.

Кроме Дедбифа конечно же.

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

Цацкель - боевой, промышленный язык, а Руст - смесь бульдога с носорогом и трактором Беларусь.

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

Ответ прост: все что не осиливается — отправляется в маргинальщину.

Я вот не осилил Java. Могу ли я называть Java маргинальным языком?

hateyoufeel ★★★★★
() автор топика

Примеры алгебры

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

А можно где-то увидеть описание и примеры применения этой алгебры патчей? Особенно интересует сравнение с diff'ом и git'ом.

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

Могу ли я называть Java маргинальным языком?

Можешь, разрешаю.

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

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

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

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

Можно подумать, что с C++ программистами дело обстоит иначе.

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

Нанял ты аутиста-борщееда писать на каскеле, а у него неизлечимый рак сфинктера.

Звучит как выпуск Terrance & Phillip из South Park. Может, всё же лучше нанять кого-то чуть более адекватного писать на хаскелле?

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

На крестах в своё время дохрена софта было написано, который ныне нужно поддерживать и развивать. Плюс, кресты хоть и мультипарадигменные, но всё же императивщина преобладает. Это немного снижает порог вхождения.

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

На крестах в своё время дохрена софта было написано, который ныне нужно поддерживать и развивать. Плюс, кресты хоть и мультипарадигменные, но всё же императивщина преобладает. Это немного снижает порог вхождения.

немного снижает порог вхождения

Да, именно по этой причине тебе приходится пробиваться сквозь стадо идиотов на собеседовании.

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

Удачи в поисках.

Я бы не сказал, что поиск программиста со знанием Haskell сильно сложнее данного процесса в случае с C++ или Java. Зачастую высокий порог вхождения наоборот является преимуществом, т.к. это позволяет отсеять явных идиотов.

hateyoufeel ★★★★★
() автор топика

Сначала хотел написать «Никогда от такой не слышал», потом прочитал «написан на языке программирования Haskell».

И таки лучше «написана». «Система» же женского рода.

Какие-то более или менее крупные фирмы этим пользуются? На сайте ничего такого не нашел.

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

И таки лучше «написана». «Система» же женского рода.

Я писал по аналогии с git, о котором обычно говорят в мужском роде.

Какие-то более или менее крупные фирмы этим пользуются? На сайте ничего такого не нашел.

Уже нет. Очень многие перешли на git ввиду большего количества вспомогательных инструментов, поддержки хостингов (github, bitbucket) и т.д. Даже GHC в 2011 мигрировал с darcs на git.

hateyoufeel ★★★★★
() автор топика

Darcs написан на языке программирования Haskell ...

Поставьте это первой строкой и дальше можно не читать.

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

В чём измеряется маргинальность ЯП?

Берёшь за уши среднего школьника с базовым знанием бейсика. Если он может примерно сказать, что делает кусок кода на тестируемом языке, значит это годнота.
Мне, при моём багаже в 30 языков (куда входили и ЛИСП, и Перл, и Пролог), чувствуется крайне неуютно среди кракозябр Хаскеля. Это не говоря про ФП, которая суть «инопланетный способ мышления». Так что Хаскель с полным правом можно зазвать гиковской маргинальщиной и ни в коем случае не допускать до мэйнстрима!

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

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

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

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

при моём багаже в 30 языков

Дальше можно не читать.

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

ни в коем случае не допускать до мэйнстрима

Ты опоздал, прости.

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

В данном случае правильнее будет называть тебя маргинальным программистом. Маргинальная Java - это нонсенс.

anonymous
()

Что ни тред про хаскел, так перепись неосиляторов со своим экспертным мнением.

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

Если он может примерно сказать, что делает кусок кода на тестируемом языке, значит это годнота.

ОК. Сравним два куска кода:

revstr :: String -> String
revstr = unwords . reverse . words -- point-free style
--equivalent:
--revstr s = unwords (reverse (words s))
 
revtext :: String -> String
revtext = unlines . map revstr . lines -- applies revstr to each line independently
 
test = revtext "---------- Ice and Fire ------------\n\
        \\n\
        \fire, in end will world the say Some\n\
        \ice. in say Some\n\
        \desire of tasted I've what From\n\
        \fire. favor who those with hold I\n\
        \\n\
        \... elided paragraph last ...\n\
        \\n\
        \Frost Robert -----------------------\n" --multiline string notation requires \ at end and start of lines, and \n to be manually input

main = print $ revtext test

и

#include <algorithm>
#include <functional>
#include <string>
#include <iostream>
#include <vector>
 
//code for a C++11 compliant compiler
template <class BidirectionalIterator, class T>
void block_reverse_cpp11(BidirectionalIterator first, BidirectionalIterator last, T const& separator) {
   std::reverse(first, last);
   auto block_last = first;
   do {
      using std::placeholders::_1;
      auto block_first = std::find_if_not(block_last, last, 
         std::bind(std::equal_to<T>(),_1, separator));
      block_last = std::find(block_first, last, separator);
      std::reverse(block_first, block_last);
   } while(block_last != last);
}
 
//code for a C++03 compliant compiler
template <class BidirectionalIterator, class T>
void block_reverse_cpp03(BidirectionalIterator first, BidirectionalIterator last, T const& separator) {
   std::reverse(first, last);
   BidirectionalIterator block_last = first;
   do {
      BidirectionalIterator block_first = std::find_if(block_last, last, 
         std::bind2nd(std::not_equal_to<T>(), separator));
      block_last = std::find(block_first, last, separator);
      std::reverse(block_first, block_last);
   } while(block_last != last);
}
 
int main() {
   std::string str1[] = 
    {
        "---------- Ice and Fire ------------",
        "",
        "fire, in end will world the say Some",
        "ice. in say Some",
        "desire of tasted I've what From",
        "fire. favor who those with hold I",
        "",
        "... elided paragraph last ...",
        "",
        "Frost Robert -----------------------"
    };
 
   std::for_each(begin(str1), end(str1), [](std::string& s){
      block_reverse_cpp11(begin(s), end(s), ' ');
      std::cout << s << std::endl;
   });
 
   std::for_each(begin(str1), end(str1), [](std::string& s){
      block_reverse_cpp03(begin(s), end(s), ' ');
      std::cout << s << std::endl;
   });
 
   return 0;
}

P.S. Оба примера делают одно и то же и взяты с Rosettacode.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

ОК. Сравним два куска кода:

Сейчас придут фонаты цепепе и будут истошно кричать, дескать, «такой няшный код только неосиляторы не понимают. Цепепе-программист проглатывает такой код на ура. Ведь даже Boost и то написали, а тут, пустяки» :-)

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

darcs инопланетянский

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

SystemD-hater
()
Ответ на: А в чем проблема то? от chemistmail

Зайди на ruhaskell.org, опубликуй вакансию в форуме. Продублируй в чате.

А его кто-то читает? Лучше в haskell-cafe@ заслать. Я там за последние три недели видел две вакансии из Москвы: от касперского и ещё чья-то.

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

И таки лучше «написана». «Система» же женского рода.

Darcs - слово явно мужеского пола.

А по делу - в Darcs, в отличии от кошерного git, не хватает свистелок и перделок. Ну и поле «ssh public key(s) (required for push)» при регистрации доставляет. С другой стороны да, «это позволяет отсеять явных идиотов.»

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