Hello everyone, http://crossclj.info
I've been working on CrossClj for some time now, and I feel it has grown usable (and useful) enough to make a public announcement. CrossClj is a tool to explore the whole Clojure(-script) open-source ecosystem as an interconnected codebase. The source code of Leiningen projects published as Clojars artifacts is rendered as a hypertext; each var occurrence is linked to its definition (namespaces belonging to different artifacts are resolved using maven coordinates), and each reference to a method/class of the standard Java JDK lib is linked to the Oracle documentation. Starting from a var definition, it is possible to list all the qualified occurrences of the var across all the indexed projects; or it is possible to search all namespaces in all projects for vars with a given name. A project should be automatically listed, provided that the following conditions are met: - The project is deployed on Clojars under a public group (not a org.clojars.* user group) - The project uses Leiningen and provides a project.clj with a description. - The project has at least one non-SHAPSHOT release. - Source code is incuded into project's artifact, and hosted publicly on GitHub (i.e. there is a github reference on the project's POM under the url or scm/connection fields). This almost ensures that the source code license is compatible with CrossClj's usage. Some examples illustrating various features: http://crossclj.info/ns/org.clojure/tools.analyzer/0.2.1/clojure.tools.analyzer.html#_macroexpand http://crossclj.info/fun/clojure.core/reduce.html http://crossclj.info/search?q=map http://crossclj.info/ns/ring/ring-core/1.3.0/project.clj.html http://crossclj.info/ns/org.clojure/clojure/1.6.0/clojure.core.html http://crossclj.info/ns/garden/1.1.7/garden.stylesheet.cljs.html The cross-reference index and the website content is updated daily, by looking at Clojars' feed (http://clojars.org/repo/feed.clj.gz), and by fetching the new artifacts that match the above constraints. The impact in terms of bandwidth is negligible. The update process is designed to be fully automated, but as of today it is still initiated manually because there are some quality issues that needs to be worked out. There are some scattered defects in the code analysis, due to my not yet perfect use of the tools.analyzer.* toolchain. Clojurescript macros definitions aren't yet cross-references. The fact that the open source Clojure ecosystem still has a manageable size (about 3500 projects are indexed now) makes this kind of tools very cheap to operate, and opens up many possibilities for the future, like batch-executing other static analysis tools. Francesco Bellomi @fbellomi @crossclojure -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.