LINUX.ORG.RU

GHC 9.0.1

 , ,


0

3

Вышла новая версия компилятора языка Haskell — Glasgow Haskell Compiler. Из-за значительных изменений была увеличена мажорная версия компилятора.

Основные изменения:

  • Добавлена реализация линейных типов (расширение LinearTypes). Линейные типы позволяют отслеживать использование ресурсов на стадии компиляции и могут использоваться, среди прочих вещей, для статического управления памятью в стиле Rust.
  • Новая встроенная библиотека для работы с числами неограниченного размера: ghc-bignum. Её использование помогает с переносимостью в системах, где библиотека GMP по каким-либо причинам недоступна.
  • Улучшения в кодогенераторе, значительно увеличивающие производительность многих программ.
  • Улучшения в коде проверки сравнения с образцом (pattern matching), позволяющие находить лишние проверки в случаях, где раньше это было невозможно.
  • Новый IO-менеджер для платформы Windows. Раньше на Windows был использован IO-менеджер для Unix-систем, что приводило в худшей производительности на этой платформе. Также прекращена поддержка Windows Vista. Теперь для сборки и запуска программ на Haskell требуется минимум Windows 7.
  • Добавлено расширение QualifiedDo, расширяющее возможности по переопределению поведения кода.
  • Для сборки с LLVM теперь требуется версия 9.0 или выше.

Также недавно был выпущен корректирующий релиз GHC 8.10.4, исправляющий несколько багов в ветке 8.10.

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

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

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

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

Да нет. Работу с хачкеллом найти сейчас не то чтобы сложно. У меня в последний раз недели две-три ушло.

ты просто не джун относительно хаскелля

anonymous ()

Re: Последние лет 5 не притрагивался, ну не суть.

вот тогда код начинает сравниваться по сложности чтения с шаблонным на с++.

Сами шаблоны C++ не то, чтобы сложные, но вот разобраться в сообщениях компилятора C++ касательно шаблонов бывает иногда очень непросто. Как полная противоположность, компилятор раста в высшей степени конструктивно излагает, что не так с кодом, использующем генерики. Однако, у раста есть своя напасть - cargo. Тянуть хрен знает какой код из хрен знает какого сайта интернета - не каждый может себе позволить. Не все такие смелые и бесшабашные. А жаль, сам язык-то хороший.

anonymous ()

Re: Последние лет 5 не притрагивался, ну не суть.

Однако, у раста есть своя напасть - cargo. Тянуть хрен знает какой код из хрен знает какого сайта интернета - не каждый может себе позволить. Не все такие смелые и бесшабашные. А жаль, сам язык-то хороший.

Тянуть никто не заставляет. Можно как свой локальный репозитарий сделать, так и вообще собирать только с локальными крейтами.

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

Иногда удивляюсь глупости, казалось бы людей. Если вакансии вообще есть, то этого достаточно. От того что на питон 1000 вакансий, а на C 100 - с точки зрения возможности найти работу не говорит ровным счётом ничего.

Ещё один распространённый вопрос, якобы покажите мне софт. К чему этот вопрос? Ты побежишь развивать этот софт если он есть? Способен быть только на подсосе, а самому слабо?

Даже метапрог на вашем фоне больше похож на человека.

shpinog ★★ ()

Тянуть хрен знает какой код из хрен знает какого сайта интернета - не каждый может себе позволить. Не все такие смелые и бесшабашные.

Ну вот ты только что взял и обосрал все линуксовые дистрибутивы. Молодец, анон!

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

[quote]Ну вот ты только что взял и обосрал все линуксовые дистрибутивы. Молодец, анон/quote

Нет. Некоторые дистрибутивы проходят аудит, что существенно снижает риски там, где это важно. А вот кто-нибудь проводил аудит крейтов crates.io? Вот, например, что делает такой прелестный крейт под названием «facebook» версии 0.0.0?

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

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

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

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

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

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

Анон, если ты умеешь программировать только на одном языке, у меня для тебя очень плохие новости. Вне зависимости от того, какой это язык. Миллионы ПХПшников, в один прекрасный момент оставшихся без работы, это подтверждают.

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

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

Так возьми и смени, в чём проблема? Ждёшь пока папик вакансию выставит, смотри какой ты у нас самостоятельный и свободный.

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

Слышать замусоленные байки о «вакансиях», от уникумов которые не способны её найти\создать, при этом мнят себя гениями и рассусоливают о смене предметной области - порядком утомляет.

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

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

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

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

anonymous ()

Re: Последние лет 5 не притрагивался, ну не суть.

Хороший не то слово, но обратка к сям слабая (у hs ещё хуже). Там, где нужно иметь дело со щами, лучше cc ещё ничего не придумали. Что rs, что hs - это про новый мир (старый сишный уже не цепляет :))

anonymous ()

Основная проблема Хаскеля в том, что на нём надо сразу писать правильно. Этого большинство программистов не умеют и не будут уметь никогда, потому что фактически нужно решить задачу в уме и записать результат. Гораздо проще начать писать куски, а потом ставить подпорки. В этом смысле тот же Питон популярен именно потому, что можно очень просто начать, а потом почти бесконечно расширять написанное.

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

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

Я, конечно, не настоящий сварщик и на хаскеле особо не писал, но мне нормальная типизация наоборот помогаeт рефакторить и расширять код. А вот на питоне как раз всё начинает разваливаться.

Ну то есть, я верю, что переделках придётся больше кода поправить, но зато на все места компилятор покажет и вероятность того, что оно потом с первого раза заработает тоже больше.

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

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

Что за смешная привычка, IT-попугаев повторять заученные мантры? Анон, снимай лапшу с своих ушей по поводу «Перспективности», «Инновационности», «Оптимизированности» и пр.

