Czy ktoś kiedykolwiek pracował nad tym, aby Ruby kontynuował (jak Seaside na Smalltalk)?Kontynuacje w Ruby
Odpowiedz
Tak, w większości przypadków. MRI (1.8) wsparło je tak długo, jak sięga moja pamięć, Ruby 1.9 (YARV) does it, too, podobnie jak Rubinius. JRuby i IronRuby nie mają kontynuacji i jest to raczej mało prawdopodobne, że je otrzymają (JVM i CLR używają wbudowanej inwentaryzacji dla bezpieczeństwa).
Ruby jako język obsługuje kontynuację za pomocą słowa kluczowego callcc
. Są one używane na przykład do implementacji klasy Generator
ze standardowej biblioteki.
Kontynuacja opartej ram internetowych (jak nad morzem, lub jeden z dokumentacją techniczną. Biblioteki Arc) wydają się mniej popularne. Znalazłem wee roszczenie, by umożliwić ci opcjonalne kontynuacje, ale nigdy go nie używałem.
Jak już powiedzieli inni, Ruby 1.8 obsługuje kontynuacje.
Ruby 1.9 nie obsługuje ich jeszcze przez jakiś czas. Zostały one dodane w tym roku przez jakiś czas, ale większość innych tłumaczy Ruby (JRuby, IronRuby itp.) Nie obsługuje ich.
Jeśli chcesz, aby twój kod mógł być użyty na innych platformach niż główny Ruby, sugerowałbym nie używać ich.
Przeczytaj this InfoQ article, aby uzyskać bardziej wyczerpującą dyskusję na ten temat.
neverblock używa 1,9 włókien dla pojedynczego gwintowanego serwera WWW rubin
Przy okazji this jest przykładem restartowalnym wyjątków (czyli warunków), realizowane za pomocą kontynuacje. Używałem go kilka razy i fajnie jest mieć w zestawie narzędzi Ruby.
- 1. Kontynuacje w Clojure
- 2. dlaczego kontynuacje unikają stackoverflow?
- 3. Kontynuacje/Coroutines/Generatory w C++/gcc/linux
- 4. Asp.net SynchronizationContext blokuje HttpApplication na asynchroniczne kontynuacje?
- 5. Czy istnieje szybki język obsługujący przenośne kontynuacje?
- 6. Kontynuacje i do zrozumienia - jaka jest niezgodność?
- 7. Biblioteka zadań równoległych - zadanie LongRunning vs wielokrotne kontynuacje
- 8. Czytelność kodu Pythona naukowego (kontynuacje linii, nazwy zmiennych, import)
- 9. Ograniczenia Ruby dla Ruby
- 10. Metoda limitu ruby Ruby
- 11. Sekwencje w Ruby
- 12. Metody Boolean w Ruby?
- 13. ucieczki ciąg w Ruby
- 14. '|| =' operator w Ruby
- 15. Ruby - :: w nazwie klasy
- 16. Model pamięci w Ruby
- 17. C# ?? operator w Ruby?
- 18. Parametryzacja MySQL w Ruby
- 19. dwukrotnie ampersand w Ruby
- 20. Żądania HTTPS w Ruby
- 21. Deklarowanie zmiennych w Ruby?
- 22. Dynamic Regex w Ruby
- 23. Makra w Ruby?
- 24. Wyliczenie Pythona w Ruby?
- 25. Tworzenie histogramu w Ruby
- 26. Zakleszczenie w Ruby join()
- 27. Stan RDF w Ruby
- 28. Timer w wykonaniu Ruby
- 29. Gramatyka w języku Ruby "&& ="
- 30. odpowiednik ruby ...? w haskell