Pregunta

¿Alguien ha trabajado alguna vez para que Ruby continúe (como Seaside on Smalltalk)?

¿Fue útil?

Solución

Sí, en la mayoría de los casos. MRI (1.8) los ha soportado hasta donde alcanza mi memoria, Ruby 1.9 (YARV) también lo hace , también lo hace Rubinius. JRuby e IronRuby no tienen continuaciones, y es bastante improbable que las obtengan (JVM y CLR usan stack-instrospection por seguridad)

Ruby como idioma admite continuaciones mediante la palabra clave callcc . Se utilizan, por ejemplo, para implementar la clase Generator de la biblioteca estándar.

continuaciones en ruby-doc

Los marcos web basados ??en la continuación (como el mar, o uno de la biblioteca estándar de Arc) parecen menos populares. Encontré wee que afirman permitirte hacer continuaciones opcionales, pero nunca lo he usado.

Otros consejos

Como ya han dicho otros, Ruby 1.8 admite continuas.

Ruby 1.9 no los ha soportado por un tiempo sin embargo. Se han agregado en algún momento de este año, pero la mayoría de los otros intérpretes de Ruby (JRuby, IronRuby, etc.) no los admiten.

Si desea que su código se pueda usar en otras plataformas que no sean la línea principal Ruby, le sugiero que no las use.

Lea este artículo de InfoQ para obtener más discusión exhaustiva sobre el tema.

Por cierto esto es un ejemplo de excepciones reiniciables ( condiciones aka) implementadas usando continuaciones. Lo usé varias veces y es genial tenerlo en una caja de herramientas de Ruby.

neverblock usa 1.9 fibras para un único servidor web ruby ??roscado

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top