This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
- # announcements (21)
- # aws (7)
- # beginners (105)
- # berlin (1)
- # calva (14)
- # cider (20)
- # clj-kondo (62)
- # cljdoc (7)
- # cljsrn (1)
- # clojure (206)
- # clojure-dev (2)
- # clojure-europe (11)
- # clojure-france (2)
- # clojure-italy (2)
- # clojure-nl (1)
- # clojure-uk (34)
- # clojured (1)
- # clojurescript (52)
- # copenhagen-clojurians (2)
- # core-async (1)
- # crux (17)
- # cryogen (3)
- # cursive (36)
- # data-science (27)
- # datomic (48)
- # emacs (1)
- # events (1)
- # fulcro (27)
- # hoplon (51)
- # jobs-discuss (1)
- # leiningen (1)
- # nrepl (2)
- # off-topic (52)
- # pathom (43)
- # quil (10)
- # re-frame (11)
- # reitit (28)
- # remote-jobs (2)
- # shadow-cljs (36)
- # sql (12)
- # tools-deps (7)
- # vim (32)
https://aphyr.com/posts/340-reversing-the-technical-interview also relevant on naming 😄
just for the line
""To know a thing is to name it," you advise. True names have power. The K language was invented by Ursula K. Le Guin, and is among the oldest and tersest forms of magic. To imbue a language with a letter of your own name is to give up an element of your self. Your own initials ache at the memory."
What happened to https://github.com/Datomic/codeq? This looks amazing, but there hasn't been activity in many years. It seems like a kind of essential analysis one would want to perform to understand a large code base, so where is its replacement?
it's a lot easier to query now, but just one of many things in the fire waiting for an opportune time :)
Unfortunately the particularl repo I'm analyzing is a JS project, so codeq won't help beyond inspiration. I'm just surprised this isn't something everyone's doing. Git has been standard for many years now.
@d4hines It's a different thing but we do a sort of similar things (and much more) with CodeScene: https://codescene.io It's a complete product though and not an open source This book talks more about the general ideas behind it: https://pragprog.com/book/atevol/software-design-x-rays
@d4hines I'm not super familiar with those products but in general, both GitPrime and Velocity seems to be (micro?)management tools tailored to measure individual “productivity”.
If you are interested in this stuff I suggest watching https://www.youtube.com/watch?v=KV75YcFoWTo&feature=youtu.be
Also, a limited set of functionalit is available in this open source tool (prior work): https://www.adamtornhill.com/code/codemaat.htm
That looks interesting but a quite different and limited thing. In particular I didn't see any mention about analyzing evolution of code.
It can map git diff's back to the AST, and thus you can identify which language-level constructs were affected by a commit (and from there you can, walk up or down the call graph). It's a lower level tool than Codeq, but it's in a similar space. I'm excited to check out CodeScene though.
@alexmiller are you at liberty to talk about how analysis works on v2? That was the research topic that took my interest.
@d4hines codeq is designed to be language agnostic if you provide the right analyzer
@dominicm it's a Rich thing, so I haven't looked at it, but it's based of some I wrote for a different unreleased project, which was originally based off the first codeq. what aspect are you interested in?
I don't think that part is substantially different than the original codeq, the differences are mostly in how it's stored for analysis and querying
@alexmiller my understanding was that tools.analyzer might be used instead of matching on def*
Just to check I'm following (too much double negative), codeq 2 uses tools.analyzer?
Cool. I had thought there was some reason not to use it, so I was interested to see what the middle ground was between def* and tools.a
Does anyone use Codeq v1 at present? Would it fool-hearty to start a new DB in v1?
Probably tools.analyzer had a lot more bugs circa 2012-2013, before I filed a few dozen against it, and bronsa fixed all of them tirelessly, while I was beating on tools.analyzer through my testing of Eastwood.
The man is phenomenal: https://github.com/clojure/tools.analyzer/graphs/contributors
probably took way less effort to fix the bugs than the time you put in to find them @U0CMVHBL2
tools.analyzer does have one semi-notable limitation, by design if I recall correctly, of not handling the deeper uses of
&env in macro definitions that a few Clojure libraries use.