CMUCL — это бесплатная реализация Common Lisp , первоначально разработанная в Университете Карнеги-Меллон .
CMUCL работает на большинстве Unix-подобных платформ, включая Linux и BSD ; также существует экспериментальный порт для Windows . Steel Bank Common Lisp является производным от CMUCL. Scieneer Common Lisp был коммерческой производной от CMUCL.
Самая ранняя реализация предшествовала Common Lisp и была частью Spice Lisp , примерно в 1980 году. В 1985 году Роб Маклахлан начал переписывать компилятор так, чтобы он стал компилятором Python, а CMUCL был портирован на рабочие станции Unix, такие как IBM PC RT, MIPS и SPARC. . Ранние выпуски CMUCL не поддерживали архитектуру Intel x86 из-за отсутствия регистров. CMUCL строго разделяет типы данных с тегами типа и непосредственные типы данных, и сборщик мусора будет полагаться на знание того, что одна половина регистров ЦП может хранить только тегированные типы, а другая половина - только нетегированные типы. Это не оставило достаточного количества регистров для серверной части Python.
После того, как CMU отменил проект (в пользу реализации Dylan с использованием некоторой базы компилятора CMUCL), обслуживание взяла на себя группа добровольцев. К 1996 году эта группа уже регулярно выпускала релизы на собственной инфраструктуре.
Примерно в то же время был завершен порт на архитектуру Intel x86, сначала работавшую на FreeBSD , а затем на Linux . Проблему отсутствия регистров решил новый консервативный сборщик мусора. Этот новый сборщик мусора принимает любое значение любого типа в регистрах и рассматривает все, что может быть указателем, как указатель, чтобы не собирать и не перемещать свою цель.