408:). If Common Lisp source code has been written with appropriate declarations and is organized with speed in mind the Python compiler generates code that is almost free from overhead compared to code compiled from languages like C++. Some inefficiencies such as function call interfaces and lack of pointer-free arrays of user-defined data types are dictated by the Common Lisp standard and still need to be worked around (e.g. by inlining more and using macros to build constructs that look like user-defined structures but are actually accessing fields in preallocated specialized arrays). The Python compiler also features powerful
506:
362:, around 1980. In 1985 Rob MacLachlan started re-writing the compiler to what would become the Python compiler and CMUCL was ported to Unix workstations such as the IBM PC RT, MIPS and SPARC. Early CMUCL releases did not support Intel's x86 architecture due to a lack of registers. CMUCL strictly separated type-tagged and immediate data types and the garbage collector would rely on knowing that one half of the CPU registers could only hold tagged types and the other half only untagged types. This did not leave enough registers for a Python backend.
220:
25:
380:. The problem of lacking registers was solved by a new conservative garbage collector. This new garbage collector accepts any value of any type in the registers, and treats anything that might be a pointer as a pointer for the purpose of not collecting or moving its target.
396:
A machine to interpret compact bytecode (which can be emitted from the compiler). This is rarely used now, but was popular in early CMUCL releases because image sizes were drastically reduced at a time where download bandwidth on the
Internet was
369:
implementation using some of CMUCL's compiler base) maintenance has been taken over by a group of volunteers. By 1996 this group was making regular releases on its own infrastructure.
896:
347:
1055:
412:, helping the programmer in writing overhead-free code by either inferring types automatically or issuing hints about missed optimization opportunities.
46:
39:
1065:
1045:
924:
735:
1060:
89:
583:
423:
61:
1050:
511:
600:
903:
838:
729:
68:
108:
266:
75:
335:
745:
405:
57:
366:
197:
171:
448:
430:
320:
132:
1024:
1013:
686:
576:
889:
35:
680:
640:
613:
519:
343:
1019:
917:
858:
793:
657:
486:
452:
82:
775:
569:
8:
848:
724:
719:
705:
608:
219:
539:
372:
Around the same time a port to Intel's x86 architecture was completed, first running on
967:
635:
462:, the Common Lisp Object System, which includes multimethods and a metaobject protocol.
244:
992:
987:
946:
813:
788:
477:
339:
972:
808:
466:
434:
282:
230:
798:
646:
275:
997:
409:
393:, but can be used for faster loading of Lisp files that don't need compilation.
249:
1039:
977:
962:
470:
313:
287:
206:
441:
982:
592:
316:
259:
853:
624:
359:
139:
127:
863:
823:
713:
652:
433:
which allows interfacing with C code and system libraries, including
327:
24:
696:
401:
271:
910:
828:
818:
756:
373:
358:
The earliest implementation predates Common Lisp and was part of
803:
670:
561:
941:
868:
751:
740:
619:
490:
480:(CLX), and a sophisticated graphical widget library (Garnet).
377:
331:
236:
783:
665:
459:
438:
390:
389:
CMUCL features an interpreter that is mainly used for the
383:
501:
556:
298:
1037:
426:and multiprocessing capability on the x86 ports.
483:Programmer-extensible input and output streams.
365:After CMU canceled the project (in favor of a
577:
1056:Common Lisp (programming language) software
925:Object-Oriented Programming in Common Lisp
584:
570:
465:A graphical source-level debugger using a
218:
109:Learn how and when to remove this message
493:-like editor implemented in Common Lisp.
437:on most platforms, and direct access to
404:named "Python" (not to be confused with
350:was a commercial derivative from CMUCL.
319:implementation, originally developed at
1066:Public-domain software with source code
384:Compiler and other code execution units
1038:
540:"Home · Wiki · cmucl / cmucl · GitLab"
45:Please improve this article by adding
565:
512:Free and open-source software portal
18:
1046:Carnegie Mellon University software
13:
904:The Art of the Metaobject Protocol
730:Another System Definition Facility
14:
1077:
550:
504:
23:
1061:Free compilers and interpreters
591:
406:the Python programming language
16:Free Common Lisp implementation
532:
1:
746:Common Lisp Interface Manager
525:
177:21e / May 14, 2023
47:secondary or tertiary sources
7:
1051:Common Lisp implementations
897:Paradigms of AI Programming
497:
416:
346:is derived from CMUCL. The
338:; there is an experimental
154:; 44 years ago
10:
1082:
449:interprocess communication
431:foreign function interface
353:
321:Carnegie Mellon University
133:Carnegie Mellon University
1014:Common Lisp Object System
1006:
955:
934:
881:
837:
774:
704:
695:
662:ManKai Common Lisp (MKCL)
599:
293:
281:
265:
255:
243:
229:
196:
192:
170:
166:
148:
138:
126:
890:Common Lisp the Language
179:; 16 months ago
1025:Greenspun's tenth rule
681:Steel Bank Common Lisp
641:Embeddable Common Lisp
614:Armed Bear Common Lisp
520:Steel Bank Common Lisp
453:remote procedure calls
344:Steel Bank Common Lisp
34:relies excessively on
1020:Common Lisp HyperSpec
918:Practical Common Lisp
794:Common Music Notation
687:Symbolics Common Lisp
658:Macintosh Common Lisp
458:An implementation of
330:platforms, including
476:An interface to the
348:Scieneer Common Lisp
326:CMUCL runs on most
123:
968:Richard P. Gabriel
636:Corman Common Lisp
424:garbage collection
128:Original author(s)
121:
1033:
1032:
993:Guy L. Steele Jr.
988:Robin Popplestone
947:Guy L. Steele Jr.
877:
876:
789:Common Lisp Music
478:X11 Window System
469:interface, and a
307:
306:
119:
118:
111:
93:
58:"CMU Common Lisp"
1073:
973:Philip Greenspun
935:Design committee
702:
701:
586:
579:
572:
563:
562:
544:
543:
536:
514:
509:
508:
507:
435:shared libraries
303:
300:
231:Operating system
222:
217:
214:
212:
210:
208:
187:
185:
180:
162:
160:
155:
124:
120:
114:
107:
103:
100:
94:
92:
51:
27:
19:
1081:
1080:
1076:
1075:
1074:
1072:
1071:
1070:
1036:
1035:
1034:
1029:
1002:
951:
930:
873:
840:
833:
770:
716:Library Manager
691:
647:GNU Common Lisp
630:CMU Common Lisp
601:Implementations
595:
590:
557:CMUCL Home Page
553:
548:
547:
538:
537:
533:
528:
510:
505:
503:
500:
419:
410:type inferences
386:
356:
297:
225:
205:
188:
183:
181:
178:
158:
156:
153:
149:Initial release
115:
104:
98:
95:
52:
50:
44:
40:primary sources
28:
17:
12:
11:
5:
1079:
1069:
1068:
1063:
1058:
1053:
1048:
1031:
1030:
1028:
1027:
1022:
1017:
1010:
1008:
1004:
1003:
1001:
1000:
998:Daniel Weinreb
995:
990:
985:
980:
975:
970:
965:
959:
957:
953:
952:
950:
949:
944:
938:
936:
932:
931:
929:
928:
921:
914:
907:
900:
893:
885:
883:
879:
878:
875:
874:
872:
871:
866:
861:
856:
851:
845:
843:
835:
834:
832:
831:
826:
821:
816:
811:
806:
801:
796:
791:
786:
780:
778:
772:
771:
769:
768:
765:
762:
759:
754:
749:
743:
738:
733:
727:
722:
717:
710:
708:
699:
693:
692:
690:
689:
684:
678:
673:
668:
663:
660:
655:
650:
644:
638:
633:
627:
622:
617:
611:
605:
603:
597:
596:
589:
588:
581:
574:
566:
560:
559:
552:
551:External links
549:
546:
545:
530:
529:
527:
524:
523:
522:
516:
515:
499:
496:
495:
494:
484:
481:
474:
463:
456:
445:
427:
418:
415:
414:
413:
400:A native code
398:
394:
385:
382:
355:
352:
342:port as well.
305:
304:
295:
291:
290:
285:
279:
278:
269:
263:
262:
257:
253:
252:
250:Cross-platform
247:
241:
240:
239:-compliant OSs
233:
227:
226:
224:
223:
202:
200:
194:
193:
190:
189:
176:
174:
172:Stable release
168:
167:
164:
163:
150:
146:
145:
142:
136:
135:
130:
117:
116:
31:
29:
22:
15:
9:
6:
4:
3:
2:
1078:
1067:
1064:
1062:
1059:
1057:
1054:
1052:
1049:
1047:
1044:
1043:
1041:
1026:
1023:
1021:
1018:
1015:
1012:
1011:
1009:
1005:
999:
996:
994:
991:
989:
986:
984:
981:
979:
978:David A. Moon
976:
974:
971:
969:
966:
964:
963:Scott Fahlman
961:
960:
958:
954:
948:
945:
943:
940:
939:
937:
933:
927:
926:
922:
920:
919:
915:
913:
912:
908:
906:
905:
901:
899:
898:
894:
892:
891:
887:
886:
884:
880:
870:
867:
865:
862:
860:
857:
855:
852:
850:
847:
846:
844:
842:
836:
830:
827:
825:
822:
820:
817:
815:
812:
810:
807:
805:
802:
800:
797:
795:
792:
790:
787:
785:
782:
781:
779:
777:
773:
766:
763:
760:
758:
755:
753:
750:
747:
744:
742:
739:
737:
734:
731:
728:
726:
723:
721:
718:
715:
712:
711:
709:
707:
703:
700:
698:
694:
688:
685:
682:
679:
677:
674:
672:
669:
667:
664:
661:
659:
656:
654:
651:
648:
645:
642:
639:
637:
634:
631:
628:
626:
623:
621:
618:
615:
612:
610:
607:
606:
604:
602:
598:
594:
587:
582:
580:
575:
573:
568:
567:
564:
558:
555:
554:
541:
535:
531:
521:
518:
517:
513:
502:
492:
488:
485:
482:
479:
475:
472:
471:code profiler
468:
464:
461:
457:
454:
450:
446:
443:
440:
436:
432:
428:
425:
422:Generational
421:
420:
411:
407:
403:
399:
395:
392:
388:
387:
381:
379:
375:
370:
368:
363:
361:
351:
349:
345:
341:
337:
333:
329:
324:
322:
318:
315:
311:
302:
296:
292:
289:
288:Public domain
286:
284:
280:
277:
273:
270:
268:
264:
261:
258:
254:
251:
248:
246:
242:
238:
234:
232:
228:
221:
216:
204:
203:
201:
199:
195:
191:
175:
173:
169:
165:
151:
147:
143:
141:
137:
134:
131:
129:
125:
113:
110:
102:
91:
88:
84:
81:
77:
74:
70:
67:
63:
60: –
59:
55:
54:Find sources:
48:
42:
41:
37:
32:This article
30:
26:
21:
20:
923:
916:
909:
902:
895:
888:
882:Publications
841:environments
776:Applications
725:AllegroServe
720:AllegroCache
675:
629:
534:
447:Support for
442:system calls
371:
364:
357:
325:
309:
308:
256:Available in
209:.common-lisp
140:Developer(s)
105:
96:
86:
79:
72:
65:
53:
33:
983:Kent Pitman
839:Development
676:Scieneer CL
593:Common Lisp
317:Common Lisp
260:Common Lisp
1040:Categories
854:Clozure CL
849:Allegro CL
625:Clozure CL
609:Allegro CL
526:References
360:Spice Lisp
198:Repository
184:2023-05-14
152:Early 1980
69:newspapers
36:references
864:LispWorks
824:OpenMusic
714:Quicklisp
706:Libraries
653:LispWorks
328:Unix-like
767:Weblocks
764:Ironclad
736:Caveman2
697:Software
498:See also
417:Features
402:compiler
376:, later
272:Compiler
245:Platform
235:Several
99:May 2022
911:On Lisp
859:Hemlock
829:StumpWM
819:N-World
757:CL-HTTP
632:(CMUCL)
487:Hemlock
374:FreeBSD
354:History
340:Windows
294:Website
283:License
276:runtime
182: (
157: (
144:Various
83:scholar
1016:(CLOS)
956:People
814:Maxima
804:FriCAS
748:(CLIM)
732:(ASDF)
683:(SBCL)
671:Poplog
616:(ABCL)
215:/cmucl
213:/cmucl
207:gitlab
85:
78:
71:
64:
56:
1007:Other
942:X3J13
869:SLIME
809:Mirai
752:CLSQL
741:CLiki
649:(GCL)
643:(ECL)
620:CLISP
491:Emacs
489:, an
467:Motif
378:Linux
367:Dylan
332:Linux
312:is a
310:CMUCL
299:cmucl
237:POSIX
122:CMUCL
90:JSTOR
76:books
799:ICAD
784:ACL2
666:Mocl
460:CLOS
451:and
439:Unix
397:low.
391:REPL
334:and
314:free
301:.org
274:and
267:Type
211:.net
159:1980
62:news
761:CLX
336:BSD
38:to
1042::
429:A
323:.
49:.
585:e
578:t
571:v
542:.
473:.
455:.
444:.
186:)
161:)
112:)
106:(
101:)
97:(
87:·
80:·
73:·
66:·
43:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.