Fork me on GitHub

Ooh I found a good mystery Why doesn't this line have the effect it looks like it has?


To me, the effect that it looks like it has is to add a :doc key to the metadata of namespace clojure.core. Are you saying it does not have that effect?


Because in a Clojure 1.9.0 repl, I see that string value for the :doc key of (meta (the-ns 'clojure.core))


hmm okay I see that too so now the question is what's wrong with this other repl I guess


wow I definitely had a repl that started off with the other docstring, and now I can't reproduce that state


I was definitely messing around with require and stuff, but I can't think of how that might have happened


but anyhow I hope we can all agree that it's pretty weird that clojure.core's docstring appears on line 6743

Alex Miller (Clojure team)01:11:01

Bootstrapping ns is weird

Alex Miller (Clojure team)01:11:26

There was an old bug that broke ns meta in aot

Alex Miller (Clojure team)01:11:42

But that was fixed several releases ago

Alex Miller (Clojure team)01:11:51

The really weird thing is that the ns line at the beginning of core works at all (before we’ve defined ns or defmacro or ... anything)


bootstrapping ns is extremely strange and begs lots of questions about the what belongs where


RT's static section has the weirdest stuff in it


it doesn't do a whole lot; one of the things it does is set metadata on #'*agent*


final static IFn bootNamespace = new AFn(){
	public Object invoke(Object __form, Object __env,Object arg1) {
		Symbol nsname = (Symbol) arg1;
		Namespace ns = Namespace.findOrCreate(nsname);
		return ns;


the docstring at the top of core.clj is given as metadata on the symbol rather than the normal way, which is why this IFn only needs three args


and it clearly ignores the metadata on the symbol


so clojure.core should have no docstring before line 6743


I want to work on a solution for, but before I delve too deep I would like to understand the core team’s position a bit more


my understanding is that the the objections so far have been more about the proposed solutions rather than the validity of the problem itself?


is there still interest for a patch to this, if that patch addresses all the concerns already mentioned in the issue?

Alex Miller (Clojure team)17:11:07

Cleaner Java interop around varargs would be great, imo

Alex Miller (Clojure team)17:11:00

if we can find a path that feels like idiomatic Clojure and does not leave ambiguity around the various cases

mario-star 4

nice, then I will have at it! 🙂

Alex Miller (Clojure team)17:11:55

methodical and exhaustive analysis appreciated :)


@schmee I would love you forever if you got a nice solution to that 🙂

👍 8