Est-ce que quelqu'un a déjà travaillé pour que Ruby fasse des continuations (comme Seaside sur Smalltalk)?Continuations dans Ruby
Répondre
Oui, dans la plupart des cas. MRI (1.8) les a soutenus autant que ma mémoire atteint, Ruby 1.9 (YARV) does it, too, ainsi que Rubinius. JRuby et IronRuby n'ont pas de suites, et il est peu probable qu'ils les obtiennent (JVM et CLR utilisent la pile-instrospection pour la sécurité)
Ruby en tant que langage prend en charge les suites via le mot-clé callcc
. Ils sont utilisés, par exemple, pour implémenter la classe Generator
à partir de la bibliothèque standard.
frameworks web basé continuation (comme bord de mer, ou un de la bibliothèque std. Arc) semblent moins populaires. J'ai trouvé wee qui prétend vous laisser faire des suites facultatives, mais je ne l'ai jamais utilisé.
Comme d'autres l'ont déjà dit, Ruby 1.8 prend en charge les continuations.
Ruby 1.9 ne les a pas supportés pendant un moment. Ils ont été rajoutés quelque temps cette année, mais la plupart des autres interprètes Ruby (JRuby, IronRuby, etc) ne les supportent pas.
Si vous voulez que votre code soit utilisable sur d'autres plateformes que la ligne principale Ruby, je vous suggère de ne pas les utiliser.
Lire this InfoQ article pour une discussion plus complète sur le sujet.
neverblock utilise 1,9 fibres pour un seul serveur web rubis fileté
BTW this est un exemple d'exceptions réexécutables (aka conditions) implémenté en utilisant continuations. Je l'ai utilisé plusieurs fois et c'est cool d'avoir une boîte à outils Ruby.
- 1. Equivalent Python de continuations avec Ruby
- 2. Vous cherchez des exemples de « réel » utilise des continuations
- 3. Mono Continuations - La mémoire ne cesse d'augmenter après le stockage()
- 4. Exemple le plus simple de continuations arrières dans Scheme sans mutation explicite
- 5. Solution simple requise pour les continuations asynchrones jBPM dans l'environnement Seam
- 6. RAII dans Ruby (Ou, comment gérer les ressources dans Ruby)
- 7. Constructeurs moqueurs dans Ruby
- 8. Ruby dans Erlang
- 9. method_missing gotchas dans Ruby
- 10. Recherche SQL dans Ruby
- 11. Inverser DNS dans Ruby?
- 12. Méthodes d'usine dans Ruby
- 13. lever "NullPointerException" dans Ruby
- 14. Bloc commentant dans Ruby
- 15. Sprintf dans Ruby
- 16. Matrices limitées dans Ruby
- 17. Que signifie l'opérateur || = dans Ruby?
- 18. Analyser dans Ruby (on Rails)
- 19. Que signifie __FILE__ dans Ruby?
- 20. Symbole de remplacement dans Ruby
- 21. Utilisation de tuples dans Ruby?
- 22. 'Object' classe nommée dans Ruby
- 23. XSD Schema Validation dans Ruby
- 24. Pointeurs de méthode dans Ruby
- 25. Traitement XSLT dans/depuis ruby
- 26. $ 1 et \ 1 dans Ruby
- 27. class() vs type() dans Ruby
- 28. Discussions de travail dans Ruby
- 29. Recherche dans Ruby On Rails
- 30. Utilisation du monde réel des objets de liaison en ruby