clojure bootstrapping

¿Qué es fn*y cómo funciona Clojure bootstrap?



bootstrapping (1)

La fuente de clojure.core parece asumir la preexistencia de fn* . ¿Dónde se define esto? ¿Qué más se necesita para bootstrap (sobre los tipos de Java existentes)? ¿Cómo se pone todo junto?

Tal vez esto ya se ha preguntado? Me está costando mucho conseguir buenos resultados de búsqueda para fn* .

actualización: Cambié "bootstrap en sí" por "bootstrap" en el título, porque no quería insinuar que Clojure era auto-hosting.


en la línea src / jvm / clojure / lang / Compiler.java 46:

static final Symbol FN = Symbol.intern("fn*");

fn * implementado por el compilador clojure, como otras formas especiales, supongo.

Actualización: en el método analyseSeq, 6452-6353 línea:

if(op.equals(FN)) return FnExpr.parse(context, form, name);

Por favor revisa el código de implementación de la clase FnExpr.