Skip to content

GFQL deletion: remove Cypher reentry compiletime lowering-symbol shim #1471

Description

@lmeyerov

Summary

The Cypher reentry extraction still preserves behavior through a broad compatibility shim: graphistry/compute/gfql/cypher/reentry/compiletime.py imports cypher.lowering and runs globals().update(vars(_lowering)) so extracted functions can keep using lowering-private symbols.

That was useful during the S3/#1260 split, but it is now a concrete deletion/refactor surface.

Current evidence

On current origin/master:

  • graphistry/compute/gfql/cypher/reentry/compiletime.py says it preserves behavior and compatibility via lowering-level shims.
  • The module does from graphistry.compute.gfql.cypher import lowering as _lowering and globals().update(vars(_lowering)).
  • graphistry/compute/gfql/cypher/lowering.py still comments that reentry helpers are re-exported there for compatibility.

Goal

Make reentry compiletime explicit and self-contained enough to delete the broad symbol-table shim and any stale lowering-level reexports that are no longer needed.

Scope

  • Identify all symbols from lowering that reentry/compiletime.py really uses.
  • Replace globals().update(vars(_lowering)) with explicit imports or local helpers.
  • Remove stale reexports/import compatibility comments where tests show no public need.
  • Keep behavior identical for bounded reentry compilation.
  • Update split-guard tests so future broad symbol-table shims are caught.

Out of scope

Acceptance

  • No globals().update(vars(_lowering)) shim remains in reentry compiletime.
  • Any remaining lowering-level compatibility reexports are justified by tests or removed.
  • Focused reentry/lowering tests pass.
  • Broad GFQL and tck-gfql CI pass; run DGX GFQL/cuDF if changed code reaches runtime.

Related

Activity

  1. lmeyerov commented on May 17, 2026

    @lmeyerov
    ContributorAuthor

    Closeout receipt for #1471:

    • PR merged: Remove Cypher reentry compiletime lowering shim #1474 -> master
    • Merge commit: 423a586e04e03e3bef4e528838e0816d0a8318af
    • Final PR head: 86ffb5cb863f5f0f58189a703703a0886448d342
    • Result: removed the broad globals().update(vars(_lowering)) symbol-table shim from graphistry.compute.gfql.cypher.reentry.compiletime; replaced it with explicit imports and retained only the lowering-called compiletime entrypoints.
    • Tests/guards: split guard now asserts no broad lowering shim, no _lowering module attr, stable module/package dunders, and callable _compile_bounded_reentry_query / _drop_bare_alias_items_from_stage.
    • Changelog: CHANGELOG.md Development/Internal entry added.
    • Review: review skill converged, then reconverged after the mypy fix and after the added entrypoint guard; final review report has 0 blocker/important/suggestion findings.
    • Local validation: compileall, focused split/reentry tests, broader non-cuDF lowering tests, binder/cycle tests, ruff, ./bin/typecheck.sh, and git diff --check passed.
    • DGX validation: dgx-spark RAPIDS 25.02 and 26.02 focused cuDF reentry matrices passed, 8/8 each; logs at /tmp/issue-1471-rapids-25.02.log and /tmp/issue-1471-rapids-26.02.log.
    • CI: fresh PR head green, including tck-gfql and ReadTheDocs.

    #1471 is closed by #1474.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions