All notable changes to this project will be documented in this file.
- Use modern crates anyhow and thiserror instead of failure
- Fixed BLS_* instructions behavior in case of bad data
- Fix build warnings
- Removed using ed25519 crates directly
- the crate was renamed from
ton_vm
toever_vm
- supported renaming of other crates
- Added BLS commands set
- Changed exception type when storing NaN integer on stack
- Bugfixes
- Check the type of exotic cell for ENDXC insn
- Revise the price of signature checking instructions
- Fix a gas computation bug in stack moving
- Fix ENDS insn: account for refs too
- BLS pubkey dummy
- Public slice_serialize and slice_deserialize functions
- Benchmark massive cell making
- Optimize IntegerData::as_slice()
- Add a tuples benchmark
- Recover load_hashed_cell() perf
- Drop trees of StackItem::Tuple iteratively
- Add cc() and ctrls() methods
- Fix depth bug of exotic cell
- Add new GASREMAINING insn
- Add new TRYKEEP instruction
- Supported changed interface of BocWriter::with_roots
- Disable debug symbols by default
- Fix TRY nargs bogus modification
- Use SHA algos from ever-types
- Minor fix for support changes in types
- check_signature: on bad pubkey/signature return false
- Supported ever-types version 2.0
- Fix DATASIZE primitives with GlobalCapability
- Put new code under Capability
- Removed recursion in STCONT/LDCONT primitives
- Fixed STCONT/LDCONT primitives for tuples and continuations
- Adapt some functions (CDATASIZE, XCTOS, XLOAD, CTOS) to library cells
- Fixed debug output
- Stack overflow during load library cell
- Add common as submodule
- Some minor fixes
- Fix for cells loading
- Some refactoring for remove direct usage of Arcs
- Bumped versions of some creates
- Fixed several potential panics
- Implemented MYCODE primitive
- Implemented COPYLEFT primitive
- Implemented COPYLEFT primitive
- Implemented STORAGE_FEE primitive
- Implemented TRYELECT primitive
- Implemented SEQNO primitive
- Refactored code for cargo clippy
- Optimized prefomance
- Simplified SPEC_LIMIT is nothing more than i64::MAX
- Handle BUYGAS out-of-gas condition the same way as for SETGASLIMIT
- Supported new cells (possibly without tag)
- Some micro optimizations for hot spots
- Make SaveList a vector instead of hashmap
- Simplify StackItem::as_continuation_mut
- Eliminate cloning of cmd_code's cell
- Put log-related computations under an if
- Improve perf of ContinuationData ctors
- Do arith operations in-place
- Get rid of swaps in step_while_loop()
- Optimize transplanting of the topmost range of a stack
- Optimize switching of loop iterations
- Simplify SaveList::apply()
- Improve move_stack_from_cc(): add a special case, remove unsafe code
- Add a script tuning a linux machine for finer benchmarking
- Add bigint benchmarks
- Turn off pointless benchmarking of tests; improve profiling
- Put tracing under a check to save a bunch of cycles
- Specialize switch() for the case of switching to c0
- Disable rug-bigint benchmark since CI can't build gmp-mpfr-sys
- Make StackItem variants hold Rc instead of Arc
- Streamline integer manipulations
- Add load-boc benchmark
- Make SaveList's storage an array
- Remove unnecessary engine.cmd reset
- Split Instruction struct
- Remove Context struct
- Move cc parts into loop cont instead of cloning
- Move last_cmd field out of ContinuationData into Engine
- Add SaveList::put_opt() an unchecked version of put()
- Improve ContinuationData printing
- Remove unused c6 from SaveList
- Do addition in-place
- Simplify raise_exception()
- Add assertions
- Add handlers printer
- Add a script for estimating the tests coverage
- Address feedback
- Fix after rebase
- Add deep stack switch test
- Add a benchmark for deep stack switch
- Minor improvements
- Minor optimization
- Fixed ZEROSWAP* and ZEROROT* promitives are fixed - check for bool instead of zero
- Fixed empty AGAIN, REPEAT loops
- Fixed GRAMTOGAS
- Fixed BUYGAS
- Implemented behavior modifier mechanism
- Implemented behavior modifier for skipping check of signature for offline execution purposes
- Fixed tvm.tex and tvm.pdf