CMUCL es una implementación gratuita de Common Lisp , desarrollada originalmente en la Universidad Carnegie Mellon .
CMUCL funciona en la mayoría de plataformas similares a Unix , incluidas Linux y BSD ; también existe una versión experimental para Windows . Steel Bank Common Lisp se deriva de CMUCL. Scieneer Common Lisp fue un derivado comercial de CMUCL.
La primera implementación es anterior a Common Lisp y fue parte de Spice Lisp , alrededor de 1980. En 1985, Rob MacLachlan comenzó a reescribir el compilador a lo que se convertiría en el compilador Python y CMUCL se trasladó a estaciones de trabajo Unix como IBM PC RT, MIPS y SPARC. Las primeras versiones de CMUCL no admitían la arquitectura x86 de Intel debido a la falta de registros. CMUCL separaba estrictamente los tipos de datos etiquetados y los inmediatos, y el recolector de basura se basaría en saber que la mitad de los registros de la CPU solo podían contener tipos etiquetados y la otra mitad solo tipos sin etiquetar. Esto no dejaba suficientes registros para un backend de Python.
Después de que CMU cancelara el proyecto (a favor de una implementación de Dylan que utilizara parte de la base del compilador de CMUCL), un grupo de voluntarios se hizo cargo del mantenimiento. En 1996, este grupo estaba realizando lanzamientos regulares en su propia infraestructura.
Casi al mismo tiempo se completó un port a la arquitectura x86 de Intel, primero ejecutándose en FreeBSD y luego en Linux . El problema de la falta de registros se resolvió con un nuevo recolector de basura conservador. Este nuevo recolector de basura acepta cualquier valor de cualquier tipo en los registros y trata cualquier cosa que pueda ser un puntero como un puntero con el propósito de no recolectar o mover su objetivo.