LINUX.ORG.RU

Racket v6.0

 


5

8

Новая версия 6.0 Racket доступна уже сейчас! Racket — мультипарадигменный язык программирования общего назначения, принадлежащий семейству Lisp/Scheme.

Racket 6.0 вышел с обновлённой пакетной системой (уже доступны сотни пакетов).

Изменения в пакетной системы с момента беты (Racket 5.3.4):

  • Можно использовать github репозитарий как пакет.
  • Новый интерфейс для пакетного менеджера.
  • Сама сборка Racket была разделена на 200 пакетов (присутствует минимальная сборка 1/10 от полной).
  • Действия перед сборкой пакета — компиляция байткода, сборка документации.

Другие изменения:

  • Улучшена HTML документация.
  • Включёно в документацию официальное руководство по стилю оформления.
  • JIT-компилятор поддерживает ARM архитектуру.
  • Поддержка retina на Mac.
  • Производительность компилятора Typed Racket улучшена на 50% на некотором числе программ.
  • Новый профайлер для контрактов сообщает как долго проверяются контракты.

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

anonymous

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 8)
Ответ на: комментарий от x4DA

Точнее как, ракету можно собрать с двумя GC на выбор. Дефолтный мувит, запасной нет. Тот что мувит шустрее.

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

Потому что хрен сочинишь общий метод сохранения такого.

SBCL успешно сохраняет. Смысл (и алгоритм) тот же, что у гибернации: все данные остаются в том состоянии, как они были на момент гибернации. Кстати бинарник /usr/bin/sbcl на самом деле такой же образ.

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

Загружается не из другого образа, а с командной строки или из пустого lisp'а. Ничем не хуже, чем *.iso с дистрибутивом линукса. Или ты свой линукс весь из исходников перед запуском собираешь?

Само собой сохранять надо выборочно (местами вручную). Но не набирая же все заново. Лучше всего имея (get-fun-source f) для просмотра набранного давным давно.

В мире CL принято работать в Emacs (или аналоге). Дописал функцию, нажал кнопку — она применилась в образе. Стал курсором на имя функции в REPL или файле, нажал кнопку — перешёл к файлу, из которого эта функция определилась — очень удобно. Необходимости в get-fun-source нет, так как любая функция применена из файла (и известно из какого и с какой строки).

Образ удобен тем, что может, на данных в *s* из примера какая-то моя функция сбоит и я ещё не разобрался почему. Без образа в такой ситуации приходится велосипедить дамп данных. Что особенно весело, если в нужных данных есть ссылки на другие объекты, возможно циклические.

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

Загружается не из другого образа, а с командной строки или из пустого lisp'а

Ага. Пишет к примеру Вася игруху на лиспе и захотел твой CL-Physics, Машино CL-OpenGl и Федин CL-unicode заюзать. А это все образы. 3 разных. Причем каждый еще модифицирует стандартную либу слегонца. Вот и понятно становится почему сейчас нигде не скачаешь лисп пакеты в образах. Не работает этот подход в команде.

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

Пишет к примеру Вася игруху на лиспе и захотел твой CL-Physics, Машино CL-OpenGl и Федин CL-unicode заюзать. А это все образы.

Образ — это не библиотека, а программа. С таким же успехом ты можешь решить написать свой дистрибутив Линукса и захотеть в нём использовать FreeBSD 10, Windows XP и Mac OS X. Идея настолько же осмысленная.

Библиотека — набор программ (кода). Образ — запущенная программа + данные в ней. Как пример — http://www.cliki.net/VLM_on_Linux . И они (программы и образы) друг другу не мешают, а скорее дополняют. Тот же ZverCD почему популярен — потому что это образ настроенной операционной системы.

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

Не работает этот подход в команде.

А в команде — запустил ты Васин CL-Physics — а он падает на данных из твоей игрушки. И у тебя выбор — написать Васе подробную инструкцию, какой файл куда положить и в каком порядке загрузить — или ты просто отсылаешь ему образ со всеми загруженными данными на момент ошибки.

К слову, не в мире Лиспа есть такая штука как Core dump — экономит много часов техподдержке. Но Core dump мёртвый — его уже запустить нельзя, а в образе лиспа можно выполнить любую программу на лиспе.

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

Образ — это не библиотека, а программа.

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

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

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

Ну ок, отсылаю образ. Но всеравно на гитхаб потом выложу сорец.

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

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

Не так. Проги в образе живут у пользователей прог. Смысл образа тот же, что и смысл shell для UNIX. Это среда для запуска и разработки программ. У каждого сисадмина есть свой .profile + пачка скриптов для нужных ему операций. Также и образ — среда работы.

Но всеравно на гитхаб потом выложу сорец.

Также как и для программы на Си. На гитхабе будет сорец, а в дистрибутиве — бинарник в архиве. И что?

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

На гитхабе будет сорец, а в дистрибутиве — бинарник в архиве. И что?

То что екзешник или сошник. А вот сошником образ быть не может.

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

А вот сошником образ быть не может.

сошник у лиспа называется .fasl

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