C/C++ realization of the published reference_host_runtime_ui_binding family
FROG — Free Open Graphical Language
Repository governance and publication state are centralized in
Versioning/Readme.md.
Implementations/Reference/Runtime/cpp/
├── Readme.md
├── CMakeLists.txt
├── include/
│ ├── contract.hpp
│ ├── execute.hpp
│ ├── json.hpp
│ ├── kernel_bridge.hpp
│ ├── runtime.hpp
│ └── ui.hpp
├── src/
│ ├── contract.cpp
│ ├── execute.cpp
│ ├── json.cpp
│ ├── kernel_bridge.cpp
│ ├── main.cpp
│ ├── main_llvm_kernel.cpp
│ ├── runtime.cpp
│ └── ui.cpp
└── tests/
├── test_slice05.cpp
├── test_slice05_llvm_kernel.cpp
├── test_slice06_boolean.cpp
├── test_slice06_llvm_kernel.cpp
├── test_slice07_string.cpp
├── test_slice07_llvm_kernel.cpp
├── test_slice08_enum.cpp
├── test_slice08_llvm_kernel.cpp
├── test_slice09_path.cpp
├── test_slice09_llvm_kernel.cpp
├── test_slice10_button.cpp
├── test_slice10_llvm_kernel.cpp
└── test_slice11_button_switch.cpp
This directory contains the C/C++ consumer for the published Examples 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, and 15 runtime slices.
It accepts emitted backend contracts, loads the published .wfrog packages, resolves the referenced SVG assets, exposes browser-host UIs, and can run either the default contract-executor path or the optional manifest-declared native-kernel bridge path.
This directory is a runtime-family consumer. It is not a language-definition layer, not a compiler-family layer, and not a substitute for canonical source, FIR, lowering, or backend compilation.
frog_reference_runtime_cppThe standard executable supports:
- headless execution by default or through
run, - browser-host UI through
ui.
It remains available without LLVM or clang.
It executes the bounded Example 05, Example 06, Example 07, Example 08, Example 09, Example 10, Example 11, Example 12, Example 13, Example 14, and Example 15 backend contracts and produces the published runtime artifacts.
cmake -S Implementations/Reference/Runtime/cpp -B build/frog_runtime_cpp
cmake --build build/frog_runtime_cpp
ctest --test-dir build/frog_runtime_cpp
build/frog_runtime_cpp/frog_reference_runtime_cpp 3
build/frog_runtime_cpp/frog_reference_runtime_cpp run true --example 06
build/frog_runtime_cpp/frog_reference_runtime_cpp run "hello world" --example 07
build/frog_runtime_cpp/frog_reference_runtime_cpp run fault --example 08
build/frog_runtime_cpp/frog_reference_runtime_cpp run "C:/FROG/hello_world.txt" --example 09
build/frog_runtime_cpp/frog_reference_runtime_cpp run true --example 10
build/frog_runtime_cpp/frog_reference_runtime_cpp run true --example 11
build/frog_runtime_cpp/frog_reference_runtime_cpp ui --host 127.0.0.1 --port 8080 --no-open-browserfrog_reference_runtime_cpp_llvm_kernel
The optional native-kernel executable is built when FROG_RUNTIME_CPP_ENABLE_LLVM_KERNEL_BRIDGE=ON.
CMake compiles the published Example 05, Example 06, Example 07, Example 08, Example 09, Example 10, Example 11, Example 12, Example 13, Example 14, and Example 15 kernel.ll artifacts with clang, links the resulting objects into the executable, and uses native_kernel_manifest.json to validate and call the selected ABI surface.
This executable is the bounded Example 05, Example 06, Example 07, Example 08, Example 09, Example 10, Example 11, Example 12, Example 13, Example 14, and Example 15 LabVIEW-like proof path:
.frog source
-> FIR
-> lowering
-> LLVM-produced kernel.ll
-> native kernel manifest
.frog front panel
-> C++ browser-host renderer
-> widget instance layout, style, and binding
.wfrog realization package
-> SVG skins and anchor/value overlays
runtime C++
-> NativeKernelBridge
-> frog_example05_run(input_value, out_result)
-> or frog_example06_run(input_value, out_result)
-> or frog_example07_run(input_text, out_result)
-> or frog_example08_run(mode_value, out_result)
-> or frog_example09_run(input_path, out_result)
-> or frog_example10_run(trigger_pressed, out_result)
-> or frog_example11_run(trigger_value, out_result)
-> or frog_example12_run(trigger_value, out_result)
-> or frog_example13_run(trigger_value, out_result)
-> or frog_example14_run(trigger_value, out_result)
-> or frog_example15_run(trigger_value, out_result)
-> public result
-> matching indicator value
-> runtime snapshot / state.json
python Implementations/Reference/Runtime/check_example05_cpp_native_kernel_bridge.py
python Implementations/Reference/Runtime/check_example06_cpp_native_kernel_bridge.py
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel 3
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run true --example 06
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run "hello world" --example 07
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run fault --example 08
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run "C:/FROG/hello_world.txt" --example 09
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run true --example 10
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel run true --example 11
build/frog_runtime_cpp_native_kernel_bridge/frog_reference_runtime_cpp_llvm_kernel ui --host 127.0.0.1 --port 8080 --no-open-browser
The current C++ browser-host renderer consumes each published example .wfrog package as the panel layout authority.
It renders:
- the front panel in
panel_pixels, - the widget
x,y,width, andheightdeclarations, - the Default Numeric, Boolean, String, Enum, Path, and Button SVG skins as the widget bodies for Examples 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, and 15,
- published realization anchors including
caption.anchor, value/text surfaces, and the Numericincrement_up/increment_downparts, - dynamic widget values and labels,
- contract-driven
foreground_colorproperty writes.
The Example 05 panel uses the shared Default Numeric realization. Example 06 uses the shared Default Boolean realization. Example 07 uses the shared Default String realization without a published String focus-ring part. Example 08 uses the shared Default Enum realization. Example 09 uses the shared Default Path realization without an invisible outer frame or focus-ring hover target. Examples 10 through 15 use the shared Default Button realization for the command and the shared Default Boolean realization for the read-only indicator while covering the six published Button mechanical actions.
This is a bounded fidelity pass for the current published examples, not a complete generalized .wfrog renderer.
native_kernel_manifest.json
-> NativeKernelManifest
-> NativeKernelBridge
-> frog_example05_run(input_value)
-> FrogRunResult { ok, result, error_code }
-> runtime result / diagnostic / snapshot
The runtime consumes a manifest-declared function pointer. The fact that the first published backend artifact is LLVM-oriented remains manifest metadata, not a runtime-core dependency.
The standard C/C++ test target checks:
- headless execution with input
3and final result15, - overflow rejection behavior,
- native-kernel bridge behavior with an ABI-compatible stub,
- browser-host HTML rendering with both SVG asset routes,
.wfrog/ SVG geometry coherence for Example 05 Numeric widgets, Example 06 Boolean widgets, Example 07 String widgets, Example 08 Enum widgets, Example 09 Path widgets, and Example 10/11/12/13/14/15 Button plus Boolean widgets.
The optional LLVM-produced native-kernel bridge target checks:
- manifest loading, entry-symbol validation, ABI validation, and error mapping,
- direct calls through an object compiled from
kernel.ll, - runtime snapshot publication through
execute_with_native_kernel_bridge(...), - browser UI runtime execution through the current Numeric, Boolean, String, Enum, Path, and Button browser-host runtimes with a native kernel bridge.
- General runtime support for arbitrary contracts.
- Language or widget-law ownership.
- Compiler-family responsibilities.
- Native compiled UI closure.
- A complete generalized
.wfrogrenderer. - A complete LabVIEW-like runtime surface.
- A mandatory runtime dependency on LLVM or
clang.
Read this directory as the C/C++ proof path for the current runtime family:
contract + .wfrog + SVG assets
=> C/C++ runtime core
=> headless result or browser-host UI
native kernel manifest + linked ABI-compatible kernel
=> C++ NativeKernelBridge
=> same runtime result / diagnostic / snapshot surface
kernel.ll + clang + optional CMake target
=> native-kernel runtime executable
=> hosted .wfrog UI calling a compiled diagram kernel