Skip to content

Cieto v0.2.0

Latest

Choose a tag to compare

@the0cp the0cp released this 11 Jul 10:10

Host programs can now create a Cieto VM, evaluate Cieto source code, register native C functions, call Cieto functions from C, capture script output, and read runtime errors.

Highlights

  • Added public C embedding API in cieto.h
  • Added embeddable runtime library target libcieto.a
  • Added VM lifecycle APIs:
    • cie_vm_create()
    • cie_vm_destroy()
  • Added source evaluation from C:
    • cie_vm_eval()
  • Added C-to-Cieto function calls:
    • cie_vm_call()
  • Added Cieto-to-C native function registration:
    • cie_vm_register_native()
  • Added public value helpers for:
    • null: cie_value_null()
    • bool: cie_value_bool()
    • number: cie_value_number()
  • Added runtime error access:
    • cie_vm_last_error()
  • Added output and error callbacks:
    • cie_vm_set_output()
    • cie_vm_set_error_output()
  • Embedded scripts can no longer terminate the host process through os.exit()
  • Added embedding examples
  • Added an external CMake example for linking against an installed Cieto runtime
  • Added install support for:
    • cieto
    • cieto.h
    • libcieto.a
    • documentation
    • examples

The public value API is intentionally small in this release. It currently supports null, bool, and number for C-to-Cieto calls and return values.