Alain Zscheile
|
28b60c5dbb
|
refactor: move verification code from 'vm' to 'bytecode' crate
|
2022-10-23 01:17:34 +02:00 |
|
Alain Zscheile
|
c04860b933
|
fix(bytecode): invalid code transformation
|
2022-10-23 01:02:44 +02:00 |
|
Alain Zscheile
|
6294b2ae9c
|
fix(bytecode): remove misleading comment part
|
2022-10-23 01:01:29 +02:00 |
|
Alain Zscheile
|
bdc42a3fae
|
refactor(bytecode): coalesce an annoying match duplicate
|
2022-10-23 00:56:46 +02:00 |
|
Alain Zscheile
|
7e7fae3769
|
feat(bytecode): add param to remote calls, to prevent the necessity to add multiple of them
|
2022-10-23 00:49:46 +02:00 |
|
Alain Zscheile
|
4ff3b98de9
|
API BREAK: bytecode: get rid of Label
|
2022-10-23 00:44:27 +02:00 |
|
Alain Zscheile
|
e83e9f8394
|
feat(vm): normal exec errors also shouldn't allocate
|
2022-10-22 22:04:13 +02:00 |
|
Alain Zscheile
|
668fc0d6fa
|
fix(vm): verify function should never allocate
|
2022-10-22 22:00:34 +02:00 |
|
Alain Zscheile
|
582f0435a1
|
API BREAK feat(vm): move jumpdest check out of 'run' into 'verify'
|
2022-10-22 21:42:52 +02:00 |
|
Alain Zscheile
|
550c25340d
|
feat(bytecode): +DupFrom
|
2022-10-22 20:45:19 +02:00 |
|
Alain Zscheile
|
b889f626ab
|
chore: cargo fmt
|
2022-10-15 17:18:59 +02:00 |
|
Alain Zscheile
|
ff2d189344
|
API BREAK: use simple byteslices for module; -ModuleKind
|
2022-10-15 17:18:17 +02:00 |
|
Alain Zscheile
|
25ae04cb37
|
feat(vm): callstack doesn't really need to always store the module pointer for each callframe
|
2022-10-15 17:11:00 +02:00 |
|
zseri
|
e101c9fd9f
|
GENERAL BREAK: get rid of signed pointers
|
2022-09-30 12:35:08 +02:00 |
|
Alain Zscheile
|
18a7c524e6
|
fix(_): fix misc stuff
|
2022-09-28 15:44:05 +02:00 |
|
Alain Zscheile
|
5f77e04826
|
feat(bytecode): add signed remainder operation
|
2022-09-28 15:28:44 +02:00 |
|
Alain Zscheile
|
14c7cbb08b
|
feat(bytecode): add bitshift operation
|
2022-09-28 15:07:03 +02:00 |
|
Alain Zscheile
|
3cccbc31b8
|
API BREAK: make the VM u128-based (as only datatype)
|
2022-09-28 14:23:05 +02:00 |
|
Alain Zscheile
|
920983d003
|
fix(vm): remote calls might resume where left off, without additional label...
|
2022-09-28 03:29:09 +02:00 |
|
Alain Zscheile
|
9c770e4015
|
feat(vm): make VM no-std usable
|
2022-09-28 03:19:21 +02:00 |
|
Alain Zscheile
|
d193a66f04
|
refactor(vm): make run non-async, return Error::RemoteCall when remote-calls are invoked
|
2022-09-28 03:03:18 +02:00 |
|
Alain Zscheile
|
b67f42b773
|
feat(vm): basic comparison operators
|
2022-09-28 02:08:00 +02:00 |
|
Alain Zscheile
|
7602e9f7b9
|
feat: more and better math operators
|
2022-09-28 01:51:32 +02:00 |
|
Alain Zscheile
|
cdebdd2ce9
|
fix(vm): proper error reporting (for library usage)
|
2022-09-27 18:22:00 +02:00 |
|
Alain Zscheile
|
6c75da9cd2
|
feat(vm/Origin): make call method async
|
2022-09-27 17:41:35 +02:00 |
|
Alain Zscheile
|
9c0ad2fa15
|
feat(vm): reset origin id before calling <origin,ptr,atom>
|
2022-09-27 17:28:34 +02:00 |
|
Alain Zscheile
|
7580ba28bb
|
fix(bc/pointer): cancel upper two bytes of payload bc they're node-specific
|
2022-09-27 17:17:27 +02:00 |
|
Alain Zscheile
|
911d662634
|
feat+rf(vm): replace WrappedPointer with Pointer, reducing stack item size from 48 bytes to 32
|
2022-09-27 16:43:37 +02:00 |
|
Alain Zscheile
|
6256336a5c
|
refactor(bytecode/pointer): use [u8; 16] instead of (u64, u64)
API BREAK: this changes the computed HMAC
|
2022-09-27 15:19:33 +02:00 |
|
Alain Zscheile
|
724531eae9
|
fix(vm): add doesnt_crash baseline test
|
2022-09-26 05:56:51 +02:00 |
|
Alain Zscheile
|
0bcf710db3
|
+docs/xor.fgrs
|
2022-09-26 05:49:41 +02:00 |
|
Alain Zscheile
|
9af713411b
|
feat(vm): Process/ make fields public
|
2022-09-26 05:09:14 +02:00 |
|
Alain Zscheile
|
db88aa1f3f
|
fix(vm): get rid of unused origin-reliant refcounts
|
2022-09-26 03:33:31 +02:00 |
|
Alain Zscheile
|
a05ebb7f1e
|
refactor(vm): split cli and library code
|
2022-09-26 03:29:25 +02:00 |
|
Alain Zscheile
|
0aa63e6c85
|
fix(bytecode): get rid of redundant 'jump' instruction
|
2022-09-25 17:08:23 +02:00 |
|
Alain Zscheile
|
7388571a33
|
feat(bytecode): add ability to insert a deferred local call
|
2022-09-25 16:50:24 +02:00 |
|
Alain Zscheile
|
7ce7753bae
|
feat(vm): implement NAND on byte vectors of equal length
|
2022-09-25 15:55:06 +02:00 |
|
Alain Zscheile
|
e65cfa9f91
|
feat(bytecode): swap should be able to swap the top item with any other in 2^16 range
reason: this is easy to implement as a fast operation in the interpreter, and
reduces the need for a separate "temporary" stack.
|
2022-09-25 15:05:01 +02:00 |
|
Alain Zscheile
|
b1ea85cf3e
|
feat(bytecode): pop and dup should take 16bit values
|
2022-09-25 01:58:51 +02:00 |
|
Alain Zscheile
|
de02eba3dc
|
fix(bytecode): make bytecode more compact (inline atom ops; smaller opcodes)
|
2022-09-25 01:49:38 +02:00 |
|
Alain Zscheile
|
391c478647
|
refactor(bytecode): OnAtom: build <-> decon (replaces: upper, lower)
|
2022-09-24 02:07:32 +02:00 |
|
Alain Zscheile
|
6557e172e7
|
feat: add conditional jumps
|
2022-09-24 01:49:44 +02:00 |
|
Alain Zscheile
|
b410e7a5b8
|
refactor(vm): DRY jump safety checks
|
2022-09-23 23:25:57 +02:00 |
|
Alain Zscheile
|
bc96f9f130
|
fix(vm): trivial errors found during initial testing
|
2022-09-23 21:49:12 +02:00 |
|
Alain Zscheile
|
a7c2068b01
|
refactor(vm): use crate tracing
|
2022-09-23 21:03:41 +02:00 |
|
Alain Zscheile
|
51438c5568
|
feat(vm): concatenation of byte vectors
|
2022-09-23 20:58:13 +02:00 |
|
Alain Zscheile
|
993ce94fbd
|
feat: proper support for local (inside the same module) calls
|
2022-09-23 20:16:19 +02:00 |
|
Alain Zscheile
|
d5148669b9
|
refactor(vm): split NOOP_* stuff from rest
|
2022-09-23 19:57:02 +02:00 |
|
Alain Zscheile
|
17efdff6f5
|
~: function calls should be restricted in input arity
|
2022-09-23 19:41:37 +02:00 |
|
Alain Zscheile
|
94117e5817
|
fix(vm): make sure that we only jump to jump targets
|
2022-09-23 18:44:43 +02:00 |
|