Repository navigation
Commit 5e4b946
Baml VM (#2089)
<!-- ELLIPSIS_HIDDEN -->
> [!IMPORTANT]
> Introduces a new Baml VM with bytecode generation, async runtime
support, and updates to language clients and testing infrastructure.
>
> - **VM and Bytecode**:
> - Introduces `BamlVmProgram`, `Vm`, `Function`, `Class`, `Instance`,
and `Object` in `baml-vm`.
> - Implements bytecode generation in `baml-compiler/src/codegen.rs`.
> - Adds `Instruction` set and `Bytecode` representation in
`baml-vm/src/bytecode.rs`.
> - Provides debugging utilities in `baml-vm/src/debug.rs`.
> - **Runtime**:
> - Adds `BamlAsyncVmRuntime` in `baml-runtime/src/async_vm_runtime.rs`
for async execution.
> - Integrates VM with existing runtime in `baml-runtime`.
> - **Testing and CLI**:
> - Adds tests for VM execution in `baml-vm/tests/vm.rs`.
> - Updates CLI to support HIR and bytecode dumping in
`baml-runtime/src/cli/dump_intermediate.rs`.
> - **Language Support**:
> - Updates Python, Go, Ruby, and TypeScript clients to support new VM
functions.
> - Adds disassembly support in Python client in `runtime.py.j2`.
>
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)<sup>
for bb0191e. You can
[customize](https://app.ellipsis.dev/BoundaryML/settings/summaries) this
summary. It will automatically update as commits are pushed.</sup>
<!-- ELLIPSIS_HIDDEN -->
---------
Co-authored-by: Greg Hale <ImAlsoGreg@gmail.com>
Co-authored-by: Rahul Tiwari <jprrahultiwari@gmail.com>
Co-authored-by: Jesús Lapastora <jesus@boundaryml.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>1 parent e163ce1 commit 5e4b946
146 files changed
Lines changed: 16057 additions & 1415 deletions
File tree
- .claude
- .cursor/rules
- .devcontainer
- engine
- baml-compiler
- src
- hir
- thir
- baml-ids
- baml-lib
- ast
- src
- ast
- parser
- baml-core
- src
- ir
- validate/validation_pipeline
- validations
- baml-types/src
- baml
- tests
- bytecode_files
- hir_files
- validation_files
- class
- expr
- functions_v2
- strings
- diagnostics/src
- parser-database/src
- baml-runtime
- src
- cli
- type_builder
- baml-vm
- src
- tests
- cli/src
- generators/languages/python/src
- _templates
- ir_to_py
- language_client_cffi/src/raw_ptr_wrapper/type_builder
- language_client_go/pkg/cffi
- language_client_python
- python_src/baml_py
- src
- types
- language_client_ruby/ext/ruby_ffi/src/types
- language_client_typescript/src/types
- integ-tests
- baml_src/test-files
- aliases
- vm
- go/baml_client
- openapi/baml_client
- python-v1/baml_client
- python
- baml_client
- tests
- react/baml_client
- react
- ruby/baml_client
- typescript-esm/baml_client
- typescript/baml_client
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
39 | 46 | | |
40 | 47 | | |
41 | 48 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
161 | 161 | | |
162 | 162 | | |
163 | 163 | | |
| 164 | + | |
| 165 | + | |
164 | 166 | | |
165 | 167 | | |
166 | 168 | | |
| |||
0 commit comments