LINUX.ORG.RU
ФорумTalks

Вышла библиотека для Guile 8sync 0.2.0

 ,


1

3

Сабж. 8sync (произносится «eight-sync») - библиотека асинхронного программирования для такой реализации языка программирования Scheme как GNU Guile.

Некоторые возможности из Readme:

 - An asynchronous event loop!  Non-blocking on ports and file access.
 - Easy to use!  The =8sync= operator lets you write
   asynchronous code that looks simple while avoiding callback hell.
   This happens through the magic of
   [delimited continuations](https://www.gnu.org/software/guile/manual/html_node/Prompts.html).
   ([Hence the %](https://www.gnu.org/software/guile/manual/html_node/Shift-and-Reset.html#Shift-and-Reset)!)
 - Provides building blocks on which you can build other asynchronous
   frameworks or paradigms on top of it (some of which will be
   included in the future), like:
   - an actor model implementation
   - the propagator model
   - web frameworks
   - your very heart's desire!

Проект ещё только начинает развиваться, и готовой документации толком нет. Даже на английском, да:

How do I use it?
----------------

For now, read the source ;)

Hey, I ought to get some docs up, right?  Soon, I promise!

Скачать можно здесь: ftp://ftp.gnu.org/gnu/8sync/8sync-0.2.0.tar.gz

★★★★★

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

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

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

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

Если, конечно, она явная.
The =8sync= operator lets you write asynchronous code that looks simple while avoiding callback hell. This happens through the magic ...

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

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

Ладно, будет документация - можно будет потыкать. А пока разбираться в куске магии смысла нет. Особенно с учетом того, что guile далеко не единственная реализация scheme.

feofan ★★★★★ ()

Восклицательные знаки в чейнджлоге

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

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

Судя по твоей осведомленности, Guile старше тебя будет.

Oxdeadbeef ★★★ ()

для racket нет такого?

x4DA ★★★★★ ()

а кои-8 поддерживается?

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

KOI8-R поддерживается везде где нет безальтернативных юникодных обработчиков. Если код даже не смотрит на локаль, а сразу начинает парсить строки ожидая что они в UTF-8, то однобайтные строки, конечно, не распарсятся.

Так вот, Guile поддерживает локаль KOI8-R, но при этом по дефолту считает, что исполняемый скрипт в UTF-8:

> guile -s ./hw2.guile
Привет, мир!
> cat ./hw2.guile
(setlocale LC_ALL "")
(display "п÷я─п╦п╡п╣я┌, п╪п╦я─!")
(newline)
>
Однако, можно писать скрипты и в KOI8-R если добавлять ещё несколько строчек:
> guile -s ./hw.guile
Привет, мир!
> cat ./hw.guile
;;; coding: KOI8-R
(setlocale LC_ALL "")
(set-port-encoding! (current-input-port) "KOI8-R")
(set-port-encoding! (current-output-port) "KOI8-R")
(display "Привет, мир!")
(newline)

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

для racket нет такого?

для racket нет такого?

(8sync systems web) — очень обрезанный аналог Racket'ного https://docs.racket-lang.org/web-server/

(8sync systems irc) — https://github.com/tca/uhm

(8sync systems actors) — https://docs.racket-lang.org/teachpack/2htdpuniverse.html или https://github.com/tonyg/syndicate/tree/master/racket

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