450:
1041:
180:
1546:
866:
But that's never really been the agenda, see. Some people think we hate GNU code. But the thing is we hate large code, and buggy code that upstream does not maintain. That's the real problem… gcc gets about 5-6% slower every release, has new bugs, generates crappy code, and drives us nuts. This is
247:. It was very influential in its day, so much so that at the beginning of the 1980s, the majority of C compilers were based on it. Anders Magnusson and Peter A Jonsson restarted development of pcc in 2007, rewriting it extensively to support the
335:
The big benefit of it (apart from that it's BSD licensed, for license geeks) is that it is fast, 5-10 times faster than gcc, while still producing reasonable code. <...> t is also quite simple to
301:-generated parser and used a more general target machine model. Both compilers produced target-specific assembly language code which they then assembled to produce linkable object modules.
381:
asserts that pcc is not ready yet to be a gcc replacement, and the disposal of gcc is not top priority. On
December 29, 2009, pcc became capable of building a functional x86
1073:
231:
Being one of the first compilers that could easily be adapted to output code for different computer architectures, the compiler had a long life span. It debuted in
1840:
1777:
297:, and relied on an optional machine-specific optimizer to improve the assembly language code it generated. In contrast, Johnson's pccm was based on a
1845:
361:
source tree. There had been some speculation that it might eventually be used to supplant the GNU C Compiler on BSD-based operating systems, though
1850:
431:
in 2012. Development on it had stalled and no maintainer had stepped up to develop it into something that could make a practical alternative to
777:
1066:
455:
846:
1792:
1748:
1386:
1550:
579:
536:
327:
A new version of pcc, based on the original by Steve
Johnson, is maintained by Anders Magnusson. The compiler is provided under the
1584:
1367:
1276:
1059:
1728:
1485:
236:
1457:
1505:
1515:
1500:
1206:
532:
217:
71:
1462:
1191:
931:
684:
1510:
1216:
1113:
1108:
1103:
42:
1490:
1201:
1149:
1082:
800:
308:
290:
205:
128:
100:
304:
Later versions of PCC, known within Bell Labs as "QCC" and "RCC," supported other target architecture models.
1353:
1328:
501:
Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on
Principles of Programming Languages. Tucson, Arizona.
432:
1371:
1797:
1679:
1313:
463:
1698:
823:
1333:
1765:
1577:
1034:
260:
232:
154:
331:
and its development is funded by a non-profit organization called BSD Fund. According to
Magnusson:
1343:
1305:
1196:
730:
123:
991:
976:
769:
1414:
1179:
961:
748:
711:
565:
514:
492:
209:
30:
880:
319:
return type (for functions that don't return any value), enumerations and structure assignment.
628:
The second ACM SIGPLAN conference on
History of programming languages. Cambridge, Massachusetts
1247:
1242:
1211:
1154:
1144:
598:
575:
413:
312:
275:
854:
1855:
1769:
1743:
504:
138:
107:
1860:
1787:
1570:
1358:
1318:
1226:
885:
689:
544:
1376:
1046:
388:
pcc version 1.0 was released on 1 April 2011. As of this release, the compiler supports
1807:
1733:
1531:
1338:
1264:
1164:
1040:
619:
286:
244:
225:
179:
1834:
1812:
1716:
1434:
1424:
1363:
374:
271:
518:
1404:
1169:
279:
569:
1694:
1684:
1495:
623:
473:
428:
328:
268:
143:
1006:
574:. Unix Programmer's Manual, 7th edition, Volume 2. Holt, Rinehart and Winston.
1139:
1118:
445:
417:
37:
25:
602:
213:
116:
438:
The latest version of pcc, namely 1.1.0, was released on 10 December 2014.
509:
496:
1802:
1659:
1439:
1429:
1409:
1254:
1221:
1159:
1051:
773:
753:
639:
At the start of the decade, nearly every compiler was based on
Johnson's
264:
201:
131:
1755:
1123:
939:
405:
401:
382:
378:
362:
354:
907:
658:
1817:
1706:
1674:
1669:
1664:
1625:
1609:
1594:
1562:
1394:
1291:
1286:
1093:
416:. Further development, including support for more architectures, and
397:
393:
366:
358:
350:
347:
294:
240:
282:
and performs more thorough validity checks than its contemporaries.
1480:
643:; by 1985 there were many independently-produced compiler products.
421:
1738:
1721:
1638:
1419:
1399:
1323:
1271:
1259:
468:
409:
370:
1782:
1711:
1643:
1281:
298:
112:
1566:
1055:
1098:
389:
248:
307:
The language that PCC implements is an extended version of
357:
source trees in
September 2007, and later into the main
867:
just an attempt to see if something better can show up.
216:
in the mid-1970s, based in part on ideas proposed by
1764:
1693:
1652:
1618:
1602:
1524:
1471:
1448:
1385:
1304:
1235:
1178:
1132:
149:
137:
122:
106:
96:
70:
48:
36:
24:
16:
C compiler for Unix and Unix-like operating systems
770:"FreeBSD 10 To Use Clang Compiler, Deprecate GCC"
224:C compiler by Bell Labs... with the blessing of
333:
881:"Call for testing: pcc and the OpenBSD kernel"
1578:
1067:
653:
651:
8:
593:
591:
293:, incorporated specific knowledge about the
19:
200:- portable C compiler machine) is an early
1585:
1571:
1563:
1184:
1074:
1060:
1052:
1039:
497:"A portable compiler: theory and practice"
315:has called "Classic C", incorporating the
263:and improved diagnostic capabilities. The
178:
18:
749:"GCC Compiler Finally Supplanted by PCC?"
508:
801:"HEADS UP: Clang now the default on x86"
537:"A Portable Compiler for the Language C"
822:Joerg, Sonnenberger (17 October 2013).
484:
267:was designed so that only a few of its
571:A Tour Through the Portable C Compiler
424:front ends, is continuing as of 2022.
541:Master's Thesis. MIT, Cambridge, Mass
243:in 1994, when it was replaced by the
7:
685:"BSD Licensed PCC Compiler Imported"
456:Free and open-source software portal
396:processor architectures and runs on
624:"The development of the C language"
1841:C (programming language) compilers
780:from the original on 10 April 2015
346:This new version was added to the
14:
977:"Re: Story behind PCC's removal?"
799:Brooks, Davis (5 November 2012).
427:PCC was removed from the OpenBSD
285:The first C compiler, written by
77:1.1.0 / December 10, 2014
1545:
1544:
1005:Magnusson, Anders (2014-12-10).
906:Magnusson, Anders (2011-04-01).
847:"More on OpenBSD's new compiler"
768:Larabel, Michael (12 May 2012).
448:
373:as a potential replacement, and
1846:Free compilers and interpreters
1851:Software using the BSD license
729:Brownlee, David (2007-09-20).
1:
879:de Weerd, Paul (2009-12-29).
710:Moerbeek, Otto (2007-09-15).
278:. It is relatively robust to
220:in 1973, and "distributed as
975:Peter Hessler (2012-06-18).
938:. 2011-04-01. Archived from
259:Key features of pcc are its
962:"CVS: cvs.openbsd.org: src"
712:"CVS: cvs.openbsd.org: src"
683:Erdely, Mike (2007-09-15).
54:; 45 years ago
1877:
1458:Compatibility of C and C++
990:Miod Vallat (2013-07-31).
960:Paul Irofti (2012-04-12).
845:Matzan, Jem (2007-10-15).
731:"CVS commit: src/dist/pcc"
603:Sibling rivalry: C and C++
43:AT&T Bell Laboratories
1540:
1187:
1089:
663:pcc - portable c compiler
92:
66:
608:(Report). AT&T Labs.
291:recursive descent parser
433:GNU Compiler Collection
1463:Comparison with Pascal
1083:C programming language
992:"Compilers in OpenBSD"
824:"Importing LLVM/Clang"
464:Amsterdam Compiler Kit
344:
206:C programming language
510:10.1145/512760.512771
239:until the release of
79:; 9 years ago
932:"BSD Fund: pcc fund"
369:are both looking to
233:Seventh Edition Unix
1011:Portable C Compiler
912:Portable C Compiler
412:distributions, and
190:Portable C Compiler
21:
20:Portable C Compiler
1653:Notable subsystems
630:. pp. 201–208
620:Ritchie, Dennis M.
599:Stroustrup, Bjarne
210:Stephen C. Johnson
31:Stephen C. Johnson
26:Original author(s)
1828:
1827:
1560:
1559:
1300:
1299:
414:Microsoft Windows
313:Bjarne Stroustrup
276:machine-dependent
235:and shipped with
186:
185:
1868:
1619:Related projects
1603:Operating system
1587:
1580:
1573:
1564:
1548:
1547:
1185:
1180:Standard library
1076:
1069:
1062:
1053:
1043:
1038:
1037:
1035:Official website
1021:
1020:
1018:
1017:
1002:
996:
995:
987:
981:
980:
972:
966:
965:
957:
951:
950:
948:
947:
928:
922:
921:
919:
918:
903:
897:
896:
894:
893:
876:
870:
869:
863:
862:
853:. Archived from
842:
836:
835:
833:
831:
819:
813:
812:
810:
808:
796:
790:
789:
787:
785:
765:
759:
758:
745:
739:
738:
726:
720:
719:
707:
701:
700:
698:
697:
680:
674:
673:
671:
670:
655:
646:
645:
636:
635:
616:
610:
609:
607:
595:
586:
585:
562:
556:
555:
553:
552:
543:. Archived from
529:
523:
522:
512:
489:
458:
453:
452:
451:
342:
341:Anders Magnusson
318:
182:
177:
174:
172:
170:
168:
166:
164:
162:
160:
158:
156:
108:Operating system
87:
85:
80:
62:
60:
55:
22:
1876:
1875:
1871:
1870:
1869:
1867:
1866:
1865:
1831:
1830:
1829:
1824:
1760:
1689:
1648:
1614:
1598:
1591:
1561:
1556:
1536:
1520:
1473:
1467:
1451:other languages
1450:
1449:Comparison with
1444:
1381:
1319:Borland Turbo C
1296:
1236:Implementations
1231:
1174:
1128:
1085:
1080:
1047:Archive at TUHS
1033:
1032:
1029:
1024:
1015:
1013:
1007:"1.1.0 Release"
1004:
1003:
999:
989:
988:
984:
974:
973:
969:
959:
958:
954:
945:
943:
930:
929:
925:
916:
914:
905:
904:
900:
891:
889:
886:OpenBSD Journal
878:
877:
873:
860:
858:
844:
843:
839:
829:
827:
821:
820:
816:
806:
804:
798:
797:
793:
783:
781:
767:
766:
762:
747:
746:
742:
737:(Mailing list).
728:
727:
723:
718:(Mailing list).
709:
708:
704:
695:
693:
690:OpenBSD Journal
682:
681:
677:
668:
666:
657:
656:
649:
633:
631:
618:
617:
613:
605:
597:
596:
589:
582:
564:
563:
559:
550:
548:
531:
530:
526:
491:
490:
486:
482:
454:
449:
447:
444:
343:
340:
325:
323:Current version
316:
257:
192:(also known as
163:/20231212090621
153:
88:
83:
81:
78:
58:
56:
53:
49:Initial release
17:
12:
11:
5:
1874:
1872:
1864:
1863:
1858:
1853:
1848:
1843:
1833:
1832:
1826:
1825:
1823:
1822:
1821:
1820:
1810:
1805:
1800:
1795:
1790:
1785:
1780:
1778:802.11 drivers
1774:
1772:
1762:
1761:
1759:
1758:
1753:
1752:
1751:
1741:
1736:
1731:
1726:
1725:
1724:
1714:
1709:
1703:
1701:
1691:
1690:
1688:
1687:
1682:
1677:
1672:
1667:
1662:
1656:
1654:
1650:
1649:
1647:
1646:
1641:
1636:
1631:
1628:
1622:
1620:
1616:
1615:
1613:
1612:
1606:
1604:
1600:
1599:
1592:
1590:
1589:
1582:
1575:
1567:
1558:
1557:
1555:
1554:
1541:
1538:
1537:
1535:
1534:
1532:Dennis Ritchie
1528:
1526:
1522:
1521:
1519:
1518:
1513:
1508:
1503:
1498:
1493:
1488:
1483:
1477:
1475:
1469:
1468:
1466:
1465:
1460:
1454:
1452:
1446:
1445:
1443:
1442:
1437:
1432:
1427:
1422:
1417:
1412:
1407:
1402:
1397:
1391:
1389:
1383:
1382:
1380:
1379:
1374:
1361:
1356:
1351:
1346:
1341:
1336:
1331:
1326:
1321:
1316:
1310:
1308:
1302:
1301:
1298:
1297:
1295:
1294:
1289:
1284:
1279:
1274:
1269:
1268:
1267:
1257:
1252:
1251:
1250:
1239:
1237:
1233:
1232:
1230:
1229:
1224:
1219:
1214:
1209:
1207:Dynamic memory
1204:
1199:
1194:
1188:
1182:
1176:
1175:
1173:
1172:
1167:
1162:
1157:
1152:
1147:
1142:
1136:
1134:
1130:
1129:
1127:
1126:
1121:
1116:
1111:
1106:
1101:
1096:
1090:
1087:
1086:
1081:
1079:
1078:
1071:
1064:
1056:
1050:
1049:
1044:
1028:
1027:External links
1025:
1023:
1022:
997:
982:
967:
952:
923:
898:
871:
851:The Jem Report
837:
826:(Mailing list)
814:
803:(Mailing list)
791:
760:
740:
735:source-changes
721:
702:
675:
647:
611:
587:
580:
557:
524:
483:
481:
478:
477:
476:
471:
466:
460:
459:
443:
440:
385:kernel image.
338:
324:
321:
287:Dennis Ritchie
256:
253:
245:GNU C Compiler
226:Dennis Ritchie
184:
183:
151:
147:
146:
141:
135:
134:
126:
120:
119:
110:
104:
103:
98:
94:
93:
90:
89:
76:
74:
72:Stable release
68:
67:
64:
63:
50:
46:
45:
40:
34:
33:
28:
15:
13:
10:
9:
6:
4:
3:
2:
1873:
1862:
1859:
1857:
1854:
1852:
1849:
1847:
1844:
1842:
1839:
1838:
1836:
1819:
1816:
1815:
1814:
1811:
1809:
1806:
1804:
1801:
1799:
1796:
1794:
1791:
1789:
1786:
1784:
1781:
1779:
1776:
1775:
1773:
1771:
1767:
1763:
1757:
1754:
1750:
1747:
1746:
1745:
1742:
1740:
1737:
1735:
1732:
1730:
1727:
1723:
1720:
1719:
1718:
1715:
1713:
1710:
1708:
1705:
1704:
1702:
1700:
1696:
1692:
1686:
1683:
1681:
1678:
1676:
1673:
1671:
1668:
1666:
1663:
1661:
1658:
1657:
1655:
1651:
1645:
1642:
1640:
1637:
1635:
1632:
1629:
1627:
1624:
1623:
1621:
1617:
1611:
1608:
1607:
1605:
1601:
1596:
1588:
1583:
1581:
1576:
1574:
1569:
1568:
1565:
1553:
1552:
1543:
1542:
1539:
1533:
1530:
1529:
1527:
1523:
1517:
1514:
1512:
1509:
1507:
1504:
1502:
1499:
1497:
1494:
1492:
1489:
1487:
1484:
1482:
1479:
1478:
1476:
1470:
1464:
1461:
1459:
1456:
1455:
1453:
1447:
1441:
1438:
1436:
1435:Visual Studio
1433:
1431:
1428:
1426:
1425:GNOME Builder
1423:
1421:
1418:
1416:
1413:
1411:
1408:
1406:
1403:
1401:
1398:
1396:
1393:
1392:
1390:
1388:
1384:
1378:
1375:
1373:
1369:
1365:
1364:Visual Studio
1362:
1360:
1357:
1355:
1352:
1350:
1347:
1345:
1342:
1340:
1337:
1335:
1332:
1330:
1327:
1325:
1322:
1320:
1317:
1315:
1312:
1311:
1309:
1307:
1303:
1293:
1290:
1288:
1285:
1283:
1280:
1278:
1275:
1273:
1270:
1266:
1263:
1262:
1261:
1258:
1256:
1253:
1249:
1246:
1245:
1244:
1241:
1240:
1238:
1234:
1228:
1225:
1223:
1220:
1218:
1215:
1213:
1210:
1208:
1205:
1203:
1200:
1198:
1195:
1193:
1190:
1189:
1186:
1183:
1181:
1177:
1171:
1168:
1166:
1163:
1161:
1158:
1156:
1153:
1151:
1148:
1146:
1143:
1141:
1138:
1137:
1135:
1131:
1125:
1122:
1120:
1117:
1115:
1112:
1110:
1107:
1105:
1102:
1100:
1097:
1095:
1092:
1091:
1088:
1084:
1077:
1072:
1070:
1065:
1063:
1058:
1057:
1054:
1048:
1045:
1042:
1036:
1031:
1030:
1026:
1012:
1008:
1001:
998:
993:
986:
983:
978:
971:
968:
963:
956:
953:
942:on 2009-01-05
941:
937:
933:
927:
924:
913:
909:
908:"1.0 Release"
902:
899:
888:
887:
882:
875:
872:
868:
857:on 2012-01-04
856:
852:
848:
841:
838:
825:
818:
815:
802:
795:
792:
779:
775:
771:
764:
761:
756:
755:
750:
744:
741:
736:
732:
725:
722:
717:
713:
706:
703:
692:
691:
686:
679:
676:
664:
660:
659:"pcc history"
654:
652:
648:
644:
642:
629:
625:
621:
615:
612:
604:
600:
594:
592:
588:
583:
581:0-03-061743-X
577:
573:
572:
567:
566:Johnson, S.C.
561:
558:
547:on 2006-09-05
546:
542:
538:
534:
528:
525:
520:
516:
511:
506:
502:
498:
494:
493:Johnson, S.C.
488:
485:
479:
475:
472:
470:
467:
465:
462:
461:
457:
446:
441:
439:
436:
434:
430:
425:
423:
419:
415:
411:
407:
403:
399:
395:
391:
386:
384:
380:
376:
375:Theo de Raadt
372:
368:
364:
360:
356:
352:
349:
337:
332:
330:
322:
320:
314:
310:
305:
302:
300:
296:
292:
288:
283:
281:
280:syntax errors
277:
273:
270:
266:
262:
254:
252:
250:
246:
242:
238:
234:
229:
227:
223:
219:
215:
211:
207:
203:
199:
196:or sometimes
195:
191:
181:
176:
152:
148:
145:
142:
140:
136:
133:
130:
127:
125:
121:
118:
114:
111:
109:
105:
102:
99:
95:
91:
75:
73:
69:
65:
51:
47:
44:
41:
39:
35:
32:
29:
27:
23:
1695:File systems
1633:
1549:
1405:Code::Blocks
1377:Watcom C/C++
1348:
1165:Preprocessor
1145:Header files
1014:. Retrieved
1010:
1000:
985:
970:
955:
944:. Retrieved
940:the original
935:
926:
915:. Retrieved
911:
901:
890:. Retrieved
884:
874:
865:
859:. Retrieved
855:the original
850:
840:
828:. Retrieved
817:
805:. Retrieved
794:
782:. Retrieved
763:
752:
743:
734:
724:
715:
705:
694:. Retrieved
688:
678:
667:. Retrieved
665:. 2010-06-21
662:
640:
638:
632:. Retrieved
627:
614:
570:
560:
549:. Retrieved
545:the original
540:
527:
500:
487:
437:
426:
387:
345:
334:
326:
306:
303:
284:
258:
230:
221:
197:
193:
189:
187:
38:Developer(s)
1685:Rump kernel
1496:Objective-C
1277:Windows CRT
936:bsdfund.org
757:2007-09-17.
716:openbsd-cvs
474:Open Watcom
429:source tree
329:BSD licence
261:portability
218:Alan Snyder
208:written by
144:BSD License
1835:Categories
1770:networking
1472:Descendant
1344:Norcroft C
1170:Data types
1119:Embedded C
1016:2022-04-22
946:2012-06-26
917:2011-12-17
892:2011-12-17
861:2011-12-17
696:2011-12-17
669:2012-06-26
634:2008-12-30
551:2006-07-19
533:Snyder, A.
503:: 97–104.
480:References
418:FORTRAN 77
408:, various
251:standard.
97:Written in
84:2014-12-10
1788:Bluetooth
1766:Firewalls
1717:disklabel
1474:languages
1306:Compilers
1248:libhybris
1150:Operators
1140:Functions
309:K&R C
289:, used a
214:Bell Labs
117:Unix-like
1803:IPFilter
1660:Veriexec
1551:Category
1525:Designer
1440:NetBeans
1430:KDevelop
1410:CodeLite
1255:dietlibc
1222:Variadic
1197:File I/O
1133:Features
830:23 April
807:23 April
784:23 April
778:Archived
774:Phoronix
622:(1993).
601:(2002).
568:(1981).
535:(1975).
519:14390804
495:(1978).
442:See also
339:—
265:compiler
255:Features
237:BSD Unix
204:for the
202:compiler
157:.archive
132:Compiler
1856:OpenBSD
1756:OpenZFS
1699:storage
1597:Project
1415:Eclipse
1368:Express
1124:MISRA C
406:FreeBSD
402:OpenBSD
383:OpenBSD
379:OpenBSD
363:FreeBSD
355:OpenBSD
336:port...
150:Website
139:License
82: (
57: (
1861:NetBSD
1818:pfsync
1707:bioctl
1675:envsys
1670:DTrace
1665:busdma
1630:netpgp
1626:pkgsrc
1610:NetBSD
1595:NetBSD
1395:Anjuta
1292:uClibc
1287:Newlib
1265:EGLIBC
1243:Bionic
1212:String
1160:Syntax
1155:String
1094:ANSI C
578:
517:
398:NetBSD
394:x86-64
367:NetBSD
359:NetBSD
351:pkgsrc
348:NetBSD
295:PDP-11
269:source
241:4.4BSD
165:/http:
1749:WAPBL
1739:tmpfs
1734:PUFFS
1722:fdisk
1639:tnftp
1506:Limbo
1420:Geany
1400:CLion
1324:Clang
1272:klibc
1260:glibc
1227:POSIX
606:(PDF)
515:S2CID
469:Clang
410:Linux
371:Clang
311:that
272:files
169:.ludd
167://pcc
1793:CARP
1783:ALTQ
1768:and
1729:LVM2
1712:CHFS
1697:and
1644:tcsh
1593:The
1516:Vala
1501:Alef
1387:IDEs
1354:SDCC
1282:musl
1217:Time
1202:Math
1192:Char
832:2015
809:2015
786:2015
576:ISBN
420:and
392:and
365:and
353:and
317:void
299:yacc
274:are
198:pccm
188:The
171:.ltu
161:/web
159:.org
124:Type
115:and
113:Unix
59:1979
52:1979
1808:NPF
1798:BPF
1744:UFS
1680:LKM
1634:pcc
1481:C++
1372:C++
1359:TCC
1349:PCC
1339:LCC
1334:ICC
1329:GCC
1314:ACK
1114:C23
1109:C17
1104:C11
1099:C99
641:pcc
505:doi
422:C++
390:x86
377:of
249:C99
228:."
222:the
212:of
194:pcc
173:.se
155:web
1837::
1813:PF
1511:Go
1486:C#
1370:,
1366:,
1009:.
934:.
910:.
883:.
864:.
849:.
776:.
772:.
754:/.
751:.
733:.
714:.
687:.
661:.
650:^
637:.
626:.
590:^
539:.
513:.
499:.
435:.
404:,
400:,
1586:e
1579:t
1572:v
1491:D
1075:e
1068:t
1061:v
1019:.
994:.
979:.
964:.
949:.
920:.
895:.
834:.
811:.
788:.
699:.
672:.
584:.
554:.
521:.
507::
175:/
129:C
101:C
86:)
61:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.