SPB Git

spb/metrika Public

Stata-class statistics, GPU-accelerated by Apple Silicon. Native Swift — no Electron, no Python runtime, no compromises.

Swift 92.4% HTML 3.3% R 3% Shell 1.3%

History of MetrikaKit/Sources/ZQParser/Grammar/CommandParser.swift · clear filter

  1. feat(stats): xtreg fixed effects and ivregress 2sls
    - parser: (endog = instruments) varlist groups -> ZQIVSpec; digit-led
      sub-commands (2sls) reassembled from number+identifier tokens via
      column adjacency
    - ZQFixedEffects: within estimator with Stata conventions (add-back
      means, reported _cons, df = N-K-G), within R-squared, panel-clustered
      VCE with G/(G-1) and t on G-1 df; v0.2 restriction: cluster variable
      must equal the panel variable
    - ZQIV: 2SLS via thin-Q projection of the instrument matrix (Z'Z never
      formed), residuals from original regressors, Stata 'small' inference,
      classical/HC1/cluster VCE built on projected regressors
    - engine: xtreg (requires xtset + fe), ivregress 2sls with dedicated
      listwise deletion across depvar/exog/endog/instruments; shared
      coefficient-table renderer extracted
    - fixtures: z1/z2 instrument columns (drawn after existing draws, earlier
      golden values bit-identical), manual within/2SLS algebra in R
    - 75 tests green (swift test and xcodebuild with GPU suites)
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 6 days ago (Aug 5, 2026) · 1 file changed +73 −9
  2. feat(ui): data browser and do-file editor panes
    - DataBrowserPane (§7 pane 3): NSTableView bridge (natively virtualized),
      sortable columns with missing-last ordering, observation-number gutter,
      filter bar compiled to an if-expression through the real parser
      (ZQCommandParser.parseExpression + ZQSession.conditionMask are the new
      public entry points)
    - DoFileEditorPane (§7 pane 2): NSTextView bridge with ZQL highlighting
      (verbs resolved via ZQVerbTable, comments, strings), run selection or
      file with Cmd-R through the shared session path, open/save .zyq
    - ContentView: segmented Console / Data / Do-file switcher in the toolbar
    - UI smoke extended: pane switching, filter narrowing (2 of 5 obs),
      do-file run surfacing in the console and sidebar
    - 61 kit tests + 2 UI tests green
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 6 days ago (Aug 5, 2026) · 1 file changed +16
  3. feat: bootstrap Metrika v0.1 skeleton with working ZQL vertical slice
    - MetrikaKit SPM package: ZQParser, ZQPlanner, ZQEngine, ZQData, ZQStats,
      ZQGPU, ZQGraphics, ZQPlugins (Swift 6, strict concurrency)
    - ZQL parser: lexer, Pratt expressions, factor variables, prefix commands,
      column-cited errors with Levenshtein verb suggestions
    - ZQData: DuckDB-backed load/save (parquet, csv, json, arrow)
    - ZQStats: OLS via LAPACK QR, HC0-HC3 and cluster-robust SE, summarize,
      t/F distributions accurate in the far tails
    - ZQGPU: Philox4x32-10 reference RNG, counter-addressable bootstrap
    - ZQEngine: session actor with use/save/gen/replace/drop/keep/summarize/
      regress/count/list/graph/bootstrap/set seed/xtset/log
    - SwiftUI app (xcodegen): console with history, variables sidebar,
      Swift Charts plots; sandboxed + hardened runtime entitlements
    - Tests: 44 green (parser golden, R fixtures at 1e-10, Philox KAT,
      end-to-end engine); Tests/Fixtures/generate.R; Tests/Bench harness
    - scripts: check_headers.sh + pre-commit hook, make_icns.sh, release.sh
    
    Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
    simon-pierre boucher committed 6 days ago (Aug 5, 2026) · 1 file changed +480