Skip to content

Releases: Synaptic-Graph/Synaptic

Synaptic 1.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 04:51

Synaptic 1.2.0

Added

  • Build-aware C, C++ and Fortran extraction reads compilation databases, response
    files, preprocessing flags and source-form settings. CMake target dependencies
    constrain native call resolution, and headers are parsed in a real translation
    unit's include context with source-line mapping.
  • Optional Groovy compiler facts add AST-transform-generated methods and exact
    compiler-resolved calls. Imports validate source and classpath freshness;
    unresolved dynamic calls retain explicit uncertainty.
  • Independent Clang, GFortran and Groovy validation scripts compare declarations
    and call targets against pinned open-source repositories, including negative
    controls for missing overloads and incorrect implementation files.

Changed

  • Groovy uses a vendored native grammar with broader Gradle/Spock DSL support,
    including command chains, quoted methods, annotations, traits, records,
    closures, arrays, tuples, loops and mixed modifiers. Rust builds use checked-in
    generated sources and do not require Node.js.
  • Fortran incremental updates follow reverse module and call dependencies.
    Build-configured projects rebuild conservatively to refresh headers, flags and
    compiler facts.
  • Quality gates use comment-aware declaration anchors, corrected Fortran Ctags
    coverage and separate parser/recovery measurements. The expanded validation
    corpus pins 13 repositories and includes HTTP Builder NG, WSLite and FPM.

Fixed

  • Fortran fixed-form comments, continuations and numeric literals; internal
    procedures; lexical and USE association; accessibility and renames; generic
    overload selection; type-bound dispatch; submodule implementation targets; and
    intrinsic shadowing.
  • C/C++ macro-decorated declarations, aggregate and alias extraction, overload
    ambiguity, internal linkage and C/C++ language-linkage boundaries.
  • Groovy overload and anonymous-body method ID collisions, escaped quoted names,
    constructor anchors and calls previously mistaken for declarations.
  • File and symbol IDs that collided across source variants or languages, and
    Kubernetes resource anchors in multi-document YAML.
  • The desktop command catalog now includes the existing chart command.

Validation and upgrade notes

  • All 13 repository gates pass over 13,000 files and 82,591 declaration anchors.
    All 666 reviewed Groovy files parse without errors; 5,851 declarations accepted
    by the Groovy compiler match distinct graph nodes. Configured CMINPACK and
    FFTPACK match all 349 checked compiler call targets. Validation also includes
    2,774 Rust tests, 523 grammar cases, 44 upstream CMINPACK tests and two compiled
    and executed FFTPACK examples.
  • Re-extract existing projects after upgrading: corrected declaration identities
    can change graph IDs. Compiler-assisted extraction requires the project's
    compiler and build inputs; conflicting build configurations require selecting
    one active configuration. Runtime-dynamic targets and remaining dialect gaps
    are documented in the validation report.

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 29 Aug 17:02

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 02:22

Full Changelog: v1.0.0...v1.1.0

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 00:36

Full Changelog: v0.9.16...v1.0.0

v0.9.16 - Graphify head-to-head benchmarks

Choose a tag to compare

@github-actions github-actions released this 21 Aug 03:16

Synaptic vs Graphify

This release adds a reproducible synaptic eval head-to-head benchmark against pinned Graphify b2cd36267456c166788c95be6e68574064a92a42, plus the extraction fixes found by running it.

Hand-labeled accuracy corpus

Tool Quality F1 Accuracy Precision Recall Labels resolved Cold corpus
Synaptic 98.55% 97.14% 100.00% 97.14% 100.00% 1.13 s
Graphify 87.10% 77.14% 100.00% 77.14% 100.00% 6.37 s

Both tools tied on the six single-language fixtures. Graphify missed the labeled cross-language couplings in the TypeScript/Rust, gRPC, queue, PyO3, and WebSocket fixtures.

Ten pinned real-world projects

Quality metrics are agreement with Universal Ctags over the same detector-selected code files and structural declaration kinds. Anchor exactness is checked directly against source. The run used one fresh cold build per project on Windows on 2026-08-20.

Tool Projects Quality F1 Accuracy Precision Recall Anchor exact Parse warnings Cold total
Synaptic 10 92.20% 85.53% 91.12% 93.31% 100.00% 1.17% 15.39 s
Graphify 10 81.10% 68.21% 75.01% 88.27% 94.01% 0.00% 50.07 s

Synaptic led by 11.10 points in F1, 17.32 in accuracy, 16.11 in precision, 5.04 in recall, and 5.99 in anchor exactness while completing the corpus 3.25x faster. It won F1, accuracy, precision, and cold speed on all ten projects. All 60,501 checked Synaptic source anchors were exact.

S/G means Synaptic / Graphify:

Project F1 S/G Accuracy S/G Precision S/G Recall S/G Anchor S/G Cold seconds S/G
memchr 98.68 / 40.29 97.39 / 25.23 98.19 / 25.42 99.17 / 97.01 100.00 / 98.40 0.37 / 5.06
click 99.93 / 86.59 99.86 / 76.36 100.00 / 93.53 99.86 / 80.62 100.00 / 96.17 0.98 / 3.46
p-map 84.75 / 58.46 73.53 / 41.30 75.76 / 48.72 96.15 / 73.08 100.00 / 93.94 0.11 / 0.70
cobra 98.52 / 96.28 97.09 / 92.82 98.69 / 93.25 98.36 / 99.51 100.00 / 100.00 0.32 / 1.70
axum 94.46 / 85.10 89.50 / 74.06 96.86 / 85.23 92.17 / 84.97 100.00 / 90.84 1.58 / 4.52
gson 97.70 / 94.82 95.49 / 90.16 96.00 / 90.38 99.45 / 99.72 100.00 / 93.41 2.23 / 7.22
fmt 85.19 / 72.09 74.21 / 56.36 90.43 / 78.87 80.53 / 66.38 100.00 / 98.62 1.60 / 5.04
Humanizer 87.24 / 81.18 77.37 / 68.32 81.34 / 70.57 94.07 / 95.54 100.00 / 89.29 7.07 / 18.22
rack 94.34 / 86.86 89.29 / 76.78 91.83 / 82.30 97.00 / 91.97 100.00 / 90.28 0.41 / 1.93
Slim 99.65 / 91.52 99.31 / 84.36 100.00 / 86.99 99.31 / 96.54 100.00 / 100.00 0.72 / 2.23

Across the corpus, Synaptic produced 74,889 nodes and 118,000 edges versus Graphify's 32,547 nodes and 77,238 edges. Against 18,787 oracle declarations, Synaptic matched 17,531 with 1,256 oracle-only and 1,709 tool-only; Graphify matched 16,584 with 2,203 oracle-only and 5,525 tool-only.

Quality fixes

  • JavaScript/TypeScript named arrow functions and assigned function expressions now own their calls and correct source anchor.
  • Rust type aliases/unions and Java enums, records, annotations, and compact constructors are retained.
  • C/C++ calling-convention, attribute, and project macros no longer fuse declarations or move anchors.
  • Oracle scope excludes imports, fields, rationale, generated/dependency noise, and unnameable anonymous declarations.
  • h2 is updated to 0.4.16 for RUSTSEC-2026-0258; RustSec and cargo-deny pass.

See BENCHMARKS.md for methodology, reproduction commands, and report paths, or the full changelog.

v0.9.14

Choose a tag to compare

@github-actions github-actions released this 16 Aug 14:42

Full Changelog: v0.9.13...v0.9.14

v0.9.13

Choose a tag to compare

@github-actions github-actions released this 15 Aug 15:44

Full Changelog: v0.9.12...v0.9.13

v0.9.12

Choose a tag to compare

@github-actions github-actions released this 15 Aug 05:27

Full Changelog: v0.9.11...v0.9.12

v0.9.11

Choose a tag to compare

@github-actions github-actions released this 13 Aug 08:13

Full Changelog: v0.9.10...v0.9.11

v0.9.10

Choose a tag to compare

@github-actions github-actions released this 13 Aug 02:20

Full Changelog: v0.9.9...v0.9.10