the-gamma/thegamma-script
52.4
Adequate · 24 September 2026
10.8k
lines of production code
F#
primary language
5
measurements over time
What this system is
This system is a compiler and interactive development environment for 'TheGamma,' a custom programming language. It provides a full toolchain that parses and type-checks TheGamma code, then compiles it to JavaScript for execution in the browser. The platform also offers rich IDE features, including live previews, auto-completion, and error reporting, while integrating with external libraries like Monaco and Babel to enhance the user experience.
Features
Add F\# provider for chart type metadata
A new F\# script (tools/fsprovider.fsx) was added to expose metadata about chart types and options from the core libraries. This enables tooling to understand the available chart configurations and series types, supporting features like autocomplete and live preview for chart options.
tools · high confidence
Add Fable bindings for Babel, Virtual DOM, and Monaco editor
New F\# bindings have been introduced to interface with external JavaScript libraries. The project now includes bindings for Babel (allowing code transformation via the Babel API), Virtual DOM (providing functions like h, diff, patch, and createElement for DOM manipulation), and the Monaco editor (updating import paths and namespaces). These additions enable the application to interact with these specific JavaScript ecosystems from F\# code.
src/bindings · high confidence
Add Google Charts integration with automatic option generation
Introduced a new Google Charts integration in the \src/libraries/google\ directory, providing a F\#-friendly API for rendering charts (scatter, geo, pie, bar, column, line, area) via the Google Charts library. The implementation includes core modules for data handling and chart drawing, alongside an auto-generated \extensions.fs\ file that creates fluent builder methods for all chart options, allowing users to configure chart appearance and behavior in a type-safe manner.
src/libraries/google · high confidence
Added Babel AST and location mapping utilities
Introduced new F\# modules for handling Babel Abstract Syntax Tree (AST) serialization and source code location mapping. The \babel.fs\ file defines types for AST nodes (expressions, statements, literals) and their JSON serialization, while \locations.fs\ provides a \LocationMapper\ to convert between absolute offsets and 1-based line/column coordinates, including a specific workaround for Safari's TypedArray handling.
src/thegamma/common · medium confidence
Introduce TheGamma F\# library for interactive data visualization and data handling
Added new F\# libraries providing a foundation for interactive charts, data series manipulation, and table rendering. The \series\ module enables asynchronous, composable data pipelines with sorting, mapping, and aggregation. The \compost\ module defines a domain model for chart shapes, styles, and scales, while \interactive\ and \html\ modules implement a virtual DOM and SVG rendering engine for interactive charts. The \tables\ module adds support for rendering data as HTML tables with formatting and filtering. These libraries replace previous ad-hoc implementations and provide a consistent, type-safe API for building data-driven UIs.
src/libraries · high confidence
Introduce TheGamma parser and tokenizer
Added the initial implementation of the TheGamma language's tokenizer and parser. The tokenizer converts source code into a stream of tokens, while the parser transforms these tokens into an Abstract Syntax Tree (AST) using a recursive-descent approach with operator-precedence climbing for expressions.
src/thegamma/parser · high confidence
Introduce live preview support for pivot and showable types
Added new modules in src/thegamma/live to enable live previews for pivot type providers and any type with a 'show' method. The changes introduce state management for tracking cursor location, code, and program state, along with helper functions to parse expression chains and map them to preview components. This allows users to see live-updating previews of pivot transformations and showable objects directly in the editor.
src/thegamma/live · medium confidence
Introduce new type providers for F\#, Pivot, and REST data sources
Added three new type providers to the Gamma platform: an F\# provider that compiles F\# types (including generics) for use in the language, a Pivot provider that enables data aggregation queries over tables with support for grouping, windowing, and filtering, and a REST provider that maps JSON responses from REST services to typed objects. These additions expand the data integration capabilities of the platform by providing structured, type-safe access to F\# types, tabular data transformations, and external REST APIs.
src/thegamma/providers · high confidence
Introduces new binder, interpreter, and type checker for the Gamma analyzer
The analyzer now includes three new core modules: a binder that attaches Entity objects to parser nodes, an interpreter for partial evaluation of program parts, and a type checker that infers and validates types for entities. These components work together to provide deeper static analysis and runtime evaluation capabilities for the Gamma language.
src/thegamma/analyzer · high confidence
New code generation and runtime support for TheGamma
Added the core code generation module (codegen.fs) which compiles TheGamma programs into JavaScript using the Babel AST, and the runtime module (runtime.fs) which provides helper functions for data conversion, URL handling, and HTTP requests. This enables the TheGamma language to be compiled to JavaScript and executed in a browser or Node.js environment.
src/thegamma/codegen · high confidence
Architecture
Project restructuring and build system migration
The project has migrated its build infrastructure from a FAKE/Node.js-based system to a Rollup-based JavaScript bundling setup, evidenced by the addition of rollup.config.js and the removal of build.sh, build.cmd, and build.fsx. Additionally, the repository has been cleaned up with the removal of the legacy index.html and fableconfig.json, while the .gitignore and .npmignore files have been updated to reflect the new build artifacts and ignore patterns.
(repo-wide) · high confidence
Behavioural changes
New AST and type system for the Gamma language
The core language representation has been replaced with a new Abstract Syntax Tree (AST) and type system. This introduces a new \Entity\ model to represent code constructs, a \Type\ system supporting primitives, objects, lists, and methods, and a \Member\-based object model. Error reporting and parsing logic have been updated to align with this new structure, enabling better type checking and code generation for the language.
src/thegamma/ast · medium confidence
Project structure and build configuration updated for Fable vNext
The project has been restructured to support the Fable vNext migration. A new \fableconfig.json\ file defines build targets for ES2015, CommonJS, and minified UMD outputs, configuring Rollup plugins and module handling. The solution file (\thegamma-script.sln\) has been renamed from \TheGamma.sln\ and updated to include new project references for \libraries\, \tools\, \project\, and \tests\ directories, alongside updated Visual Studio version metadata.
src · high confidence
Replaced legacy parser and type-checking infrastructure with new services and editor components
The legacy parser, tokenizer, and type-checking modules have been removed and replaced with new implementations. A new \blocks.fs\ module provides a block-based editor with live preview and completion support. The \monaco.fs\ module integrates Monaco editor features, including syntax highlighting and auto-completion. A new \services.fs\ module introduces a \CheckingService\ for type-checking and a \PreviewService\ for live previews. These changes shift the editor's behavior to use the new parsing and type-checking logic, enabling features like real-time error reporting and code completion.
src/thegamma · high confidence
Test coverage
Added comprehensive test suite for TheGamma core components
Added a new test suite in tests/thegamma-tests that covers the tokenizer, parser, formatter, binder, and type checker. The tests validate tokenization round-trips, parse and format preservation of whitespace and placeholders, binding logic for entities, and type-checking of simple and FSharp provided types, including pivot types.
tests/thegamma-tests · high confidence
Dependencies
Migrate build system to .NET SDK-style projects and update dependencies
The project has been modernized by converting legacy MSBuild-based .fsproj files to the modern .NET SDK-style format, targeting .NET 9.0. This change updates the Fable compiler dependency from version 0.7 to 4.24, and introduces Rollup for JavaScript bundling. Additionally, the NuGet package manager has been switched from Paket to the standard .NET CLI, replacing legacy package references with modern PackageReference syntax.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 57 → 52 (-4.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 75 → 74 (-0.8)
- Architecture 100 → 100 (-0.2)
- Maturity 47 → 40 (-7.4)
- Readiness 46 → 44 (-1.4)
- Security 96 → 88 (-8.0)
Resolved (25)
- Dependency hygiene not measured — no packages were read
- Duplicated block (11 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/thegamma/analyzer/interpreter.fs)
- Duplicated block (6 lines × 2) (src/bindings/monaco.fs)
- Duplicated block (6 lines × 2) (src/bindings/monaco.fs)
- Duplicated block (7 lines × 2) (src/libraries/html.fs)
- Duplicated block (7 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (7 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (7 lines × 2) (src/thegamma/ast/astops.fs)
- Duplicated block (7 lines × 2) (src/thegamma/providers/fsharp.fs)
- Duplicated block (7 lines × 3) (src/bindings/monaco.fs)
- Duplicated block (7 lines × 4) (src/bindings/monaco.fs)
- Duplicated block (8 lines × 2) (src/bindings/monaco.fs)
- Duplicated block (9 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (9 lines × 4) (src/libraries/interactive.fs)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 5 more
New (22)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (12 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 2) (src/bindings/monaco.fs)
- Duplicated block (5 lines × 2) (src/libraries/compost.fs)
- Duplicated block (5 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (5 lines × 7) (src/libraries/interactive.fs)
- Duplicated block (6 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (6 lines × 2) (src/thegamma/ast/astops.fs)
- Duplicated block (6 lines × 3) (src/thegamma/live/pivot.fs)
- Duplicated block (7 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (7 lines × 2) (src/thegamma/providers/fsharp.fs)
- Duplicated block (7 lines × 5) (src/libraries/interactive.fs)
- Duplicated block (8 lines × 2) (src/libraries/html.fs)
- Duplicated block (8 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (8 lines × 2) (src/libraries/interactive.fs)
- Duplicated block (9 lines × 5) (src/libraries/interactive.fs)
- End-of-life runtime: .NET net9.0
- High CVE: [GHSA redacted] (package-lock.json)
- High CVE: [GHSA redacted] (package-lock.json)
- …and 2 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
the-gamma/thegamma-script was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ad7c53dda50998295e0b1ecb495809024eae6f0c — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-923689c465cf.