• Haskell Знаю что есть вполне себе определения парсера и типчекера Haskell в терминах Haskell. Но вот чтоб полностью и рантайм и компилятор определить — вроде бы нет такого. Идея в том что бы не писать ни строчки С-шного кода руками, а генерить его заведомо корректным под конкретную архитектуру. Спрашивается WTF, что помешало ребятам сделать так с самого начала?

Replies (21)

  • @gbdj, Написать рантайм для хаскеля на хаскеле? Не возможно, потому что программе на хаскеле нужен рантайм, т.е. сам рантайм на хаскеле будет требовать рантайм.
  • @segfault, Вернее, возможно конечно, но зачем.
  • @segfault, А вот рантайм на Rust было бы нормас ящитаю.
  • @gbdj, Не знаю, что за ребята, и что они там написали, но уверен, что их идея была не в том, чтобы писать бесконечно абстрактную хуету, а в том, чтобы сделать что-то работающее.
  • @rkit, верующие подтянулись
  • @segfault, Во что хоть веруют?
  • @gbdj, В смысле написать специальный EDSL для генерации ghc-шного рантайма? Не очень представляю как его определить так чтобы он давал профит по сравнению с отладкой его же генератора.
  • @segfault, Мы получаем математически корректный сишный код, без возможности в нем самим накосячить. А значит гарантированную совместимость между любыми архитектурами. Хаскелистам же очень близка эта идея и транслировать хоть в C хоть в JS они умели всегда. Собственно почему они не сделали с GHC для основных архитектур тоже что сделали на браузерной VM на JS
  • @segfault, Да без проблем. Можно и под архитектуру VM Rust или по верх чего там оно.
  • @gbdj, Для начала, я тебя не правильно понял, и подумал, что ты хочешь писать рантайм прямо на хаскеле, а для замены сишки есть Rust. EDSL для генерации рантайма я слабо представляю.
  • @gbdj, ЕМНИП у GHCJS рантайм на js.
  • @rkit, Ребята запилившие GHC. И поверь они могут и любят "бесконечно абстрактную хуету" =)
  • @gbdj, Мне плевать, что они там могут и любят. Я о другом говорил.
  • @ndtimofeev, Я так понимаю генератор Haskell в C должен получаться дубовее в силу дубовости C. Количество сишного кода заложенного в генератор про который думаешь будет на порядок меньше чем полный GHC. Реально должно получаться проще если портировать на 20 архитектур где уже есть C
  • @ndtimofeev, Надо посмотреть, возможно что это математически корректный JS. Но и генератор для разных сишных архитектур различается не сильно.
  • @gbdj,
    возможно что это математически корректный JSэто вручную написанный ад пизды.
  • @gbdj, Собственно в Squeak squeak.org сделано так, а в JVM забили, но в последнем понятно хотя бы почему забили.
  • @segfault, Спасибо, буду знать. =) Тем больше поводов иметь саму логику на Haskell, а дальше транслировать.
  • @gbdj, это тебе надо придумать язык без гц, или хоть какого-то управления памятью вообще (только mmap), без лёгких тредов, и запилить всё это на нём. выглядит как заявка на диссертацию
  • @gbdj, ну и вообще не факт что в ghc есть хоть что-то математически корректное, хотя бы и на хаскеле
  • @gbdj, Короче все круто #2877308