Changelog#

Release history for the Python SDK, including API changes and runner version updates.

v0.2.5#

fix: node pre-merge update

No runner changes from v0.2.4.

v0.2.4#

fix: patch det violation

No runner changes from v0.2.1.

v0.2.1#

fix: arm64-linux build

Runner

From

To

cpython

1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0

1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n

models-all-MiniLM-L6-v2

1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb

0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis

py-genlayer

132536jbnxkd1axfxg5rpfr5b60cr11adm2y4r90hgn0l59qsp9w

1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6

py-genlayer-multi

0iddpsb7hsrqv10xf4sjdiknba0m3fkm2x9xldy7ci3gj1fpkpjy

06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk

py-lib-cloudpickle

1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb

1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd

py-lib-genlayer-embeddings

09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi

0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk

py-lib-genlayer-std

0mmsw09shx3613jzkhbmqyqw60h6b27hy7bjdbb1msfp40g2idi6

11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v

py-lib-word_piece_tokenizer

0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq

0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas

softfloat

17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n

08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd

Commits touching runners:

  • chore: repair release

  • embeddings related improvements (#241)

  • Batch update (#238)

  • Batch update (#235)

  • spec: second iteration (#233)

  • Batch update (#230)

  • chore: prepare for release

  • batch update (#227)

Runner

Hash

cpython

1bk9g3zgym0rrpd9lk584cxfaa4rg0cz36w6xhzkqdj1m2p4xa9n

models-all-MiniLM-L6-v2

0d1skbkxl1ij1sfm0jvnh18ih5a9mxfiny0myqnyf0wa5jc50mis

py-genlayer

1jb45aa8ynh2a9c9xn3b7qqh8sm5q93hwfp7jqmwsfhh8jpz09h6

py-genlayer-multi

06zyvrlivjga0d5jlpdbprksc0pa6jmllxvp8s20hq1l512vh5yk

py-lib-cloudpickle

1dlk6mnfabi0z7r39635amyfzw8xb6rm8bv4pmgv6ji1bfx9hghd

py-lib-genlayer-embeddings

0bmbm3cyfwxsyh454z53vxqjf47wz2q7smcqp1q4g4a6k2kidnyk

py-lib-genlayer-std

11rhn002yfajawsz7fai6mykznbxkxs6l91iskj5cm82c92qhy3v

py-lib-protobuf

0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1

py-lib-word_piece_tokenizer

0vjc9x1qqv7bgkf9aldqsi708892vzh2w7mwzhq6w1174qan4bas

softfloat

08g85lmbfjngvvjyx1gr1pyk61nqba0y42gba8wrb1qd3zkv2gmd

v0.1.8-runner-hash___#

Breaking Changes#

  1. Calldata encoding behavior changed - dataclasses now encoded automatically without requiring custom default parameter

  2. genlayer.py.public_abi file marked as auto-generated - manual edits will be overwritten

New Features#

  1. Enhanced calldata encoding: Automatic dataclass encoding support without custom default functions

  2. Standardized error types: New VmError enum for consistent error handling across the platform

  3. Extended public ABI: Additional constants for internal VM operations (CODE_SLOT_OFFSET)

API Improvements#

  1. Simplified dataclass serialization - no longer requires explicit default parameter in calldata.encode()

  2. Better type safety with standardized error enums

  3. Cleaner API for encoding complex data structures

Runner

From

To

py-genlayer

1j12s63yfjpva9ik2xgnffgrs6v44y1f52jvj9w7xvdn7qckd379

132536jbnxkd1axfxg5rpfr5b60cr11adm2y4r90hgn0l59qsp9w

py-genlayer-multi

0xn02qjjqlpxadhs124cwrr5ddqs7dxcc6m5a7c6801hv54l66p0

0iddpsb7hsrqv10xf4sjdiknba0m3fkm2x9xldy7ci3gj1fpkpjy

py-lib-genlayer-std

1mds1jiy7phn7b7irqviwbl8lp026dsxfkzv88gj0lkmvcqk5aak

0mmsw09shx3613jzkhbmqyqw60h6b27hy7bjdbb1msfp40g2idi6

Commits touching runners:

  • chore: update hashes

  • fix: aboid asdict in calldata

  • chore: add codegen

Runner

Hash

cpython

1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0

models-all-MiniLM-L6-v2

1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb

py-genlayer

132536jbnxkd1axfxg5rpfr5b60cr11adm2y4r90hgn0l59qsp9w

py-genlayer-multi

0iddpsb7hsrqv10xf4sjdiknba0m3fkm2x9xldy7ci3gj1fpkpjy

py-lib-cloudpickle

1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb

py-lib-genlayer-embeddings

09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi

py-lib-genlayer-std

0mmsw09shx3613jzkhbmqyqw60h6b27hy7bjdbb1msfp40g2idi6

py-lib-protobuf

0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1

py-lib-word_piece_tokenizer

0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq

softfloat

17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n

v0.1.3#

fix: hotfix for studio

Migration Guide#

This section provides code examples for migrating from v0.1.0 to v0.1.3:

Contract Interfaces#

# v0.1.0
contract = gl.ContractAt(address)
contract.view().some_method()
contract.emit().some_method()

# v0.1.3
contract = gl.get_contract_at(address)
contract.view().some_method()
contract.emit().some_method()

Error handling#

# v0.1.0
from genlayer import Rollback
gl.advanced.rollback_immediate("error message")

# v0.1.3
from genlayer.gl.vm import UserError  # or use gl.vm.UserError
gl.advanced.user_error_immediate("error message")

VM operations#

# v0.1.0
gl.advanced.run_nondet(leader_fn, validator_fn)

# v0.1.3
gl.vm.run_nondet(leader_fn, validator_fn)

EVM contracts#

# v0.1.0
@gl.eth_contract
class MyEthContract:
    # contract definition

# v0.1.3
@gl.evm.contract_interface
class MyEthContract:
    # contract definition

Non-deterministic functions#

# v0.1.0
result = gl.get_webpage(url, mode='text')
response = gl.exec_prompt("prompt text")

# v0.1.3
result = gl.nondet.web.render(url, mode='text')
response = gl.nondet.exec_prompt("prompt text")

Equivalence principles#

# v0.1.0
result = gl.eq_principle_strict_eq(fn)
result = gl.eq_principle_prompt_comparative(fn, principle)

# v0.1.3
result = gl.eq_principle.strict_eq(fn)
result = gl.eq_principle.prompt_comparative(fn, principle)

Breaking Changes#

  1. Removed Rollback exception from top-level imports - use genlayer.gl.vm.UserError instead

  2. Error handling methods now use #error and #get-schema special method names from genlayer.py.public_abi.SpecialMethod

  3. Contract interface changes: eth_contract renamed to evm_contract_interface in EVM module

New Features#

  1. Module reorganization: Core functionality moved to genlayer.gl namespace with lazy loading for better performance

  2. Contract interface system: New @contract_interface decorator for type-safe contract interactions

  3. Enhanced contract deployment: deploy_contract function with deterministic addressing via salt nonce

  4. Contract proxy system: get_contract_at function returns proxy objects with view() and emit() methods

  5. Advanced event system: Event class with proper topic generation and indexed field support

  6. VM operations: New genlayer.gl.vm module with run_nondet, spawn_sandbox functions

  7. EVM integration: Enhanced genlayer.py.evm module with contract generation capabilities

  8. Equivalence principles: New genlayer.gl.eq_principle module with strict_eq, prompt_comparative, prompt_non_comparative

  9. Advanced utilities: genlayer.gl.advanced module with user_error_immediate and emit_raw_event

API Improvements#

  1. Storage system improvements with better slot management

  2. Type annotations added for WASI bindings (_genlayer_wasi.pyi)

  3. Enhanced error handling with UserError replacing Rollback

  4. Better lazy loading system for improved import performance

  5. Documentation generation support with GENERATING_DOCS environment variable

Runner

From

To

py-genlayer

15qfivjvy80800rh998pcxmd2m8va1wq2qzqhz850n8ggcr4i9q0

1j12s63yfjpva9ik2xgnffgrs6v44y1f52jvj9w7xvdn7qckd379

py-genlayer-multi

0cwifyzi3956f9yxdpq5kk3ihazv2llsxfj626zbadrg4cizwhq5

0xn02qjjqlpxadhs124cwrr5ddqs7dxcc6m5a7c6801hv54l66p0

py-lib-genlayer-std

0asq35p8mzlzwgxcrx5v51srnsqyj72cq7993way1vqddwxcvkq4

1mds1jiy7phn7b7irqviwbl8lp026dsxfkzv88gj0lkmvcqk5aak

Commits touching runners:

  • batch update (#226)

  • Batch update (#225)

Runner

Hash

cpython

1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0

models-all-MiniLM-L6-v2

1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb

py-genlayer

1j12s63yfjpva9ik2xgnffgrs6v44y1f52jvj9w7xvdn7qckd379

py-genlayer-multi

0xn02qjjqlpxadhs124cwrr5ddqs7dxcc6m5a7c6801hv54l66p0

py-lib-cloudpickle

1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb

py-lib-genlayer-embeddings

09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi

py-lib-genlayer-std

1mds1jiy7phn7b7irqviwbl8lp026dsxfkzv88gj0lkmvcqk5aak

py-lib-protobuf

0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1

py-lib-word_piece_tokenizer

0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq

softfloat

17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n

v0.1.0#

fix: cross compilation

Runner

From

To

cpython

new

1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0

models-all-MiniLM-L6-v2

new

1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb

py-genlayer

new

15qfivjvy80800rh998pcxmd2m8va1wq2qzqhz850n8ggcr4i9q0

py-genlayer-multi

new

0cwifyzi3956f9yxdpq5kk3ihazv2llsxfj626zbadrg4cizwhq5

py-lib-cloudpickle

new

1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb

py-lib-genlayer-embeddings

new

09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi

py-lib-genlayer-std

new

0asq35p8mzlzwgxcrx5v51srnsqyj72cq7993way1vqddwxcvkq4

py-lib-protobuf

new

0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1

py-lib-word_piece_tokenizer

new

0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq

softfloat

new

17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n

Runner

Hash

cpython

1s66bd44b80habdw2ayf4hyncvpkmmjwva0h6nkk738flsd5nis0

models-all-MiniLM-L6-v2

1sfhqijjsnsf6ik1zvdv4vxjidrjhsbnk1vgs1c5ksgv193flyqb

py-genlayer

15qfivjvy80800rh998pcxmd2m8va1wq2qzqhz850n8ggcr4i9q0

py-genlayer-multi

0cwifyzi3956f9yxdpq5kk3ihazv2llsxfj626zbadrg4cizwhq5

py-lib-cloudpickle

1pqxan7lxsjrvs66b4a7k81w7rrgbsqi3hxhp7b4bn4gks1b64rb

py-lib-genlayer-embeddings

09h0i209wrzh4xzq86f79c60x0ifs7xcjwl53ysrnw06i54ddxyi

py-lib-genlayer-std

0asq35p8mzlzwgxcrx5v51srnsqyj72cq7993way1vqddwxcvkq4

py-lib-protobuf

0riri6vk1ma3cnmlwls3d4771y0cf3c44afsl6gwfmnl2cpcbdl1

py-lib-word_piece_tokenizer

0m4yvkrbqnyygs4g3mmp11kprylks23q9m0pxnkpm1fg4kpck3qq

softfloat

17b5yad9r9jzcflawqi12r5llhgklfr6lp75r915r99l4wg8ni4n