Skip to content

Add feature inventory#4510

Merged
turbolent merged 3 commits into
masterfrom
bastian/feature-inventory
Jun 25, 2026
Merged

Add feature inventory#4510
turbolent merged 3 commits into
masterfrom
bastian/feature-inventory

Conversation

@turbolent

Copy link
Copy Markdown
Member

Description

Add a non-exhaustive, non-authoritative inventory of Cadence language features, automatically generated from the codebase. This is internal documentation only.

The hope is that it can help us with finding gaps in e.g. documentation, compiler/VM implementation, future spec, etc.


  • Targeted PR against master branch
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work
  • Code follows the standards mentioned here
  • Updated relevant documentation
  • Re-reviewed Files changed in the Github PR explorer
  • Added appropriate labels

@turbolent turbolent requested a review from SupunS as a code owner June 24, 2026 23:36
@turbolent turbolent added the Documentation Improvements or additions to documentation label Jun 24, 2026
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown

Benchstat comparison

  • Base branch: onflow:master
  • Base commit: 73b315f
Results

old.txtnew.txt
time/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-41.26µs ± 0%1.23µs ± 0%~(p=1.000 n=1+1)
ByteArrayValueToByteSlice-488.0ns ± 0%89.8ns ± 0%~(p=1.000 n=1+1)
ByteSliceToByteArrayValue-41.00µs ± 0%1.00µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-4394µs ± 0%438µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-44.02µs ± 0%3.74µs ± 0%~(p=1.000 n=1+1)
Emit-44.98ms ± 0%5.03ms ± 0%~(p=1.000 n=1+1)
EnumTransfer-41.51µs ± 0%1.35µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-4258ns ± 0%264ns ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-445.8ns ± 0%46.1ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-424.6µs ± 0%24.3µs ± 0%~(p=1.000 n=1+1)
InterpretRecursionFib-42.54ms ± 0%2.45ms ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-4963ns ± 0%1035ns ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_sub-interpreter-4379ns ± 0%358ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-4679µs ± 0%739µs ± 0%~(p=1.000 n=1+1)
RuntimeResourceDictionaryValues-43.04ms ± 0%3.08ms ± 0%~(p=1.000 n=1+1)
RuntimeResourceTracking-411.2ms ± 0%10.8ms ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-415.3µs ± 0%16.1µs ± 0%~(p=1.000 n=1+1)
RuntimeVMInvokeContractImperativeFib-447.0µs ± 0%51.4µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-464.9ns ± 0%64.1ns ± 0%~(p=1.000 n=1+1)
 
alloc/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-41.07kB ± 0%1.08kB ± 0%~(p=1.000 n=1+1)
ByteArrayValueToByteSlice-432.0B ± 0%32.0B ± 0%~(all equal)
ByteSliceToByteArrayValue-4849B ± 0%855B ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-4145kB ± 0%145kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-42.51kB ± 0%2.46kB ± 0%~(p=1.000 n=1+1)
Emit-41.54MB ± 0%1.53MB ± 0%~(p=1.000 n=1+1)
EnumTransfer-4834B ± 0%832B ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-4112B ± 0%112B ± 0%~(all equal)
ExportType/simple_type-40.00B 0.00B ~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-48.30kB ± 0%8.30kB ± 0%~(all equal)
InterpretRecursionFib-41.17MB ± 0%1.17MB ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-4976B ± 0%976B ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-4232B ± 0%232B ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-4174kB ± 0%174kB ± 0%~(p=1.000 n=1+1)
RuntimeResourceDictionaryValues-41.78MB ± 0%1.78MB ± 0%~(p=1.000 n=1+1)
RuntimeResourceTracking-46.94MB ± 0%6.98MB ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-48.07kB ± 0%8.08kB ± 0%~(p=1.000 n=1+1)
RuntimeVMInvokeContractImperativeFib-414.3kB ± 0%14.3kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-432.0B ± 0%32.0B ± 0%~(all equal)
 
allocs/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-47.00 ± 0%7.00 ± 0%~(all equal)
ByteArrayValueToByteSlice-41.00 ± 0%1.00 ± 0%~(all equal)
ByteSliceToByteArrayValue-45.00 ± 0%5.00 ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-42.23k ± 0%2.23k ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-429.0 ± 0%29.0 ± 0%~(all equal)
Emit-441.0k ± 0%41.0k ± 0%~(all equal)
EnumTransfer-413.0 ± 0%13.0 ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-42.00 ± 0%2.00 ± 0%~(all equal)
ExportType/simple_type-40.00 0.00 ~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-4176 ± 0%176 ± 0%~(all equal)
InterpretRecursionFib-416.5k ± 0%16.5k ± 0%~(all equal)
NewInterpreter/new_interpreter-415.0 ± 0%15.0 ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-44.00 ± 0%4.00 ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-43.21k ± 0%3.21k ± 0%~(all equal)
RuntimeResourceDictionaryValues-436.7k ± 0%36.7k ± 0%~(p=1.000 n=1+1)
RuntimeResourceTracking-4128k ± 0%128k ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-4113 ± 0%113 ± 0%~(all equal)
RuntimeVMInvokeContractImperativeFib-4481 ± 0%481 ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-41.00 ± 0%1.00 ± 0%~(all equal)
 

Comment thread docs/feature-inventory.md Outdated
Comment thread docs/feature-inventory.md Outdated
turbolent and others added 2 commits June 25, 2026 09:17
Co-authored-by: Supun Setunga <supun.setunga@gmail.com>
@turbolent turbolent enabled auto-merge June 25, 2026 16:21
@turbolent turbolent merged commit 3fa2a11 into master Jun 25, 2026
15 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants