LINUX.ORG.RU

Вышел GNU Guile 2.0.7

 , , ,


1

3

Вышла новая версия реализации языка Scheme — GNU Guile 2.0.7. Несмотря на незначительное изменение номера версии, появились несколько интересных нововведений, а именно:

  • Полная поддержка инфиксных выражений (curly-infix-expressions). Теперь вместо (* a (+ b c)) можно писать {a * {b + c}}.
  • Поддержка разных опции чтения (read option) для разных портов.
  • Поддержка вложенных директив future.
  • Специальный синтаксис для добавления путей в переменные окружения GUILE_LOAD_PATH и GUILE_LOAD_COMPILED_PATH в конец списка путей, а не в начало.
  • Исправлен недочет в функции load-in-vicinity, которая не сканировала директории, установленные в переменной %load-compiled-path.
  • Исправлен порядок поиска расширений. Теперь Guile не изменяет для этого переменную окружения LD_LIBRARY_PATH.
  • Функция make-vtable-vtable помечена устаревшей, рекомендуется использовать make-vtable и <standard-vtable>.
  • Оптимизированы вызовы equal? и eqv? для случаев, когда один из аргументов — константа.
  • Новые предупреждения компилятора -Wduplicate-case-datum и -Wbad-case-datum.
  • Многочисленные незначительные улучшения и исправления ошибок.

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

★★★★★

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

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

Сами лисперы читают код, а не охают от скобочек. Сколько можно, уже сто раз обсудили, что скобки, неразрывно связанные с гомоиконностью(=> они там не просто так, а по делу), в лиспах никому, кроме упоротых тролльчат, не мешают.

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

А CL - это уже опционально. И «порог вхождения» там довольно высок. Но, снова же, выше порог вхождения - потом выше уровень.

А уж какой порог вхождения у Malbolge! Всем срочно повышать уровень!

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

Сами лисперы читают код, а не охают от скобочек. Сколько можно, уже сто раз обсудили, что скобки, неразрывно связанные с гомоиконностью(=> они там не просто так, а по делу), в лиспах никому, кроме упоротых тролльчат, не мешают.

Ладно, для тебя это наверно дзен такой, для меня банальность.

Такой вопрос, где и как ты использовал на практике гомоиконность(код=данные)?

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

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

Рекурсивная функция вместо цикла это красиво, без переполнения стэка. Замыкания функций(closures) вместо классов/объектов, тоже интересно.

Но в чём преимущество если результат тот же, но читаемость кода хуже(как мне кажется), особенно если макрос на макросе и макросом погоняет. Мониторить чужой код сложнее.

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

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

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

loop CL - это макрос. макросы используют гомоиконность. каждый когда-нибудь использовал loop.

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

Чено говоря, не пробовал, но за рассылками и всем таким слежу давно. Они ничего не хотят принимать. «It just works» :)

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

Такой вопрос, где и как ты использовал на практике гомоиконность(код=данные)?

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

И да, в CL это все нормально читается и дебажится (само собой, если код написан не через жопу)

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

гомоиконность

К стати, пример. В том же StumpWM/DSWM, о которых сегодня вспоминали типы даных для команд (не обычные лисповые) дефайнятся макросом на 5 строчек, который создает хеш-таблицу, из названий типов и кода анонимных функций. При необходимости, по названию получается код функции и тут же выплоняется. Другими методами это было бы значительно обьемнее и хуже читабельное.

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

Но в чём преимущество если результат тот же, но читаемость кода хуже(как мне кажется), особенно если макрос на макросе и макросом погоняет. Мониторить чужой код сложнее.

Ты прав, тебе кажется.

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

Такой вопрос, где и как ты использовал на практике гомоиконность(код=данные)?

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

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

«На практике гомоиконность на порядок упрощает» Ахтунг!

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

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

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

Если для тебя бином Ньтона сложный, то ясно, почему у тебя от лиспа такой баттхерт.

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

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

После таких заявлений обычно следует:

«Вот и все. Звоните в Швецию, пусть готовят мне Нобеля, возьму только наличными, мелкими купюрами, бывшими в употреблении…» (c) АР-Х-2-ЖЗ

В Швецию уже звонил?

DeVliegendeHollander ★★
()

Guile хардкорный. Принимаю. Как некоторые треки в электронной музыке. Не для коммерции, а для личного роста. Для коммерции python который люблю.

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

К стати

господи! сделай так, чтобы люди, неспособные запомнить синтаксис языка, не могли ничего на этом языке написать!

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

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

Scheme вполне императивен. Функциональные языки в современном понимании это Haskell, Clean, без побочных эффектов функций. Erlang, в котором невозможно изменить значение созданной «переменной», только создать другую промежуточную для вычислений.

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

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

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

Говносхема - это говнофункциональщниа с некоторыми императивными возможностями.

Я вот думал, а что будет с Python когда Guido умрёт(все мы смертны). Он уже седой. И например Java не кажется мне естественной на мобильных устройствах где процессоры изменяются чаще. Только что-то в связке с C(и в целях защиты своего кода в том числе).

А функциональщина не нужна вообще, ни в каком виде. Только чисто императивные языки имеют право на существование.

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

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

А функциональщина не нужна вообще, ни в каком виде. Только чисто императивные языки имеют право на существование.

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

С классами это невозможно. «Ой, эта система классов такая классная, такая надёжная, я целый месяц её придумывал». А потом катастрофа в которой гибнут тысячи людей.

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

" точное моделирование ВСЕХ возможных ситуаций"

Все возможные ситуации не сможет смоделировать ни одна система.

anonymous
()

Медленный пока этот Guile.

Невозможно настроить начальный размер heap'а. Хотя в старых версиях судя по всему было.

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

И например Java не кажется мне естественной на мобильных устройствах где процессоры изменяются чаще. Только что-то в связке с C

/0

Если процессор меняется, С нужно пересобирать под каждую модель

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

Scheme вполне императивен.

Мультипарадигмен, я бы сказал.

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

Если процессор меняется, С нужно пересобирать под каждую модель

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

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

Дoбавить новую архитектуру к компилятору легче чем добавить поддержку в JIT

Задачи примерно одинаковой сложности, JIT - тоже компилятор

По мне, так компиляция более приятный процесс

О, да тебе еще и сорсы надо дать? Может еще ключи от квратиры где деньги лежат? :)

annulen ★★★★★
()

Тред не читал, лень. Чем все закончилось? Скобчатые, как обычно, остались в дураках?

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

Скобчатые, как обычно, остались в дураках?

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

И да, китайцы перевели гугловский документик: http://blog.lisp.tw/Google-Common-Lisp-Style-Guide/GoogleCLSG-zhCN.xml

Можно будет ожидать полчища скобчатых скоро. У антискобчатых будет передозировка.

gensym ★★
()

Хороший язык. У нас проект на Scheme. В отличие от всяких там попсовых недоязычков вроде хацкеля, работает хорошо.

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

У нас проект на Scheme. В отличие от всяких там попсовых недоязычков вроде хацкеля, работает хорошо.

Уже переписали с Алгола68, штоле?

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

Это другой проект. Просто мы консервативны и не следуем за модой.

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