Прям жертвы тяжёлого изнасилования сетивиков

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

У меня есть знакомый, аспирант-физик (вакуумная электроника СВЧ, довольно редкая в нынешнее время область). Работал ява-програмистом. Его и ещё несколько десятков таких же сократили. Теперь ищет работу, но её нет, потому что такие как он не нужны: рынок просел и всех, у кого не было уникальных способностей, порезали. Кого-то (ещё одни знакомый) отправили в штаты и потом сказали, что здесь его место сократили (там он уцепился за другой проект, пока держится). Ещё одна девушка, тоже на яве писала, послала всё к чёрту и уехала в аспирантуру в Финляндию заниматься биоинформатикою. Ещё один, на php, выживает тем, что пишет сайты для бюджетных контор: денег немного, но доход стабильный. Ява и пых — самые популярные языки, но популярность значит не только возможность быстро найти (низкооплачиваемую по меркам отрасли) работу, но и потерять её, и полную безнадёгу после 35-40 лет.

Vudod ★★★★★ ()

Зачем это сделали?

Perhaps you meant an as-pattern, which must not be surrounded by whitespace

И как быть с ленивым сопоставлением через as-pattern? Где расставить знаки в старом выражении «x @ ~(Y y)»?

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

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

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

Природная ленивость (там, где ожидается вычисление на самом деле нужно приказывать вычислить), вездесущая рекурсия (итерацию можно преобразовать в рекурсию, но часто это бывает не так просто, как дядя заносит бабло на 1C), те на итерационных алгоритмах лучше выбрать какой-то императивный ЯП или искать рекурсивный вариант. При внесении даже мелких изменений велика вероятность, что все типы «поедут», сначала соответственно необходимо продумать на уровне типов. За миску борщеца (для СНГ более чем) можно поколдовать :) https://copilot-language.github.io/home.html

anonymous ()

Re: Последние лет 5 не притрагивался, ну не суть.

Сами шаблоны C++ не то, чтобы сложные

Но мощные. Помню как с помощью шаблонов довел аспирантку на лабе до паранойяльной психопатии.

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

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

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

А чего они ждали? При капитализме сидеть на одном месте по 50 лет? Такое даже в странах развитого капитализма не часто встречается.

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

Конечно когда сидишь 20 лет на жопе ровно, появляется вера, что так будет всегда.

потому что такие как он не нужны:

Капитализм это не про «Вы нам нужны», а про «Мы вами пользуемся». Твой аспирант не нужен, им просто попользовались. Теперь ждёт с неба маны, но её не будет.

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

Выкрутится как-нибудь, он не мой аспирант. Я своих стараюсь пристроить по профилю, чтобы к дяде за подработкою не ходили.

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

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

Деньги берутся из мер количественного смягчения же! Поэтому наша родина и в отстающих, у нас не умеют так смягчать, как ТАМ! Так как все деньги практически электронные, а 11111111 почти ничем с энергетической точки зрения не отличается от 00000000, производство денег стало простым и приятным, как никогда! Это тебе не портрет цезаря на аверсе чеканить!

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

И это им, кстати, может аукнутся и очень сильно. Наши сказали просто: «мы не печатаем деньги, потому что наша валюта не является резервной». То есть, какая мысль? Если валюта у кого-то в резерве, то тот и платит за чужой печатный станок. Вот мы тоже платим, увы.

Впрочем, мы отошли от темы. Меня вот расстраивает и очень сильно, что хаскелисты вообще не думают о сохранении обратной совместимости - вечно что-то ломают. Сравните с C++, где трясутся над каждой новой фичей - как бы чего не сломать. А как язык, мне хаскель нравится. Идеи, заложенные в него, нравятся, но «страшно они далеки от народа»

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

Ну, надо признать, мне совместимость кода со стандартом Fortran77 тоже не очень нравится (хотя и Fortran90 порядком устарел). Из-за этого куча костылей и многое не как у людей сделано. Но большинству пофигу.

Vudod ★★★★★ ()

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

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

Как академический, или для немногих специфических областей - вин. Вот было бы что-то с такой же системой типов, но без этой фигни - был бы везде вин. А так, походу, один F# остается, с дотнетом в нагрузку :( Или полуживой GIL-нутый окамл.

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

Меня вот расстраивает и очень сильно, что хаскелисты вообще не думают о сохранении обратной совместимости - вечно что-то ломают.

Об изменениях в совместимости обычно объявляют за два года минимум. Потом в ближайший релиз добавляют ворнинги по дефолту, чтобы ты уж точно не пропустил. И только потом изменение делают. Так что с этим проблем как раз таки нет, если только тебе не понадобилась библиотека, которую в последний раз обновляли в 2005. Но тут в C++ будет не меньший геморрой.

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

ленивость по умолчанию - ну нах, нужно редко, а по эффективности бьет непредсказуемо;

Это не сильно большая проблема, как показывает практика. Для любителей тонких извращений есть -XStrict и -XStrictData.

чистота - хорошо, но грязный код не должен превращаться в хак, ибо нужен всегда;

Он и не превращается.

постоянная ломка совместимости - самое то для продакшна, ага.

Смотри мой коммент выше.

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

справедливости ради, shall not - не обязательно запрещено. кроме того, почти всегда приходиться делать приогромнейшее количество shall not, когда пишешь под cortex m например.

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

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

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

Сравните с C++, где трясутся над каждой новой фичей - как бы чего не сломать.

ахаха, съешь ещё этих мягкий автопетееров да выпей сравнение векторов оператром ==.

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

Должно быть return x >>= f ≡ f x

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

q0tw4 ★★★★ ()