Патч в кложурь
Feb. 22nd, 2013 02:48 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сидел до утра пилил модуль в опердени на кложуре.
Наткнулся в процессе на классическую шизу - "ошибка в обработке ошибок", некоторые ошибки в исходниках (при macroexpand) в принципе не показывают информацию о месте, где произошла ошибка.
Мне-то хорошо, я hg diff глянул и сразу вижу где чернь, потому что я коммиты делаю после каждой заработавшей функции, но такие ошибки напрягают.
Полез искать в исходники, вроде починил, сообщение об ошибке чуть более аккуратно оформил, информации добавил, оформил баг-репорт с патчем.
Даже если в апстрим попадет нескоро - возможность самостоятельно починить исходники в дебрях языка или либ сильно спасает. И является тестом на пригодность к использованию разного рода не особо мейнстримных языков - если можно их починить самому за пару часов - пригоден, иначе - нет.
Наткнулся в процессе на классическую шизу - "ошибка в обработке ошибок", некоторые ошибки в исходниках (при macroexpand) в принципе не показывают информацию о месте, где произошла ошибка.
Мне-то хорошо, я hg diff глянул и сразу вижу где чернь, потому что я коммиты делаю после каждой заработавшей функции, но такие ошибки напрягают.
Полез искать в исходники, вроде починил, сообщение об ошибке чуть более аккуратно оформил, информации добавил, оформил баг-репорт с патчем.
Даже если в апстрим попадет нескоро - возможность самостоятельно починить исходники в дебрях языка или либ сильно спасает. И является тестом на пригодность к использованию разного рода не особо мейнстримных языков - если можно их починить самому за пару часов - пригоден, иначе - нет.
no subject
Date: 2013-02-22 11:55 am (UTC)no subject
Date: 2013-02-22 12:20 pm (UTC)Хорошо, что в большинстве случаев можно просто с исключением свалится, главное в нем контекст, вызвавший исключение вернуть, для дальнейших разборок.
no subject
Date: 2013-02-22 11:56 am (UTC)Не вопрос, в гараж, движок разобрать.
Ага вот тут переделать надо.
Не вопрос, вытачиваем на токарном станке, фрезеруем, шлифуем/полируем.
И оппа, мы опять на коне.
no subject
Date: 2013-02-22 11:59 am (UTC)no subject
Date: 2013-02-22 12:01 pm (UTC)no subject
Date: 2013-02-22 12:12 pm (UTC)no subject
Date: 2013-02-22 12:57 pm (UTC)no subject
Date: 2013-02-22 04:18 pm (UTC)no subject
Date: 2013-02-24 01:56 pm (UTC)no subject
Date: 2013-02-22 12:45 pm (UTC)no subject
Date: 2013-02-22 07:53 pm (UTC)no subject
Date: 2013-02-22 11:22 pm (UTC)no subject
Date: 2013-02-22 12:19 pm (UTC)no subject
Date: 2013-02-22 12:24 pm (UTC)no subject
Date: 2013-02-22 12:25 pm (UTC)no subject
Date: 2013-02-22 01:02 pm (UTC)no subject
Date: 2013-02-22 01:09 pm (UTC)no subject
Date: 2013-02-22 01:10 pm (UTC)Бубунта тоже бебиян, да?
no subject
Date: 2013-02-22 01:26 pm (UTC)no subject
Date: 2013-02-22 01:47 pm (UTC)no subject
Date: 2013-02-22 01:50 pm (UTC)no subject
Date: 2013-02-22 01:54 pm (UTC)no subject
Date: 2013-02-22 02:06 pm (UTC)no subject
Date: 2013-02-22 02:07 pm (UTC)no subject
Date: 2013-02-22 03:27 pm (UTC)no subject
Date: 2013-02-23 10:41 am (UTC)no subject
Date: 2013-02-22 04:13 pm (UTC)no subject
Date: 2013-02-22 05:59 pm (UTC)no subject
Date: 2013-02-22 04:19 pm (UTC)Неужели, бубунту?
no subject
Date: 2013-02-22 05:18 pm (UTC)no subject
Date: 2013-02-22 05:48 pm (UTC)no subject
Date: 2013-02-22 05:54 pm (UTC)no subject
Date: 2013-02-23 08:12 am (UTC)no subject
Date: 2013-02-23 08:14 am (UTC)no subject
Date: 2013-02-22 12:42 pm (UTC)no subject
Date: 2013-02-22 01:02 pm (UTC)no subject
Date: 2013-02-22 04:20 pm (UTC)Из этой реплики не понять — то ли разработчики ядра, то ли PHP'шнеки из Малиновки...
no subject
Date: 2013-02-22 04:55 pm (UTC)no subject
Date: 2013-02-23 02:45 am (UTC)Или вы за линуксокапец?
no subject
Date: 2013-02-22 10:10 pm (UTC)no subject
Date: 2013-02-23 09:56 am (UTC)no subject
Date: 2013-03-05 06:44 pm (UTC)Почему кложурь, а не какой-то ООП-язык с функциональными примочками?
no subject
Date: 2013-03-05 07:06 pm (UTC)На фриноде в #clojure порядка 600 сидит, в списке контрибюторов человек под 100.
Насчет того, почему clojure - выбор реально на данный момент: скала, кложурь или F#. По крайней мере, в них доступ к БД, веб-фреймворки и GUI или родные или взяты из жабы с дотнетом. И интеграция со сторонними либами прямо, а не через "пишем на ANSI C адаптер через FFI размером больше, чем весь наш софт".
Из этого, на момент выбора, метапрограммирование было только в кложуре. Описание разного рода нетривиальных данных (конкретно, финансовая отчетность) проще всего делать на DSL сделанных поверх clojure.
Из недостатков - динамическая типизация.
Я сейчас рассматриваю вариант мигрировать вообще все на скалу, в целях исключения из продакшена бардака в языках. Но как-то пока не срастается - на кложури рестфул-веб-сервис поверх базы данных я сделал за пару дней, а в скале даже проект толком оформить пока не могу - всякие заебы с мавеном да версиями фреймворков да прочим вуду.
no subject
Date: 2013-03-05 07:11 pm (UTC)no subject
Date: 2013-03-05 07:12 pm (UTC)