No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-01 23:59:54 +02:00
media Add naming scheme to readme 2026-05-29 18:17:03 +02:00
ProtoFiber.Core Update NodeTypeId.cs 2026-10-01 23:59:54 +02:00
ProtoFiber.Core.Nodes Generalize connector lists 2026-05-29 18:16:45 +02:00
ProtoFiber.DotNet Generalize connector lists 2026-05-29 18:16:45 +02:00
specification State machine examples 2026-01-30 02:46:14 +01:00
.gitignore Read methods with reflection 2026-01-31 01:30:49 +01:00
Directory.Build.props WIP 2026-05-26 21:40:42 +02:00
ProtoFiber.slnx WIP 2026-05-26 21:40:42 +02:00
README.md Add naming scheme to readme 2026-05-29 18:17:03 +02:00

Resonite Flux Compensator

What if ProtoFlux was compiled into static DotNet IL using the latest .NET 10 features? This project aims to implement a ProtoFlux-like node-based programming language with this goal in mind.

Goals

These are the main goals of Flux Compensator

  • Compile to static DotNet IL
  • ProtoFlux can be translated into the Flux Compensator model
  • Allocate all Locals and Stores on the stack by using a ref struct for the context
  • Emit debug information such as pseudo source-code with the compiled IL for proper debugger support (such as stepping through it step by step)
  • Define ProtoFlux Nodes using regular C# methods which are then transpiled and inlined
  • Ability to cache compiled ProtoFlux groups as DLL+PDB files to avoid compilation hitches

Potential Impact on Performance

Compiling ProtoFlux to static IL can massively increase performance because it..

  • avoids dynamic calls: allows the CPU hardware to predict execution flow
  • does not interpret: Allows the CPU to better predict branches by adding no interpreter noise to the branch predictor hardware
  • keeps locals and stores on the stack: Cache locality is a big factor in improving performance

Benchmarks will be needed to empirically compare the performance to interpreted ProtoFlux.

Naming Scheme