Saltar al contenido

Notas de la versión - v0.9.0

Título: Mejorar el procesamiento acotado y la evaluación contextual

Versión: v0.9.0

URL de la versión: https://github.com/blinklabs-io/plutigo/releases/tag/v0.9.0

Comparación: v0.8.1…v0.9.0

RedCompatible
mainnet⛔
preprod-testnet✅
preview-testnet✅
musashi✅

Esta versión refuerza la seguridad de las entradas y salidas, añade una evaluación validada con cancelación y métricas, y hace más predecible la ejecución de reproducciones.

  • Mejoró la decodificación FLAT y el análisis de texto: aplicó límites predeterminados de 16 MiB para la entrada, 1,048,576 nodos de programa, 524,288 elementos por colección y límites dependientes del protocolo para los campos de los constructores. Plutigo ahora rechaza las entradas, cantidades de nodos y anchos de colección que superan los límites antes de procesarlos. PrettyWithLimits y PrettyTermWithLimits aceptan límites configurables de profundidad y salida, mientras que Pretty y PrettyTerm usan valores predeterminados seguros y devuelven una cadena vacía cuando falla un límite. NameToDeBruijn ahora usa búsquedas de tiempo constante en el mapa de profundidades y restaura correctamente los nombres ocultos por sombreado.
  • Amplió cek.EvaluateText: el llamador proporciona el lenguaje del libro mayor y el contexto del protocolo, y la función admite la validación de fase uno, el control de la versión de ejecución, la cancelación y Machine.RunContext. Plutigo ahora valida EvalContext y los modelos de costes de la máquina, rechaza costes no válidos y satura la aritmética del presupuesto y los costes en lugar de permitir el desbordamiento circular. Las métricas CEK opcionales informan de los pasos, la profundidad máxima de la pila y los recuentos y presupuestos de llamadas por función incorporada. La carga y ejecución de reproducciones ahora aceptan contexto y límites, aplican los presupuestos del conjunto de pruebas y de los casos antes de decodificar, propagan la cancelación e impiden que Plutigo marque como correctos los casos cancelados. La documentación para quienes integran Plutigo y los ejemplos ejecutables cubren las API actualizadas, los ejemplos de uso reflejan el nuevo comportamiento y la disponibilidad de las funciones incorporadas de PV11 cuenta con cobertura de conformidad. Cambio incompatible: NewMachine ahora requiere un EvalContext válido y no nulo, y las API de carga y ejecución de reproducciones requieren contexto y límites.

Doc Holiday logo

Docs authored by Doc Holiday

Editar página

Última actualización: