8sync-0.4-released.skr 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. (post
  2. :title "8sync 0.4 released"
  3. :date (make-date* 2017 01 08 11 45)
  4. :tags '("release")
  5. :slug "8sync-0-4-released"
  6. (p [Hello, hello!
  7. 2017 is fresh upon us, and so is a new release of 8sync...
  8. ,(anchor [8sync 0.4]
  9. "ftp://ftp.gnu.org/gnu/8sync/8sync-0.4.0.tar.gz")
  10. is here!])
  11. (p [Most excitingly, we now have some decent
  12. ,(anchor [documentation!]
  13. "https://www.gnu.org/software/8sync/manual/html_node/index.html")
  14. Or at the very least, we finally have a tutorial
  15. (API documentation is still on its way).
  16. The tutorial walks from extending an existing actor by writing an
  17. irc bot, to writing your own basic actors, to writing network
  18. actors.
  19. You *know* you always wanted your very own IRC bot, so give it
  20. a try!])
  21. (p [Actors are now "center stage".
  22. You can now import a toplevel ,(code "(8sync)") module, and this module
  23. includes the full actor model system.
  24. The actor model is now *the* way to handle concurrent synchronization
  25. in 8sync.
  26. So, 8sync is officially less about its event loop, and more about the
  27. actor model.
  28. (It is even possible that in the future, 8sync's actor model will be
  29. able to run on another event loop.)])
  30. (p [Actors now also have implicitly run ,(code "*init*") and
  31. ,(code "*cleanup*") message handlers.
  32. Setting up actors now involves a lot less boilerplate, since
  33. most actors do have some sort of initialization method anyway.
  34. The ,(code "*cleanup*") message handler allows actors to clean up
  35. after themselves when they shut down, by closing a socket,
  36. deleting temporary files, save their current state to a database,
  37. or whatever.])
  38. (p [Sending messages has become slightly easier, as the ,(code "from-actor")
  39. field is now implicit, set as a parameter by the actor's hive.])
  40. (p [Those are the highlights!
  41. See the
  42. ,(anchor [NEWS file]
  43. "http://git.savannah.gnu.org/cgit/8sync.git/tree/NEWS?h=v0.4.0")
  44. for additional details.])
  45. (p [What's next?
  46. In 0.4.1 you can expect better automatic shutdown of coroutines
  47. after an actor terminates, a new HTTP module, API documentation,
  48. and a bunch of other goodies.])
  49. (p [Oh!
  50. And will you be at
  51. ,(anchor [FOSDEM 2017]
  52. "https://fosdem.org/2017/")
  53. by any chance?
  54. There will be a
  55. ,(anchor [Guile and Guix developer room]
  56. "https://fosdem.org/2017/schedule/track/gnu_guile/")
  57. and if last year was any indication, I expect it to be an absolute blast.
  58. I'll be there, giving
  59. ,(anchor [a talk about 8sync, live hacking, and network freedom]
  60. "https://fosdem.org/2017/schedule/track/gnu_guile/"),
  61. and my talk is going to be delightfully unusual.
  62. Instead of slides, I'm going to be running an 8sync-powered
  63. ,(anchor [MUD]
  64. "https://en.wikipedia.org/wiki/MUD")
  65. (multiplayer text adventure)
  66. powered by 8sync and
  67. ,(anchor [mudsync]
  68. "https://www.gnu.org/software/8sync/news/mudsync-lisp-game-jam.html"),
  69. where the rooms will be the "slides"!
  70. I'll also be live editing the game world *during the talk*!
  71. You're not gonna want to miss this!])
  72. (p [That's all for now.
  73. Happy hacking!]))