Design: Soporte adecuado de llamadas de cola

Creado en 18 jun. 2015  ·  3Comentarios  ·  Fuente: WebAssembly/design

¿Admitirá el ensamblaje web las llamadas de cola adecuadas? Actualmente hay un enlace en https://github.com/WebAssembly/design/blob/master/AstSemantics.md#control -flow -estructuras que menciona una "función de llamada de cola adecuada con firma restringida", lo que sugiere que se ha considerado dicho soporte, pero el enlace se refiere a un ancla faltante en la página de características de MVP de la publicación: https://github.com/WebAssembly/design/blob/master/PostMVP.md#signature -restricted-right-tail-calls

Si la respuesta es "tal vez", ¿cuál es la mejor manera de contribuir para ayudar con ese apoyo?

Comentario más útil

Sí, se admitirán las llamadas de cola adecuadas, pero probablemente no en MVP. Esto será especialmente útil para lenguajes funcionales que se basan en la optimización de llamadas finales garantizada. Vea las discusiones en # 33 y # 44. La forma en que se admite aún está en el aire, ya que necesita experimentación y mediciones de rendimiento.

Todos 3 comentarios

Sí, se admitirán las llamadas de cola adecuadas, pero probablemente no en MVP. Esto será especialmente útil para lenguajes funcionales que se basan en la optimización de llamadas finales garantizada. Vea las discusiones en # 33 y # 44. La forma en que se admite aún está en el aire, ya que necesita experimentación y mediciones de rendimiento.

He mirado el n. ° 33 y el n. ° 44, y el n. ° 45 también parece relacionado. Pero soy escéptico de que se pueda lograr una llamada de cola adecuada a través de cualquier mecanismo basado en el análisis de flujo de control (ya sea que se admita o no el control de flujo irreducible).

Como usted dice, los lenguajes funcionales se basan en optimizaciones de llamadas finales garantizadas, aunque dicha terminología está mal vista porque invita a la confusión con el tipo de TCO realizado por los compiladores de C / C ++ / etc., donde se pueden imponer varias restricciones sobre qué llamadas son elegibles. Por tanto, en su lugar se utiliza el término "llamadas de cola adecuadas". En un lenguaje con llamadas de cola adecuadas, se requiere cualquier llamada en una posición de cola para renunciar al almacenamiento ocupado por la trama de activación de llamada. Eso incluye llamadas indirectas, de ahí la dificultad para el análisis de flujo de control local. Por lo tanto, los compiladores / tiempos de ejecución de lenguaje funcional generalmente tienen operaciones de llamada de cola explícitas y convenciones de llamada para admitirlas.

Es genial que esté abierto a la idea de un soporte de llamadas de cola adecuado, y puedo entender que este problema está fuera del alcance del MVP. Pero en lugar de simplemente cerrarlo, ¿podría dejarse abierto pero dándole una etiqueta posterior a MVP / posterior a lo que sea / icebox, para que quede claro que el asunto aún no está resuelto?

Lo siento, no quise cerrar antes de arreglar la documentación. Abrí el # 190 para abordar este problema (y cerrarlo). Hemos trasladado problemas al texto del diseño, ya que facilita a los nuevos lectores comprender el estado de las cosas en lugar de leer el estado completo de los problemas archivados.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

beriberikix picture beriberikix  ·  7Comentarios

void4 picture void4  ·  5Comentarios

aaabbbcccddd00001111 picture aaabbbcccddd00001111  ·  3Comentarios

badumt55 picture badumt55  ·  8Comentarios

jfbastien picture jfbastien  ·  6Comentarios