owais@portfolio
--:--:--
/ blog/3m5k7i7v3fs2b _
blog / 3m5k7i7v3fs2b

Dev Log 16: 2025-11-13

desertthunder.dev

Mccabre

  • This is a code analysis tool I made. It recycles concepts and snippets stashed away as I've been working on beacon.
  • You can check it out here (docsite coming soon - GH actions aren't set up on its mirror)
  • I'm finding that this ends up happening a lot with me, where I start writing a script or a feature and just pull it out and make something small with it.
  • Notable things as far as personal workflows go here is practicing "documentation driven development." I wrote the documentation before the implementations for this project to keep myself on track.

Beacon

  • This project is an exercise in the insanity induced by accruing technical debt.
    • The codebase is huge and the docsite when printed (it's an mdbook site) would be over 100 pages.
    • Pattern matching is a complex feature. It's no wonder it's so recent to Python.
    • Unions in particular required a bit of refactoring
  • I've extended the CLI to render diagnostics behind the debug command (it's not included in release builds)
    • Speaking of which, I need to make a release roadmap for this project
$ beacon debug diagnostics src/

⚡ Running comprehensive diagnostics on 5 file(s)...

✓ 0 Parse Errors

✗ 3 Lint Issues
  ▸ src/main.py:5:1 [BEA015] 'os' imported but never used
    5 import os
             ~~
  ▸ src/utils.py:10:5 [BEA018] 'x' is redefined before being used
    10     x = 2
           ~
  ▸ src/helper.py:3:1 [BEA015] 'sys' imported but never used
    3 import sys
             ~~~

✗ 2 Type Errors
  ▸ src/main.py:12:9 Cannot unify types: Int ~ Str
    12     z = x + y
               ~~~~~
  ▸ src/utils.py:20:5 Undefined type variable: τ5
    20     result = unknown_func()
                    ~~~~~~~~~~~~

Summary: 5 total issue(s) found
  • There's still some work to be done (type solving internals like τ5 are probably useless to an end user)