LINUX.ORG.RU

Racket 6.7

 ,


1

4

Состоялся выпуск Racket 6.7 — языка программирования общего назначения из семейства Lisp/Scheme.

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

  • С Racket теперь можно собрать графическое приложение для Android с помощью проекта racket-android.
  • В REPL стало доступно редактирование, история и мета-команды (такие как ,load или ,describe).
  • Пакетная система теперь поддерживает аутентификацию при установке пакетов из git.
  • Компилятор байткода получил дополнительные оптимизации в операциях со списками, строками и байтовыми строками.

>>> Страница проекта

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

★★★★★

Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 6)

Вчера собрал, кайф. :) // В арчёвых репах поди опять пакет через жопу собран, если вообще ещё собран.

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

В арчёвых репах поди опять пакет через жопу собран, если вообще ещё собран

Я на арче. Нормально вроде собран.

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

Потому что говно без задач.

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

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

anonymous
()

Тормозное говно.

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

На 6.6 после raco pkg install <something> сыпало ошибками. На самосборе всё стало ок.

Hertz ★★★★★
()

Сколько сразу в топик всяких кукареку понабежало, любо-дорого поглядеть.

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

Кто ж спорит-то. Только ракет не лучше.

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

на одном «можно сделать» далеко не уедешь, мы в реальном мире живем

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

Пакетная система теперь поддерживает аутентификацию при установке пакетов из git.

Добавьте в racket импорт с github напрямую, хипстота мигом слетится.

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

Давно я тебе не писал :)
Не знаешь как сейчас с производительностью у racket в целом? Можешь рассказать про какой-нибудь обкатанный свой проектик?

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

Го зато как язык в сравнении убогий.

Да не, нормальный язык. Только исходники получаются некрасивые, эстетического удовольствия нет.

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

Я говорю о сугубо узкоспециализированом азарте срачей о ЯП. Увы, ЯП стали для меня просто очередными молотком и отверткой.

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

Лучше в чате, там бодрее и цензуры поменее. :)

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

Не знаешь как сейчас с производительностью у racket в целом?

В среднем также. Быстрее, чем Python и Perl, медленнее, чем Java и Haskell.

Можешь рассказать про какой-нибудь обкатанный свой проектик?

Что понимать под «обкатанный»? С учётом того, что пользователей немного, то отсутствие глюков ни о чем не говорит.

А так, есть https://github.com/Kalimehtar/gir и https://github.com/Kalimehtar/gls

Есть мой сайт, на котором самопальный helpdesk.

Есть управление tc с привязкой ограничений к mac-адресам и отображением текущего потребления.

Есть скриптик для windows на 60 строк: программа в трее, по щелчку открывается окно, где можно ввести текст проблемы и нажать кнопку «отправить в АСУ». Программа собирает данные о пользователе из AD (ФИО, телефон) и с текстом заявки отправляет в почту.

Есть «Сообщалка»: jabber-подобная система обмена сообщениями для малых коллективов (адресная книга общая). База для сообщалки: https://github.com/Kalimehtar/hive-server и https://github.com/Kalimehtar/hive-client . Цель создания — избежать потерь сообщений при плохой связи.

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

Программа собирает данные о пользователе из AD

Как с секурностью у этого скрипта? Думаю насчёт похожей реализации со лдапом, но ума не хватает сделать это как положено.

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

Если еще явно указан тег, то вполне надо. А бранч - для hello worldов, да

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

Программа собирает данные о пользователе из AD

Как с секурностью у этого скрипта?

У скрипта? А что там может быть _не_ секурного? То что он в аду инфу берёт - так он от текущей бзер сессии наверняка работает -> права на чтение о себе самом полюбасу есть...

Думаю насчёт похожей реализации со лдапом, но ума не хватает сделать это как положено.

Дык у него тоже скорее всего через LDAP, напрямую с AD работать хоть из чего-то не от M$ - это >|<опа :) Всё более-менее так же как у всех, но вначале надо сделать bind.

Hertz

GigaHertz! ;-)

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

Чтобы в коде было можно как-то так:

Так было раньше (работает и счейчас, но считается учтаревшим). Только не с гитхаба.

(require (planet tov/affine-contracts:2:2))
Скачивается при компиляции.

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

А если с умом распараллелить?

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

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

Как с секурностью у этого скрипта?

Вот весь кусок для работы с AD (я здесь два модуля объединил для лучшей читаемости).

(require ffi/com)
(define com-connection (com-create-instance "ADODB.Connection"))
(define com-command (com-create-instance "ADODB.Command"))
(com-set-property! com-connection "Provider" "ADsDSOObject")
(com-invoke com-connection "Open" "Active Directory Provider")
(com-set-property! com-command "ActiveConnection" com-connection)

(com-set-property! com-command '("Properties" "Page Size") 1000)
(com-set-property! com-command '("Properties" "Searchscope") 2)

(define (get-data query)
  (com-set-property! com-command "CommandText" query)
  (define record-set (com-invoke com-command "Execute"))
  (com-invoke record-set "MoveFirst")
  (let loop ([acc null])
    (cond 
      [(com-get-property record-set "EOF") acc]
      [else
       (define items (com-get-property record-set "Fields"))
       (define data (reverse
                     (for/list ([i (in-range (com-get-property items "Count"))])
                       (com-get-property (com-get-property* items "Item" i) "Value"))))
       (com-invoke record-set "MoveNext")
       (loop (cons data acc))])))

(define (downcase-car list)
  (cons (string-downcase (car list)) (cdr list)))

(define (as-hash list process)
  (make-hash (map process list)))

(define users (as-hash
               (get-data "SELECT sAMAccountName, name, mail, telephoneNumber
FROM 'LDAP://DC=sges,DC=ru' WHERE objectClass='user'")
               downcase-car))

Вся секурность на уровне AD (от какого пользователя скрипт запустишь, того и права).

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

Дык у него тоже скорее всего через LDAP, напрямую с AD работать хоть из чего-то не от M$

У M$ есть COM.

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

какие преимущества и недостатки сабжа в сравнении с CL и Clojure

С CL подробно вот: Анализ пользователей Common Lisp и Racket . Если вкратце, то в CL легче написать программу, а в Racket легче написать программу, корректно работающую программу. Батареек примерно поровну. В Racket есть принципиально невозможные в CL: гигиенические макросы, раздельно компилируемые модули, call/cc (call/ec, call/dc), зелёные потоки, нормальные финализаторы.

Про Clojure сложно сказать, я на нём не писал.

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

Дык у него тоже скорее всего через LDAP, напрямую с AD работать хоть из чего-то не от M$

У M$ есть COM.

И чО?! Хочешь сказать что его дёргать из под линуксов легко и приятно? :-)

А из под форточки - я вот это заюзал и не пищщу: https://www.autoitscript.com/forum/topic/153072-active-directory-tool-userinfo/

anonymous
()

о, нормально, надо будет наконец доосилить htdp2 как-нибудь )

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

Никогда не пользовался хреновыми молотком и отверткой? Завидую.

buddhist ★★★★★
()

ура, йопта))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

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