So, I have this blog software you're probably using at the moment (if you're reading this (unless you've subscribed to my rss and are reading a local copy)). It's been through a few rewrites, so there are a few archeological layers around the lisp codebase .
I have had a growing interest on removing, or if impossible, cleaning the older "I'm a Clojure developer writing Lisp and everything's a hashmap" layers AND all the dead code. I was afraid that this would be hard due to lisp leaning on the more dynamic side. I initially decided to tackle this by adding a few macro-generating macros that would keep tabs on who is calling who.
That was not worth the effort.
After that misadventure I remembered that Husku is a smart man and his suggestion about researching if SLIME already does that out of the box warrants... some research.
And whaddayaknow, M-x slime-who-calls requests a list of all loaded functions calling the function under point from the running lisp system. There is also M-x slime-who-references if you want the same list from a defvarred or defparametered symbol. These two made it a lot easier to clean the codebase and remove some bad clojureisms.
There is still the question of "does anyone call these http /api endpoints that are legacy from the time this app used to be an SPA?", but now that the little javascript this app uses is generated from lisp with the help of parenscript , and the routing library I'm using supports route-symbol->actual url transformations, this problem is suddenly trackable with the previously listed SLIME tools.
Buuuuut there is a little problem of murja's urls being a circus full of clowns :D This app currently assumes that its located at the root of the http tree ("/", as they say), and on prod there's a frontend server rewriting all /blog(/.*) -urls into /$1. Obviously on ui every url should contain the prefix if its specified, and shouldn't if we're running on dev. mmontone/easy-routes's genurl doesn't obviously handle that. I have to abstract the prefix-handling into its own murja-specific library, which will be built on easy-routes, before I can begin to analyze the http call graph in earnest.