bull7.html 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318
  1. <!-- This HTML file has been created by texi2html 1.30
  2. from bull7.texi on 28 January 1995 -->
  3. <TITLE>GNU's Bulletin, vol. 1 no. 7 -- June, 1989</TITLE>
  4. <H1>GNU's Bulletin, vol. 1 no. 7 -- June, 1989</H1>
  5. <P>
  6. <HR>
  7. <P>
  8. The GNU's Bulletin is the semi-annual newsletter of the Free Software
  9. Foundation, bringing you news about the GNU Project.
  10. <P>
  11. Free Software Foundation, Inc. Telephone: (617) 876-3296 <BR> 675
  12. Massachusetts Avenue Electronic mail: gnu@prep.ai.mit.edu <BR>
  13. Cambridge, MA 02139 USA
  14. <P>
  15. <HR>
  16. <P>
  17. <H1><A NAME="SEC3" HREF="bull7_toc.html#SEC3">GNU's Who</A></H1>
  18. <P>
  19. Some new people have joined our full-time staff. <B>Joseph Arceneaux</B>
  20. is working on Emacs version 19. Soon to arrive are <B>Karl Berry</B>,
  21. <B>Kathy Hargreaves</B>, and <B>Jim Kingdon</B>. <B>Randy Smith</B>, who has
  22. been working on GDB, will be leaving us for grad school in the fall.
  23. <P>
  24. <B>Mike Haertel</B> is back with us, working on a new, more efficient
  25. malloc and on finishing the C interpreter started by Nobuyuki Hikichi.
  26. <B>Roland McGrath</B> has been hired for the summer to complete the ANSI C
  27. library which he started.
  28. <P>
  29. <B>Brian Fox</B> is still working for us at UC Santa Barbara. He is
  30. beta-releasing BASH, the `Bourne Again SHell' which is the GNU version
  31. of <CODE>sh</CODE> that incorporates extensions found in the Korn and C
  32. shells. <B>Jay Fenlason</B> is writing the GNU spreadsheet program Oleo,
  33. and maintaining the GNU assembler, <CODE>tar</CODE> and <CODE>sed</CODE>. Jay also
  34. takes care of our backups and creating distribution tapes. <B>Diane
  35. Barlow Close</B>, our first full-time technical writer, is writing the
  36. documentation for all of the small Unix utilities that have been
  37. completed for us, while living in San Diego, CA.
  38. <P>
  39. <B>Opus Goldstein</B> is our jack-of-all-trades office staff. If you call
  40. our office, she is the one who answers. She fills the orders, and
  41. handles the day-to-day operations of the Foundation. <B>Robert
  42. Chassell</B> is our Treasurer. Besides dealing with foundation issues not
  43. related to programming, he is working on an elementary introduction to
  44. programming in Emacs Lisp.
  45. <P>
  46. <B>Richard Stallman</B> continues as a volunteer to do countless tasks,
  47. including refining the C compiler, GNU Emacs, etc. and their
  48. documentation. Finally, volunteer <B>Len Tower</B> continues as our
  49. electronic JOAT (jack-of-all-trades), handling mailing lists,
  50. information requests, system mothering, etc.
  51. <P>
  52. <HR>
  53. <P>
  54. <H3><A NAME="SEC4" HREF="bull7_toc.html#SEC4">GNU's Bulletin</A></H3>
  55. <P>
  56. Copyright (C) 1989 Free Software Foundation, Inc.
  57. <P>
  58. Written by: Joseph Arceneaux, Robert Chassell, John Gilmore, <BR> Leonard
  59. H. Tower Jr., and Richard Stallman
  60. <P>
  61. Illustrations: Etienne Suvasa
  62. <P>
  63. <BLOCKQUOTE>
  64. Permission is granted to anyone to make or distribute verbatim copies of
  65. this document as received, in any medium, provided that the copyright
  66. notice and permission notice are preserved, and that the distributor
  67. grants the recipient permission for further redistribution as permitted
  68. by this notice.
  69. </BLOCKQUOTE>
  70. <P>
  71. <H1><A NAME="SEC5" HREF="bull7_toc.html#SEC5">What Is the Free Software Foundation?</A></H1>
  72. <P>
  73. The Free Software Foundation is dedicated to eliminating restrictions on
  74. copying, redistribution, understanding and modification of computer
  75. programs. We do this by promoting the development and use of free
  76. software in all areas of computer use. Specifically, we are putting
  77. together a complete integrated software system called "GNU" (GNU's Not
  78. Unix) that will be upward compatible with Unix. Some large parts of
  79. this system are already working and we are distributing them now.
  80. <P>
  81. The word "free" in our name refers to two specific freedoms: first,
  82. the freedom to copy a program and give it away to your friends and
  83. co-workers; second, the freedom to change a program as you wish, by
  84. having full access to source code. Furthermore, you can study the
  85. source and learn how such programs are written. You may then be able to
  86. port it, improve it, and share your changes with others.
  87. <P>
  88. Other organizations distribute whatever free software happens to be
  89. available. By contrast, FSF concentrates on development of new free
  90. software, building toward a GNU system complete enough to eliminate the
  91. need to purchase a proprietary system.
  92. <P>
  93. Besides developing GNU, the Foundation has secondary functions:
  94. producing tapes and printed manuals of GNU software, carrying out
  95. distribution, and accepting gifts to support GNU development. We are
  96. tax exempt; you can deduct donations to us on your tax returns. Our
  97. development effort is funded partly from donations and partly from
  98. distribution fees. Note that the distribution fees purchase just the
  99. service of distribution: you never have to pay anyone license fees to
  100. use GNU software, and you always have the freedom to make your copy from
  101. a friend's computer at no charge (provided your friend is willing).
  102. <P>
  103. The Foundation also maintains a Service Directory: a list of people who
  104. offer service for pay to users of GNU programs and systems. Service can
  105. mean answering questions for new users, customizing programs, porting to
  106. new systems, or anything else. Contact us if you want to be listed.
  107. <P>
  108. After we create our programs, we continually update and improve them.
  109. We release between 2 and 20 updates a year for each program. Doing this
  110. while developing new programs takes a lot of work, so any donations of
  111. pertinent source code and documentation, machines, labor or money are
  112. always appreciated.
  113. <P>
  114. The board of the Foundation is: Richard Stallman, President; Robert
  115. Chassell, Treasurer; Gerald J. Sussman, Harold Abelson and Leonard H.
  116. Tower Jr., Directors.
  117. <P>
  118. <H1><A NAME="SEC6" HREF="bull7_toc.html#SEC6">What Is Copyleft?</A></H1>
  119. <P>
  120. In the section entitled "What Is the Free Software Foundation," we
  121. state that "you never have to pay anyone license fees to use GNU
  122. software, and you always have the freedom to make your copy from a
  123. friend's computer at no charge." What exactly do we mean by this, and
  124. how do we make sure that it stays true?
  125. <P>
  126. The simplest way to make a program free is to put it in the public
  127. domain. Then people who get it from sharers can share it with others.
  128. But bad citizens can also do what they like to do: sell binary-only
  129. versions under typical don't-share-with-your-neighbor licenses. They
  130. would thus enjoy the benefits of the freeness of the original program
  131. while withholding these benefits from the users. It could easily come
  132. about that most users get the program this way, and our goal of making
  133. the program free for <EM>all</EM> users would have been undermined.
  134. <P>
  135. To prevent this from happening, we don't normally place GNU programs in
  136. the public domain. Instead, we protect them by what we call
  137. <DFN>copylefts</DFN>. A copyleft is a legal instrument that makes everybody
  138. free to copy a program as long as the person getting the copy gets with
  139. it the freedom to distribute further copies, and the freedom to modify
  140. their copy (which means that they must get access to the source code).
  141. Typical software companies use copyrights to take away these freedoms;
  142. now we software sharers use copylefts to preserve these freedoms.
  143. <P>
  144. The copyleft used by the GNU project is made from a combination of a
  145. copyright notice and the <DFN>GNU General Public License</DFN>. The
  146. copyright notice is the usual kind. The General Public License is a
  147. copying license which basically says that you have the freedoms we want
  148. you to have and that you can't take these freedoms away from anyone
  149. else. (The actual document consists of several pages of rather
  150. complicated legalbol that our lawyer said we needed.) The complete
  151. license is included in all GNU source code distributions and many
  152. manuals, and we will send you a printed copy on request.
  153. <P>
  154. Recently the Foundation made a dramatic change in the General Public
  155. License. The terms for copying remain unchanged, but the structure of
  156. the license is different, and it is now easier to copyleft programs.
  157. The License is now essentially a subroutine, and programs need only
  158. state that the General Public License applies to them. Specifics on
  159. using the License now accompany it, so refer there for details.
  160. <P>
  161. <BLOCKQUOTE>
  162. <EM>"As we enjoy great advantages from the inventions of others, we
  163. should be glad of an opportunity to serve others by any invention of
  164. ours"</EM>
  165. </BLOCKQUOTE>
  166. <P>
  167. --Benjamin Franklin
  168. <P>
  169. <H1><A NAME="SEC7" HREF="bull7_toc.html#SEC7">GNUs Flashes</A></H1>
  170. <P>
  171. <UL>
  172. <P>
  173. <LI>
  174. <B>Anonymous Donation</B>
  175. <P>
  176. We have received a surprise donation of $100,000 from an English person
  177. who wishes to remain anonymous. This, plus the $100,000 we have just
  178. received from Hewlettf-Packard, and the $25,000 we have received from
  179. the Open Software Foundation, has enabled us to hire several new
  180. employees.
  181. <P>
  182. <LI>
  183. <B>New Version of RCS Distributed with Compiler</B>
  184. <P>
  185. We are now distributing the latest version (V4 from Purdue) of RCS, the
  186. Revision Control System.
  187. <P>
  188. <LI>
  189. <B>BASH Now Available</B>
  190. <P>
  191. Brian Fox has just released the `Bourne Again SHell' for Beta testing.
  192. <P>
  193. <LI>
  194. <B>GNU Emacs Lisp Manual</B>
  195. <P>
  196. The GNU Emacs Lisp Reference manual should be published this summer.
  197. <P>
  198. <LI>
  199. <B>New <CODE>qsort</CODE>, <CODE>gdbm</CODE></B>
  200. <P>
  201. We now have an improved <CODE>qsort</CODE> which is faster than Berkeley's and
  202. is also reentrant. It will be released in the future with the GNU C
  203. Library.
  204. <P>
  205. Our <CODE>gdbm</CODE> library is about to be tested. A <CODE>gdbm</CODE> data base
  206. consists of one file with no large holes. <CODE>gdbm</CODE> supports fancy
  207. automatic crash recovery and interlocking. It handles keys and data of
  208. unlimited size.
  209. <P>
  210. <LI>
  211. <B>File Manipulation Utilities</B>
  212. <P>
  213. A collection of utilities for file manipulation, including <CODE>ls</CODE>,
  214. <CODE>mv</CODE>, <CODE>cp</CODE>, <CODE>cat</CODE>, <CODE>rm</CODE>, <CODE>du</CODE>, <CODE>head</CODE>,
  215. <CODE>tail</CODE> and <CODE>cmp</CODE> will be released soon.
  216. <P>
  217. <LI>
  218. <B>GPC: GNU Pascal Compiler</B>
  219. <P>
  220. Some volunteers from Helsinki University of Technology are now working
  221. on a Pascal front-end for GCC. Currently they support a subset of the
  222. language.
  223. <P>
  224. <LI>
  225. <B>Some Parts of BSD are Becoming Free</B>
  226. <P>
  227. Berkeley has now released those parts of their Unix system not
  228. containing AT&#38;T code, including the TCP/IP code. The files freed in the
  229. 4.3 BSD-Tahoe distribution are now on our beta test tape.
  230. <P>
  231. Also, the next release of Berkeley Unix may contain Make, AWK, and
  232. <CODE>sh</CODE> from the GNU Project. Berkeley will also be distributing GCC
  233. in place of their PCC-based compiler.
  234. <P>
  235. <LI>
  236. <B>NeXT, Inc. Using GCC as Production Compiler</B>
  237. <P>
  238. NeXT uses GCC to compile their entire system, including their kernel.
  239. <P>
  240. <LI>
  241. <B>Distribution of 80386 Floppies Happening Soon</B>
  242. <P>
  243. This will probably take two forms, via 1.2 megabyte diskettes and
  244. through an electronic BBS. It's possible that the newly reactivated
  245. Programming Language SIG of the Boston Computer Society will be one of
  246. the major routes of distribution.
  247. <P>
  248. </UL>
  249. <P>
  250. <H1><A NAME="SEC8" HREF="bull7_toc.html#SEC8">Programming Freedom Activism</A></H1>
  251. <P>
  252. by Richard Stallman
  253. <P>
  254. <BLOCKQUOTE>
  255. <P>
  256. <EM>"To benefit by the discoveries of his fellowmen is thus not only a
  257. natural right, it is also the natural duty which every man owes to
  258. himself and to society; and the mutual, universal progress thence
  259. resulting is the fulfillment of the earthy destiny of the human race."</EM>
  260. <P>
  261. </BLOCKQUOTE>
  262. <P>
  263. Robinson, <I>"Treatise on the Law of Patents."</I>
  264. <P>
  265. <H2><A NAME="SEC9" HREF="bull7_toc.html#SEC9">Interface Copyright Battle Gaining Speed</A></H2>
  266. <P>
  267. The battle against user interface copyrighting is gathering momentum.
  268. GNU founder Richard Stallman joined MIT professors Gerald J. Sussman and
  269. Marvin Minsky in placing an ad in <I>The Tech</I>, MIT's student newspaper,
  270. warning of the harm that such monopolies could do to computer users and
  271. the computer industry. Here is the text of the ad:
  272. <P>
  273. <HR>
  274. <P>
  275. Apple and Lotus are trying to create a new form of legal monopoly: a
  276. copyright on a class of user interfaces. These monopolies would cause
  277. serious problems for users and developers of computer software and
  278. systems.
  279. <P>
  280. Until two years ago, the law seemed clear: no one could restrict others
  281. from using a user interface; programmers were free to implement any
  282. interface they chose. Imitating interfaces, sometimes with changes, was
  283. standard practice in the computer field. The interfaces we know evolved
  284. gradually in this way; for example, the Macintosh user interface was
  285. developed over fifteen years at Stanford, SRI, Xerox and other places.
  286. Hundreds of students and researchers contributed to this effort, and no
  287. one has a right to own it all now.
  288. <P>
  289. Most computer companies, and nearly all computer users, are happy with
  290. this state of affairs. Lotus and Apple say it does not offer "enough
  291. incentive" to develop their products, but they must have considered it
  292. "enough" when they made their decision to do so. It seems they are
  293. not satisfied with the opportunity to continue to compete in the
  294. marketplace--not even with a head start.
  295. <P>
  296. If Lotus and Apple are permitted to make law through the courts, the
  297. precedent will hobble the software industry:
  298. <P>
  299. <UL>
  300. <LI>
  301. Gratuitous incompatibilities will burden users. Imagine if each car
  302. manufacturer had to arrange the pedals in a different order.
  303. <P>
  304. <LI>
  305. Software will become and remain more expensive. Users will be "locked
  306. in" to proprietary interfaces, for which there is no real competition.
  307. <P>
  308. <LI>
  309. Large companies have an unfair advantage wherever lawsuits become
  310. commonplace. Since they can easily afford to sue, they can intimidate
  311. small companies with threats even when they don't really have a case.
  312. <P>
  313. <LI>
  314. User interface improvements will come slower, since incremental
  315. evolution through creative imitation will no longer be permitted.
  316. <P>
  317. <LI>
  318. Even Apple and Lotus will find it harder to make improvements if they
  319. can no longer adapt the good ideas that others introduce, for fear of
  320. weakening their own legal positions. Some users suggest that this
  321. stagnation may already have started.
  322. </UL>
  323. <P>
  324. Express your opinion! Reconsider your plans! You can make a
  325. difference.
  326. <P>
  327. <HR>
  328. <P>
  329. Reporters from the Boston Globe and Computer Reseller News saw the ad
  330. and then published articles in their papers. Followups to the Globe
  331. article then appeared in Computerworld and InfoWorld. The InfoWorld
  332. article was seen by a public relations agent who is donating time to
  333. help fight the user interface copyright. Additionally, several lawyers
  334. have asked for our help to find useful expert witnesses.
  335. <P>
  336. On Wednesday, May 24th the League for Programming Freedom picketed Lotus
  337. Development Corporation in Cambridge. Despite a heavy threat of rain,
  338. some 200 people showed up for the demonstration carrying signs and
  339. handing out flyers. Attendees included Bryan S. Kocher, President of
  340. the ACM, and Patrick Winston, head of MIT's AI Lab. The protest was led
  341. by FSF founder Richard Stallman.
  342. <P>
  343. If you would like to help fight for the freedom to write programs, you
  344. can do so by joining and working for the League for Programming Freedom.
  345. Since the League is still being organized, it does not have an address
  346. of its own. For the moment, you may phone or write to the League in
  347. care of the Free Software Foundation. Note, however, that the League
  348. will be an entirely separate organization from the Foundation with
  349. different agendas and personnel. The League will be exclusively devoted
  350. to fighting monopolistic attempts to limit the freedom of programmers to
  351. develop software.
  352. <P>
  353. <H2><A NAME="SEC10" HREF="bull7_toc.html#SEC10">Dangerous Legislation Proposed</A></H2>
  354. <P>
  355. Legislation has been proposed by Senator Orrin Hatch to prohibit the
  356. lending and rental of software by <EM>anyone</EM>, including private
  357. individuals. Similar legislation has been considered for musical
  358. recordings. Such legislation would be an aggressive attack on the
  359. traditional freedom to borrow and lend. Libraries could eventually be
  360. forced into oblivion if they begin limiting their contents to media
  361. which become obsolete.
  362. <P>
  363. Hatch and other supporters of this bill reason that software publishers
  364. are losing much money because people only borrow the software to make
  365. copies. Libraries that lend software say this is untrue, but even if it
  366. were, this would be insufficient reason for such an attack on our
  367. liberties. There is essentially no resistance on Capitol Hill to this
  368. legislation; the software publishers have been very outspoken in their
  369. position, but there has been little or no effort made to explain the
  370. interests of users.
  371. <P>
  372. The only resistance to this proposal has been from the American Library
  373. Association, who have obtained language in the bill which would exempt
  374. libraries from this legislation for a three year test period. It seems
  375. likely, however, that software publishers will only continue complaining
  376. about "lost" profits and at the end of the test period even libraries
  377. will be prohibited from lending software.
  378. <P>
  379. Regaining these rights will be much more difficult than making an effort
  380. to preserve them now. Please help alarm people about this problem.
  381. Write to Senator Hatch and Representative Dennis DeConcini as well as
  382. your own legislators and ask them to vote against bill S.198, the
  383. Computer Software Rental Amendments Act. A sufficient address is:
  384. <P>
  385. You can also phone senators and representatives at (202) 225-3121, or
  386. look in your phone directory for their local offices.
  387. <P>
  388. <H2><A NAME="SEC11" HREF="bull7_toc.html#SEC11">Common Knowledge's Universal Index</A></H2>
  389. <P>
  390. There is also an international group called Common Knowledge working to
  391. compile public domain, copyright free and machine-readable information.
  392. The group, consisting of journalists, scientists, librarians and others,
  393. is amassing a database of non-copyrighted information which they call
  394. the "Universal Index". They are doing this to provide an alternative
  395. to the information merchants, who are increasingly successful at
  396. reducing the amount of material available to traditional libraries.
  397. Their address is:
  398. <P>
  399. <PRE>
  400. Common Knowledge, Jefferson, MD 21755, USA, Phone: (301) 695--3100
  401. </PRE>
  402. <P>
  403. <H1><A NAME="SEC12" HREF="bull7_toc.html#SEC12">GNU Wish List</A></H1>
  404. <P>
  405. Wishes for this issue are for:
  406. <P>
  407. <UL>
  408. <LI>
  409. Someone skilled in compiler maintenance who could take over GCC
  410. maintenance for RMS. This would probably be be a full-time job.
  411. <P>
  412. <LI>
  413. Volunteers to help write utilities and documentation. Among others, we
  414. need manuals for X-Windows and the C Library.
  415. <P>
  416. <LI>
  417. Professors who might be interested in sponsoring or hosting research
  418. assistants to do GNU development, with full or partial FSF support.
  419. <P>
  420. <LI>
  421. Fonts. We are looking for Ghostscript format fonts.
  422. <P>
  423. <LI>
  424. Speech generation and character recognition software (if the devices
  425. aren't too weird), hopefully with the device drivers. This would help
  426. at least one partially disabled programmer we know to be productive.
  427. <P>
  428. <LI>
  429. Grammar checking software for English or other natural languages.
  430. <P>
  431. <LI>
  432. Copies of newspaper and journal articles mentioning the GNU Project.
  433. Send these to the addresses on the front cover, or send a citation to
  434. <CODE>gnu@prep.ai.mit.edu</CODE>.
  435. <P>
  436. <LI>
  437. Money, as always. Please remember, donations are tax-deductible. With
  438. the latest donations, we have been able to expand our staff.
  439. <P>
  440. One way to give us a small amount of money is to order a distribution
  441. tape or two. This may not count as a donation for tax purposes, but it
  442. can qualify as a business expense.
  443. <P>
  444. </UL>
  445. <P>
  446. <H1><A NAME="SEC13" HREF="bull7_toc.html#SEC13">Porting BSD Unix Through the GCC</A></H1>
  447. <P>
  448. by John Gilmore
  449. <P>
  450. I have ported the University of California at Berkeley's latest Unix
  451. sources through the GNU C Compiler. In the process, I made Berkeley
  452. Unix more compatible with the draft ANSI C standard, made many programs
  453. less machine-dependent and less compiler-dependent, and tested GCC.
  454. <P>
  455. Berkeley Unix has set the standard for high powered Unix systems for
  456. many years, and continues to offer an improved alternative to AT&#38;T Unix
  457. releases. However, Berkeley's C compiler is based on an old version of
  458. PCC, the Portable C Compiler from AT&#38;T. By merging GCC into the
  459. Berkeley release, we provided ANSI C compatibility, better optimization,
  460. and improved compiler maintenance. The GNU project gained an important
  461. test case for GCC, and a strong collaborator in the free software
  462. movement.
  463. <P>
  464. The project was conceived by John Gilmore, and aided by Keith Bostic and
  465. Mike Karels of Berkeley, and Richard Stallman of FSF. I did most of the
  466. actual porting, while Keith and Mike provided machine resources,
  467. collaborated on major decisions, and arbitrated the style and content of
  468. the changes to Unix. Richard provided quick turnaround on compiler bug
  469. fixes and problem solving.
  470. <P>
  471. We are producing a Unix source tree which can be compiled by both the
  472. old and the new compilers. Rather than introducing new <CODE>#ifdef</CODE>'s,
  473. we are rewriting the code so that it does not depend on the features of
  474. either compiler. Whenever we have to make a change, we are moving in
  475. the direction of ANSI C, POSIX compatibility, and machine independence.
  476. <P>
  477. We have used GCC releases 1.15 through 1.35. I did four complete
  478. "passes" over the Unix source tree; each involved running "make
  479. clean; make" on the entire source tree, and examining 500K to 800K of
  480. resulting output. I'd fix as many errors as I could, testing small
  481. parts of the source tree in the process, then merge my changes back into
  482. the master sources and rebuild the whole thing again.
  483. <P>
  484. The errors fell into two general categories: language changes in ANSI C,
  485. and non-portable code. In some cases it was hard to tell the
  486. difference.
  487. <P>
  488. The major ANSI C problem was the generation of character constants in
  489. the preprocessor. Excessive use of this now-obsolete feature in system
  490. header files caused us to change about 10 include files and about 45
  491. source modules. Another preprocessor problem was that ANSI C uses a
  492. different syntax for token concatenation; we rewrote pieces of five
  493. modules to avoid having to concatenate tokens. ANSI C clarified the
  494. rules for the scope of names declared <CODE>extern</CODE>. We moved extern
  495. declarations around, or added global function declarations, in more than
  496. 38 files to handle this. Nine programs used new ANSI keywords, such as
  497. <CODE>signed</CODE> or <CODE>const</CODE>, as identifiers; we picked new
  498. identifiers. Eleven modules used typedefs as formal parameters names,
  499. or used <CODE>unsigned</CODE> with a typedef.
  500. <P>
  501. The worst non-portable construct we found in the Unix sources was the
  502. use of pointers with member names that aren't right for the pointer
  503. type. Fixing this problem caused a lot of work, because we had to
  504. figure out what each untyped or mistyped pointer was really being used
  505. for, then fix its type, and the references to it. We changed 5 modules
  506. due to this, and abandoned one program, efl, which would have required
  507. too much work to fix.
  508. <P>
  509. Another problem was caused by using CPP as a macro processor for
  510. assembler source. We circumvented this problem by making the assembler
  511. source acceptable to both old-CPP and ANSI CPP.
  512. <P>
  513. A major problem was <CODE>asm</CODE> constructs in C source. Some programs
  514. were written in C with intermixed assembler code, producing a mess when
  515. compiled with anything but the original compiler. Other routines, such
  516. as compress, drop in an <CODE>asm</CODE> here or there as an optimization.
  517. Still more modules, including the kernel, run a sed script over the
  518. assembler code generated by the C compiler, before assembling and
  519. linking it. We eliminated as many uses of <CODE>asm</CODE> as we could, and
  520. turned others into assembler language subroutines in <SAMP>`.s'</SAMP> files.
  521. Both the Pascal and Lisp interpreters used heavy hacking with sed
  522. scripts; each of these took several days to fix.
  523. <P>
  524. We fixed three programs that used multi-character constants; two were
  525. clearly errors. Fifteen programs tried to declare functions or
  526. variables, while omitting both the type and storage class; we added
  527. <CODE>int</CODE> to the declarations. In two modules this diagnosed errors
  528. caused by use of <SAMP>`;'</SAMP> where <SAMP>`,'</SAMP> was intended. Changes to the
  529. rules for parsing declarations made us fix five modules, and declaration
  530. bugs in six more were caught by GCC's improved error checking. Fifteen
  531. programs had miscellaneous pointer usage bugs fixed. GCC caught bugs in
  532. five modules caused by misunderstood sign extension. Five or ten other
  533. miscellaneous bugs were caught and fixed.
  534. <P>
  535. We are pleased with the results so far. Most of the Unix code compiled
  536. without problems, and the parts which we have executed are free from
  537. code generation bugs. The worst of the ANSI C changes only required
  538. roughly fifty modules to be changed, and there were only two problems of
  539. this magnitude. A total of twenty bugs in GCC have been found so far,
  540. and most of them are now fixed. We expected several times this many
  541. bugs; the compiler is in better shape than any of us expected.
  542. <P>
  543. Many minor problems and nit incompatibilities with ANSI C have been
  544. removed from the Unix sources. Far fewer user programs should require
  545. attention when doing a BSD Unix port now. However, we did not attempt
  546. to make Berkeley Unix fully ANSI C compliant. In particular, we kept
  547. preprocessor comments (<CODE>#endif FOO</CODE>) as well as machine-specific
  548. <CODE>#define</CODE>'s (<CODE>#ifdef vax</CODE>). GCC supports these features even
  549. though ANSI C does not.
  550. <P>
  551. Unfinished work remains. The BSD kernel has not yet been ported to GCC,
  552. though it has been syntax-checked. Optimization of the kernel will
  553. cause problems until <CODE>volatile</CODE> declarations are used in all the
  554. right places. Pieces of the Portable C Compiler are still used inside
  555. lint, f77, and pc. Various sources still need their <CODE>setjmp</CODE> calls
  556. fixed so that only volatile variables depend on keeping their values
  557. after a <CODE>longjmp</CODE>.
  558. <P>
  559. Our changes will be available to recipients of Berkeley's next software
  560. distribution, whenever that is. We will also make diffs available to
  561. others involved in porting Unix to ANSI C.
  562. <P>
  563. Future projects include building a complete set of ANSI C and POSIX
  564. compatible include files and libraries (including function prototypes),
  565. and converting the existing sources to use them. An eventual goal is to
  566. produce a fully standard-conforming Unix system--not only in the
  567. interface provided to users, but with sources which will compile and run
  568. on any standard-conforming compiler and libraries.
  569. <P>
  570. The success of this collaboration between GNU and Berkeley has
  571. encouraged further cooperation. The GNU project is working to provide
  572. reimplementations of System V features that Berkeley Unix lacks, such as
  573. improved shells and make commands. In return, Berkeley has released
  574. much of its software to the public, eliminating the AT&#38;T license
  575. requirement for programs that AT&#38;T did not supply. A large set of
  576. "freed" BSD software is available by uucp or ftp from
  577. <CODE>uunet.uu.net</CODE> in the subdirectory <SAMP>`bsd-sources'</SAMP>, as well as
  578. on the GNU Compiler tape and the UUNET tapes.
  579. <P>
  580. <H1><A NAME="SEC14" HREF="bull7_toc.html#SEC14">GNU Project Status Report</A></H1>
  581. <P>
  582. <UL>
  583. <LI>
  584. <B>GNU Emacs</B>
  585. <P>
  586. GNU Emacs version 18 is in wide distribution. Version 18.55 will soon
  587. begin distribution.
  588. <P>
  589. Berkeley is distributing GNU Emacs with the 4.3 distribution, DEC is
  590. distributing it with Unix systems on Vaxes, and NeXT is shipping it.
  591. <P>
  592. Emacs 18 development has now ceased (although bugs are still fixed, of
  593. course) and version 19 is being worked on. New features so far include:
  594. multiple X windows (a <CODE>screen</CODE> object in Emacs Lisp); scroll bars;
  595. per-buffer redefinition of mouse commands; support for European
  596. character sets; source-level debugging for Emacs Lisp; and floating
  597. point numbers.
  598. <P>
  599. We are also considering these new features: associating property lists
  600. with portions of the text in a buffer, and using them to control
  601. visibility of the text; specifying different visibility conditions for
  602. multiple windows showing one buffer; incremental syntax analysis for
  603. various programming languages; a visually enhanced Info mode; an
  604. object-oriented graphics-drawing extension; hooks to be run if point
  605. moves outside a certain range.
  606. <P>
  607. It will take a while to do this (plus any other ideas we get), so please
  608. don't ask when Emacs 19 will be available for beta test. We will
  609. announce it.
  610. <P>
  611. <LI>
  612. <B>Shells</B>
  613. <P>
  614. Brian Fox has now completed GNU's version of <CODE>sh</CODE>, called BASH, the
  615. `Bourne Again SHell'. In addition to Korn shell features, it now has
  616. job control and both Emacs-style and <CODE>csh</CODE>-style command history
  617. manipulation. Look for it soon on our distribution.
  618. <P>
  619. There is a good chance that the C Shell from BSD will be declared free
  620. software by Berkeley, so we won't need to write that.
  621. <P>
  622. <LI>
  623. <B>Kernel</B>
  624. <P>
  625. We hope to use the MACH message-passing kernel being developed at CMU.
  626. The current distributed version of MACH is not free because it contains
  627. code from BSD of AT&#38;T origin. However, the MACH developers have been
  628. working to separate this code from the kernel and they now say that they
  629. have a first version of this running in alpha test. Once this is
  630. stable, the MACH kernel is supposed to become free.
  631. <P>
  632. Should MACH not become available, then we will start the kernel with
  633. either MIT's TRIX kernel or Berkeley's Sprite system.
  634. <P>
  635. Another thing we are considering is using the high-performance,
  636. distributed Sprite file system with MACH.
  637. <P>
  638. <LI>
  639. <B>GNU Debugger</B>
  640. <P>
  641. The GNU source-level C debugger, GDB, is now being distributed along
  642. with Emacs version 18 as GDB version 2.8. GDB version 3.2 is
  643. distributed on the beta-test (compiler) tape, and as soon as it is
  644. stable it will replace version 2.8 on the Emacs tape.
  645. <P>
  646. GDB 3.<CODE>*</CODE> reads symbol tables incrementally; this results in much
  647. faster startup and much less memory use. GDB also provides command line
  648. editing with history substitution and completion of command, filename,
  649. and symbols. Recently added FORTRAN support has not been tested. New
  650. commands include: <CODE>until</CODE>, which executes until a certain line; and
  651. <CODE>bt -<VAR>n</VAR></CODE>, to show only the outermost <VAR>n</VAR> stack frames.
  652. <P>
  653. The current GDB can code-grind (pretty-print) structures and can
  654. conditionally avoid printing unions. C<CODE>++</CODE> support has been
  655. improved.
  656. <P>
  657. There is a version of GDB which can run stand-alone so that we can use
  658. it to debug the kernel, and we also have a serial line interface for
  659. running GDB remotely. A French volunteer is now working on a UDP based
  660. over-the-ethernet debugging interface. Work is also being done on
  661. debugging multiple process, parallel programs.
  662. <P>
  663. Future versions of GDB may support watchpoints. We also hope soon to
  664. merge the diffs for the Altos and Sun 386i machines.
  665. <P>
  666. <LI>
  667. <B>C Compiler</B>
  668. <P>
  669. The GNU C Compiler GCC is now fairly reliable. It supports the May 1988
  670. draft of ANSI C. People are still reporting bugs, but they also say
  671. they think there are fewer bugs than in commercial compilers. Read John
  672. Gilmore's article to see how some of these bugs were uncovered. Next
  673. builds their entire system, including their port of the MACH kernel and
  674. NFS, with GCC. Someone has also told us that GCC successfully compiled
  675. a System V.3 kernel.
  676. <P>
  677. The compiler performs automatic register allocation, common
  678. subexpression elimination, invariant code motion from loops, induction
  679. variable optimizations, constant propagation and copy propagation,
  680. delaying popping of function call arguments, tail recursion elimination,
  681. plus many local optimizations that are automatically deduced from the
  682. machine description. We are also currently implementing delayed-branch
  683. fill and pipeline scheduling (experimentally).
  684. <P>
  685. GCC has recently been ported to the Convex, Tahoe and the MIPS
  686. processors. A Pyramid version is expected soon, and ports are underway
  687. to the IBM 370, IBM PC/RT, 3B2, HP Spectrum, Motorola 88000, some sort
  688. of Gould machine, and (perhaps) the AMD 29000.
  689. <P>
  690. GCC makes shorter and faster 68020 code than the new Sun compiler with
  691. -O. The new Sun compiler can't beat GCC despite taking 3 times as long.
  692. As of version 1.31, GCC also wins on the Sun 4. GCC makes shorter Vax
  693. code than the Tartan C compiler with -O4, but we haven't been able to
  694. compare the running speed of that code. A National 32000 port done by
  695. Michael Tiemann on a Sequent 32000 system is said to be more reliable
  696. than Sequent's compiler and yields a 40% speedup for several programs
  697. including a Prolog interpreter.
  698. <P>
  699. We are also working on merging the C Compiler with the C<CODE>++</CODE>
  700. compiler so that there would be only one distribution for both
  701. languages.
  702. <P>
  703. In the future, if we have time, we would like to implement more language
  704. extensions (we will probably add nested scoping), plus facilities for
  705. precompilation of header files to save time when they are large and the
  706. source files are small. We might also do other language front ends, but
  707. there seem to be enough remote GNUers willing to do this job.
  708. <P>
  709. Enough internal documentation is included for people interested in
  710. retargeting the compiler to other CPUs to do so.
  711. <P>
  712. <LI>
  713. <B>GNU C for VMS</B>
  714. <P>
  715. GCC can run under VMS. However, the ordinary VMS C compiler has bugs
  716. and cannot compile GNU C, so you need an executable of GNU C to get
  717. started. This comes on the VMS tape along with the source.
  718. <P>
  719. Other GNU programs for VMS include GNU Emacs and Bison.
  720. <P>
  721. Please don't ask us to devote effort to additional VMS support, because
  722. it is peripheral to the GNU project.
  723. <P>
  724. <LI>
  725. <B>COFF Support</B>
  726. <P>
  727. It is now possible to run the entire suite of GNU software tools on
  728. System V, replacing COFF entirely. First you install the GNU compiler,
  729. assembler, linker and other utilities. Then you use the program
  730. <CODE>robotussin</CODE>---COFF medicine for your computer--to convert the
  731. system libraries from COFF format to GNU (i.e. BSD) format.
  732. <P>
  733. When you compile programs, you will get ordinary GNU/BSD object files.
  734. Linking these with the GNU linker will produce GNU/BSD executables with
  735. a COFF header that the kernel will accept. The other GNU utilities such
  736. as <CODE>size</CODE>, <CODE>nm</CODE> and <CODE>strip</CODE> know how to operate on these
  737. encapsulated files.
  738. <P>
  739. As true COFF support is peripheral to the GNU project, please don't ask
  740. us to expend effort on it.
  741. <P>
  742. <LI>
  743. <B>Compiler-related Programs</B>
  744. <P>
  745. <UL>
  746. <LI>
  747. <B>C<CODE>++</CODE></B>
  748. <P>
  749. Michael Tiemann of Stanford University has written a C<CODE>++</CODE> compiler
  750. as an extension of GNU C which is distributed with GCC. This was the
  751. first compiler to compile C<CODE>++</CODE> directly instead of preprocessing
  752. it into C with great benefits for debugging and efficiency.
  753. <P>
  754. Recently Michael added multiple inheritance and other new features
  755. promised by AT&#38;T at the first USENIX C<CODE>++</CODE> workshop (AT&#38;T has yet
  756. to release their version).
  757. <P>
  758. GDB version 3.<CODE>*</CODE> includes support for debugging C<CODE>++</CODE> code,
  759. which merges in the functionality of the old program GDB<CODE>+</CODE>.
  760. GDB<CODE>+</CODE> was a source code debugger for C<CODE>++</CODE>, but is now being
  761. withdrawn.
  762. <P>
  763. <LI>
  764. <B>Assembler and Object File Utilities</B>
  765. <P>
  766. GAS is a fairly portable, one pass assembler that is almost twice as
  767. fast as Unix <CODE>as</CODE>. It now works for Vaxes, 680x0, 32x32 and 80386.
  768. A port for Sparc (Sun 4) will be available soon.
  769. <P>
  770. The GNU replacements for <CODE>ld</CODE>, <CODE>nm</CODE>, <CODE>size</CODE>,
  771. <CODE>gprof</CODE>, <CODE>strip</CODE>, <CODE>ranlib</CODE>, etc., have been released with
  772. the GCC beta-test distribution.
  773. <P>
  774. The GNU linker <CODE>ld</CODE> runs significantly faster than the BSD version.
  775. Our <CODE>ld</CODE> is the only one that will give you source-line numbered
  776. error messages for multiply-defined symbols and undefined
  777. references.<P>
  778. <LI>
  779. <B>C<CODE>++</CODE> Library</B>
  780. <P>
  781. Doug Lea is writing <CODE>libg++</CODE>, a library with utility classes for
  782. C<CODE>++</CODE>.
  783. <P>
  784. <LI>
  785. <B>GNU Make Extended</B>
  786. <P>
  787. We have been distributing GNU Make for several months. An extended
  788. version including more text-processing capabilities and static
  789. rules is now available. It also supports parallelism.
  790. <P>
  791. <LI>
  792. <B>C Library</B>
  793. <P>
  794. Roland McGrath, who contributed a great deal to GNU Make, has a nearly
  795. complete set of ANSI C library functions. He will work full time this
  796. summer to complete them. These join the GNU <CODE>malloc</CODE>,
  797. <CODE>regexp</CODE> and <CODE>termcap</CODE> libraries. A better <CODE>malloc</CODE> may be
  798. written soon, and we will shortly add our <CODE>qsort</CODE> library routine.
  799. <CODE>gdbm</CODE> is about to enter beta test.<P>
  800. Meanwhile, Steve Moshier has contributed a full series of mathematical
  801. library functions.</UL>
  802. <P>
  803. <LI>
  804. <B>Preliminary Ghostscript</B>
  805. <P>
  806. We now distribute Ghostscript, the free GNU software that provides
  807. nearly all the facilities of a Postscript interpreter. It supports X
  808. version 11. Peter Deutsch is still doing some work on it.
  809. <P>
  810. Right now, Ghostscript will accept commands in Postscript and execute
  811. them by drawing on an X window. Karl Berry and Kathy Hargreaves will be
  812. working on adding more fonts. They could use the help of volunteers.
  813. Beside additional fonts, Ghostscript needs these enhancements: to serve
  814. as a previewer for multi-page files; to serve other X clients by drawing
  815. on their windows; to improve both it's performance and visual quality.
  816. Other suggestions for enhancements are welcome.
  817. <P>
  818. Ghostscript also includes a C-callable graphics library (for client
  819. programs that don't want to deal with the Postscript language), and also
  820. supports IBM PCs and compatibles with EGA graphics (but please don't ask
  821. the FSF staff any questions about this; we don't use PCs and don't have
  822. time to learn anything about them).
  823. <P>
  824. <LI>
  825. <B>Finger and Send</B>
  826. <P>
  827. We soon will have a daemon-based Finger program. It polls a
  828. selection of hosts and is thus able to tell you where each person is
  829. logged in.
  830. <P>
  831. We are also testing a Send program for sending immediate messages
  832. to other users across the net.
  833. <P>
  834. <LI>
  835. <B>Oleo</B>
  836. <P>
  837. Jay Fenlason is writing a spreadsheet named Oleo (better for you than
  838. the more expensive spreadsheet).
  839. <P>
  840. <LI>
  841. <B>GNU Mailer</B>
  842. <P>
  843. Landon Noll and Ronald Karr of Amdahl are writing a mail queuing and
  844. delivery system, called <CODE>smail</CODE>. This project is a supported part
  845. of the Amdahl UTS system--as free software!
  846. <P>
  847. We may use smail for GNU, or <CODE>zmailer</CODE>, which Rayan Zachariasen is
  848. writing, or perhaps both.
  849. <P>
  850. <LI>
  851. <B>Window System</B>
  852. <P>
  853. We are using the MIT X window system, which is free software.
  854. <P>
  855. <LI>
  856. <B>Other Utilities</B>
  857. <P>
  858. Our free replacement for Yacc is called Bison. We also have
  859. <CODE>cron</CODE>. We now have the world's fastest <CODE>grep</CODE>/<CODE>egrep</CODE>
  860. and the world's fastest <CODE>diff</CODE>. A new fast <CODE>sort</CODE> has just
  861. been finished. A "fast lex" called FLEX recently became available; we
  862. are now distributing it.
  863. <P>
  864. <LI>
  865. <B>Long Term</B>
  866. <P>
  867. Volunteers are working on a Smalltalk system and an APL system. Also,
  868. software for editing and playing music.
  869. <P>
  870. <LI>
  871. <B>Possible Target Machines</B>
  872. <P>
  873. The GNU operating system will require a CPU that uses 32-bit addresses
  874. and integers and addresses to the 8-bit byte. 1 megabyte of core should
  875. be enough, though 2 meg would probably make a noticeable improvement in
  876. performance. Running some of the system in 1/2 meg may be possible, but
  877. certainly not GNU Emacs, which requires more than 1 meg of
  878. addressable memory. Virtual memory will be required.
  879. <P>
  880. A hard disk will be essential; at least 20 meg will be needed to hold
  881. a minimal system. Plus more space for the user's files, of course.
  882. Perhaps 80 meg altogether for a personal GNU system.
  883. <P>
  884. Not that it will be impossible to adapt some or all of GNU for other
  885. architectures; but we don't currently consider it part of our job.
  886. <P>
  887. <LI>
  888. <B>Porting</B>
  889. <P>
  890. It is too early to inquire about porting GNU (except GNU Emacs, GDB, GNU
  891. C, and GAS). First, we have to finish it.
  892. <P>
  893. </UL>
  894. <P>
  895. <H1><A NAME="SEC15" HREF="bull7_toc.html#SEC15">GNU Documentation</A></H1>
  896. <P>
  897. GNU documentation is distributed as Texinfo source files. Texinfo
  898. source yields both a typeset hardcopy and an on-line format, accessed by
  899. a menu-driven system.
  900. <P>
  901. To make the printed manual, the Texinfo source file is processed through
  902. the TeX typesetting program. To make the on-line documentation using
  903. GNU Emacs, the Texinfo source file is processed with the <KBD>M-x
  904. texinfo-format-buffer</KBD> command; the resulting Info file is installed in
  905. the <TT>`info'</TT> directory which you reach by typing <KBD>C-h i</KBD>.
  906. <P>
  907. The following manuals, provided with our software, are also available in
  908. hardcopy; see the order form on the inside back cover.
  909. <P>
  910. The <B>Emacs Manual</B> describes how to use GNU Emacs. It also explains
  911. advanced features, such as outline mode and regular expression search.
  912. The manual tells how to use the special modes for programming in
  913. languages such as C and Lisp, how to use the tags utility, and how to
  914. compile and correct code. It also describes how to make your own
  915. keybindings and make other elementary customizations.
  916. <P>
  917. This manual does <EM>not</EM> cover programming in Emacs Lisp. This topic
  918. will be handled in an introductory Emacs Lisp programming manual and an
  919. Emacs Lisp reference manual. The reference manual should be out this
  920. summer. Watch for the announcement.
  921. <P>
  922. The <B>Texinfo Manual</B> describes how to write documents in Texinfo
  923. source code. It describes the markup language used to create both an
  924. Info file and a printed document from the same source file: how to make
  925. tables, lists, chapters, nodes, indices and cross references. It also
  926. describes how to use Texinfo Mode in GNU Emacs and how to catch
  927. mistakes.
  928. <P>
  929. The <B>Termcap Manual</B> is often described as "Twice as much as you
  930. ever wanted to know about Termcap". It describes the format of the
  931. Termcap data base, the definitions of terminal capabilities and how to
  932. interrogate a terminal description. This manual is primarily for
  933. programmers.
  934. <P>
  935. The <B>Bison Manual</B> describes how to write a grammar description
  936. that Bison can convert into a C program that can parse that grammar.
  937. This manual assumes no prior knowledge of parser generators. It
  938. describes the concepts and then provides a series of increasingly
  939. complex examples before describing what goes on in considerable detail.
  940. <P>
  941. The <B>GAWK Manual</B> describes how to use the GNU implementation of
  942. AWK. It is written for someone who has never used AWK before, and
  943. describes all the features of this powerful string manipulating
  944. language.
  945. <P>
  946. The <B>Make Manual</B> describes the GNU Make utility, a program used to
  947. rebuild parts of other programs when and as needed. The manual tells
  948. how to write a makefile, which describes how to recompile the parts of
  949. your program and how they depend on each other.
  950. <P>
  951. The <B>GDB Manual</B> explains how to use the GNU DeBugger. It
  952. describes how to run your program under control of the debugger, how to
  953. examine and alter data within the program, and how to modify the flow of
  954. control within the program. It also explains how to use GDB through GNU
  955. Emacs, with auto-display of source lines.
  956. <P>
  957. <H1><A NAME="SEC16" HREF="bull7_toc.html#SEC16">GNU Software Available Now</A></H1>
  958. <P>
  959. We now offer three Unix software source distribution tapes, plus VMS
  960. tapes for GNU Emacs and GNU C that include sources and VMS executables.
  961. The first Unix tape (called the "Release" or "Emacs" tape) contains
  962. GNU Emacs as well as various other well-tested programs that we consider
  963. reliable. The second Unix tape (called the "Beta test" or
  964. "Compiler" tape) contains the GNU C compiler and related utilities,
  965. and other new programs that are less thoroughly tested. The third Unix
  966. tape (called the "X11" tape) contains the X11 distribution from the
  967. MIT X consortium. See the order form, on the inside back cover, for
  968. details about media, etc.
  969. <P>
  970. <H3><A NAME="SEC17" HREF="bull7_toc.html#SEC17">Contents of Release Tape</A></H3>
  971. <P>
  972. The software on this tape is considered to be fairly stable, but as
  973. always, we welcome your bug reports.
  974. <P>
  975. <UL>
  976. <LI>
  977. <B>GNU Emacs</B>
  978. <P>
  979. In 1975, Richard Stallman developed the first Emacs: the extensible,
  980. customizable real-time display editor. GNU Emacs is his second
  981. implementation of Emacs. It's the first Emacs available on Unix systems
  982. that offers true Lisp, smoothly integrated into the editor, for writing
  983. extensions. It also provides a special interface to MIT's free X window
  984. system, versions 10 and 11, which makes redisplay very fast. The
  985. current version is 18.55.
  986. <P>
  987. GNU Emacs has been in widespread use since 1985 and often displaces
  988. proprietary implementations of Emacs because of its greater reliability
  989. as well as its good features and easier extensibility. Isaac Salzman of
  990. <I>Unix Review</I> magazine planned to compare the various publicly
  991. available Emacs', but only one company wanted their product to be
  992. compared with GNU Emacs. The review should appear in the June, 1989
  993. issue.
  994. <P>
  995. GNU Emacs (as of version 18.55) runs on many kinds of Unix systems:
  996. those made by Alliant, Altos 3068, Amdahl (UTS), Apollo, AT&#38;T (3B
  997. machines and 7300 pc), CCI 5/32 and 6/32, Celerity, Convex, Digital
  998. (Vax, not PDP-11; BSD or SysV), Dual, Elxsi 6400, Encore (DPC and APC),
  999. Gould, HP (9000 series 200, 300 or 800 (Spectrum) but not series 500),
  1000. HLH Orion 1/05, IBM (RT/PC;4.2 and AIX), Integrated Solutions (Optimum V
  1001. with 68020 and VMEbus), Intel 80386 (BSD, SysV, and Xenix), Iris (2500,
  1002. 2500 Turbo and 4D), LMI (Nu), Masscomp, Megatest, MIPS, NCR (Tower 32),
  1003. Nixdorf Targon 31, Plexus, Pyramid, Sequent Balance, SONY News, Stride
  1004. (system release 2), Sun (all kinds), Tahoe, Tektronix (NS16000 system &#38;
  1005. 4300), Texas Instruments (Nu), and Whitechapel
  1006. (MG1).
  1007. <P>
  1008. GNU Emacs is described by the GNU Emacs Manual, which comes with the
  1009. software in Texinfo form. See "GNU Documentation" above.
  1010. <P>
  1011. <LI>
  1012. <B>GDB</B>
  1013. <P>
  1014. GDB 2.8 (GNU's Debugger) is the source-level C debugger written in 1986.
  1015. It offers many features not usually found in debuggers on Unix, such as
  1016. Emacs-style command history and substitution, a history that records all
  1017. values examined within the debugger for concise later reference,
  1018. multi-line user-defined commands, and good self-documentation.
  1019. <P>
  1020. GDB 2.8 currently runs on Vaxes under 4.2 and 4.3bsd, on Sun 3 under
  1021. systems version 2 and 3 and 4, on the SPARC (Sun 4) under systems
  1022. version 3.2 and 4.0, HP9K320, ISI, Merlin, SONY News, Gould NPL and PN,
  1023. i386, and on some 32000 systems. GDB 3.<CODE>*</CODE> is currently being
  1024. distributed on the beta tape, and supports several more systems.
  1025. <P>
  1026. On-line help and a users' manual for GDB comes with the software;
  1027. the printed version of the manual is also available from the Foundation.
  1028. <P>
  1029. <LI>
  1030. <B>Bison</B>
  1031. <P>
  1032. Bison is an upward-compatible replacement parser generator for Yacc,
  1033. with additional features. It has been in use for several years. Bison
  1034. is used for compiling GNU C, so it is included on the GNU beta tape
  1035. as well. A users' manual for Bison comes with the software; the printed
  1036. version is also available from the Foundation.
  1037. <P>
  1038. <LI>
  1039. <B>X Window System, V10R4</B>
  1040. <P>
  1041. Version 10 of X Windows is distributed on the GNU Emacs tape; version 11
  1042. (which is totally incompatible) is distributed on the X11 tape. GNU Emacs
  1043. version 18.55 supports both versions 10 and 11.
  1044. <P>
  1045. <LI>
  1046. <B>MIT Scheme</B>
  1047. <P>
  1048. Scheme is a simplified, lexically scoped dialect of Lisp, designed at
  1049. MIT and other universities to teach students programming and research
  1050. new parallel programming constructs and compilation techniques. Scheme
  1051. is written in C and runs on many Unix systems.
  1052. <P>
  1053. <LI>
  1054. <B>Yale T</B>
  1055. <P>
  1056. A variant of Scheme developed at Yale University, T is intended for
  1057. production use in program development. T contains a native-code
  1058. optimizing compiler that produces code that runs at speeds comparable to
  1059. the running speeds of programs written in conventional languages. It
  1060. runs on BSD Vaxes and a few types of 68020 systems. T is written in
  1061. itself and cannot be bootstrapped without a binary (included), but it is
  1062. great if you can use it. Some documentation is included.
  1063. <P>
  1064. <LI>
  1065. <B><CODE>texi2roff</CODE></B>
  1066. <P>
  1067. <CODE>texi2roff</CODE> translates GNU Texinfo files into a format that can be
  1068. printed by the Unix [nt]roff programs utilizing the mm, ms or me macro
  1069. packages. It is included on both tapes so that people who don't have a
  1070. copy of TeX can print out GNU documentation.
  1071. <P>
  1072. <LI>
  1073. <B>GNU Chess and NetHack</B>
  1074. <P>
  1075. GNU Chess is a chess program written in C by John Stanback and Stuart
  1076. Cracraft. It includes an extensive opening book and was recently rated
  1077. by USCF Senior Master IM Larry Kaufman at around USCF 1950 (close to
  1078. expert level) when run on a Sun 3 workstation. On a Sun 4, it should
  1079. play at nearly master level.
  1080. <P>
  1081. Hack is a display oriented adventure game similar to Rogue.
  1082. <P>
  1083. </UL>
  1084. <P>
  1085. <H3><A NAME="SEC18" HREF="bull7_toc.html#SEC18">Contents of Beta Test Tape</A></H3>
  1086. <P>
  1087. The programs on this tape are all recent releases and can be considered
  1088. to be at various stages of user testing. As always, we solicit your
  1089. comments and bug reports. This tape is also known as the Compiler tape.
  1090. <P>
  1091. <UL>
  1092. <LI>
  1093. <B>GNU CC</B>
  1094. <P>
  1095. The GNU C compiler is a fairly portable optimizing compiler. It
  1096. generates good code for the 32000, 680x0, 80386, Alliant, SPARC, SPUR,
  1097. Tahoe, and Vax CPUs. Machines using these CPUs include the Encore
  1098. NS32000, Genix NS32000, Sequent NS32000, AT&#38;T 3B1, HP-UX 68000/68020,
  1099. ISI 68000/68020, SONY News, All Sun's, Intel 386, Sequent Intel 386,
  1100. Alliant FX/8. The MIPS processor is also supported. It supports full
  1101. ANSI C as of the latest draft standard. Included with the compiler are
  1102. the GNU assembler GAS, Make, Bison (also on the Emacs release tape), and
  1103. the perfect hash-table generating utility (Gperf), plus the object file
  1104. utilities <CODE>ld</CODE>, <CODE>nm</CODE>, <CODE>size</CODE>, <CODE>strip</CODE>, <CODE>ar</CODE>,
  1105. <CODE>ranlib</CODE> and <CODE>gprof</CODE> and the Texinfo source of <CITE>The GCC
  1106. Manual</CITE> (for those interested in extending or retargeting GCC).
  1107. <P>
  1108. <LI>
  1109. <B>GDB</B>
  1110. <P>
  1111. Version 3 of GDB runs under BSD 4.2 and 4.3 on Vaxes and Suns (2, 3, and
  1112. 4), Convex, HP 9000/300's under BSD, HP 9000/320's under HPUX, Intel 386
  1113. workstation (with either GNU or native object file format), ISI Optimum
  1114. V, Merlin under Utek 2.1, SONY News, Gould NPL and PN machines,
  1115. Sequent Symmetry (a 386 based machine), and Encores under Umax 4.2.
  1116. <P>
  1117. <LI>
  1118. <B>GAWK, FLEX and <CODE>tar</CODE></B>
  1119. <P>
  1120. GAWK is GNU's version of the Unix AWK utility; it comes with a Texinfo
  1121. manual. FLEX is a mostly-compatible replacement for the Unix <CODE>lex</CODE>
  1122. scanner generator written by Vern Paxson of the Lawrence Berkeley
  1123. Laboratory. FLEX generates far more efficient scanners than <CODE>lex</CODE>
  1124. does. GNU <CODE>tar</CODE> includes multivolume support, automatic compression and
  1125. decompression of archives, remote archives, and special features to
  1126. allow <CODE>tar</CODE> to be used for incremental and full backups of file
  1127. systems.
  1128. <P>
  1129. <LI>
  1130. <B>Freed Files from the U.C. Berkeley 4.3-tahoe Release</B>
  1131. <P>
  1132. These files have been declared by Berkeley to be free of AT&#38;T code, and
  1133. may be freely redistributed. They include complete sources for some
  1134. utility programs, games, library routines and partial sources for many
  1135. others.
  1136. <P>
  1137. <LI>
  1138. <B>RCS and BASH</B>
  1139. <P>
  1140. The latest version of the Revision Control System for version control and
  1141. management of large software projects.
  1142. <P>
  1143. The GNU Shell BASH (for Bourne Again SHell) provides compatibility with
  1144. the Unix <CODE>sh</CODE> and extensions from both <CODE>csh</CODE> and <CODE>ksh</CODE>.
  1145. <P>
  1146. <LI>
  1147. <B><CODE>diff</CODE> and <CODE>grep</CODE></B>
  1148. <P>
  1149. These programs are GNU's versions of the Unix programs of the same name.
  1150. They are much faster than their Unix counterparts.
  1151. <P>
  1152. <LI>
  1153. <B>Ghostscript and <CODE>gnuplot</CODE></B>
  1154. <P>
  1155. Ghostscript is GNU's graphics language. It is almost fully compatible
  1156. with the postscript language. It supports X version 11.
  1157. <P>
  1158. <CODE>gnuplot</CODE> is an interactive program for plotting mathematical
  1159. expressions and data. Oddly enough, the program was neither done for
  1160. nor named for the GNU Project--the name is a coincidence. However, we
  1161. are distributing it anyway. If you can put us in contact with the
  1162. author of this program, please do!
  1163. <P>
  1164. <LI>
  1165. <B><CODE>g++</CODE>, <CODE>libg++</CODE>, OOPS, and InterViews</B>
  1166. <P>
  1167. G<CODE>++</CODE> is a set of changes for GCC, that compiles C<CODE>++</CODE>, the
  1168. well-known object-oriented language. Since G<CODE>++</CODE> depends on GCC,
  1169. it must be used with the correspondingly numbered version of GCC.
  1170. <P>
  1171. <CODE>libg++</CODE> (the GNU C<CODE>++</CODE> library) is a collection of C<CODE>++</CODE>
  1172. classes and support tools for use with G<CODE>++</CODE>.
  1173. <P>
  1174. OOPS (Object-Oriented Program Support) class library is a portable
  1175. collection of classes similar to those in Smalltalk-80 that has been
  1176. developed by Keith Gorlen of NIH, using the C<CODE>++</CODE> programming
  1177. language.
  1178. <P>
  1179. InterViews is an object-oriented, C<CODE>++</CODE> library to support the
  1180. design and implementation of user interfaces.
  1181. <P>
  1182. <LI>
  1183. <B>GnuGo</B>
  1184. <P>
  1185. GnuGo allows the user to play the machine in a game of Go (Wei-Chi). It
  1186. is an updated version of the program called Hugo.
  1187. <P>
  1188. </UL>
  1189. <P>
  1190. <H3><A NAME="SEC19" HREF="bull7_toc.html#SEC19">Contents of X11 Tape.</A></H3>
  1191. <P>
  1192. The X11 tape contains Version 11, Release 3 of the MIT X window system.
  1193. X11 is more powerful than, but incompatible with, the
  1194. no-longer-supported version 10. MIT no longer labels Version 11 `beta
  1195. test' but is still releasing frequent patches and updates.
  1196. <P>
  1197. <H3><A NAME="SEC20" HREF="bull7_toc.html#SEC20">VMS Emacs and Compiler Tapes</A></H3>
  1198. <P>
  1199. We offer a VMS tape of the GNU Emacs editor, and a separate VMS tape
  1200. containing the beta-test GNU C compiler. The VMS compiler tape also
  1201. contains Bison (needed to compile GCC), GAS (needed to assemble GCC's
  1202. output) and some library and include files. Both VMS tapes include
  1203. executables that you can bootstrap from.
  1204. <P>
  1205. <H1><A NAME="SEC21" HREF="bull7_toc.html#SEC21">How to Get GNU Software</A></H1>
  1206. <P>
  1207. All the software and publications from the Free Software Foundation are
  1208. distributed with permission to copy and redistribute. The easiest way to
  1209. get GNU software is to copy it from someone else who has it.
  1210. <P>
  1211. If you have access to the Internet, you can get the latest software from
  1212. the host <TT>`prep.ai.mit.edu'</TT>. For more information, read the file
  1213. <TT>`/u/emacs/GETTING.GNU.SOFTWARE'</TT> on that host. Please note that the
  1214. internet address of <TT>`prep'</TT> has changed to <CODE>18.71.0.38</CODE>.
  1215. <P>
  1216. If you cannot get the software from a friend or over the net, or if you
  1217. would like to contribute some funds to our efforts and receive the
  1218. latest versions, the Free Software Foundation distributes tapes for a
  1219. copying and distribution fee. See the order form on the inside back
  1220. cover.
  1221. <P>
  1222. There are also third party groups that distribute our software: people
  1223. and organizations that do not work with us, but have our software in
  1224. other forms. For your convenience, some of them are listed below.
  1225. Please note that the Free Software Foundation is <I>not</I> affiliated with
  1226. them in any way, and is not responsible for either the currency of their
  1227. versions or the swiftness of their responses.
  1228. <P>
  1229. These Internet sites providing for anonymous FTP:
  1230. <P>
  1231. <PRE>
  1232. scam.berkeley.edu, spam.istc.sri.com, bu-it.bu.edu,
  1233. wsmr-simtel20.army.mil (under <TT>`PD:&#60;UNIX.GNU&#62;'</TT>),
  1234. cc.utah.edu (VMS GNU Emacs), and uunet.uu.net.
  1235. </PRE>
  1236. <P>
  1237. Those on the SPAN network can ask <TT>rdss::corbet</TT>.
  1238. <P>
  1239. Information on how to obtain some GNU programs using UUCP is available via
  1240. electronic mail from:
  1241. <P>
  1242. <PRE>
  1243. hao!scicom!qetzal!upba!ugn!nepa!denny, arnold@skeeve.UUCP,
  1244. uunet!hutch!barber, hqda-ai!merlin, acornrc!bob,
  1245. ames!killer!wisner, mit-eddie!bloom-beacon!ht!spt!gz,
  1246. sun!nosun!illian!darylm, or info@uunet.uu.net.
  1247. </PRE>
  1248. <P>
  1249. Ohio State also makes GNU programs available via UUCP. They post their
  1250. instructions monthly to newsgroup <CODE>comp.sources.d</CODE> on USENET.
  1251. Current details from Karl Kleinpaste <CODE>karl@tut.cis.ohio-state.edu</CODE>
  1252. or <CODE>...!osu-cis!karl</CODE>; or Bob Sutterfield (substitute <CODE>bob</CODE>
  1253. for <CODE>karl</CODE> in the above addresses).
  1254. <P>
  1255. Information on getting floppy disks of GNU Emacs for the AT&#38;T Unix PC
  1256. (aka 3B1 or PC7300) is available from: <CODE>brant@manta.pha.pa.us</CODE>.
  1257. <P>
  1258. <H1><A NAME="SEC22" HREF="bull7_toc.html#SEC22">Thank GNUs</A></H1>
  1259. <P>
  1260. Thanks to our <B>Anonymous Contributor</B>, and thanks to Hewlett-Packard
  1261. for their donations of a $100,000 each. Also, thanks to the Open
  1262. Software Foundation for their donation of $25,000.
  1263. <P>
  1264. Many thanks to the following people for copying Sun cartridges: <B>Barry
  1265. Kleinman</B> and <B>Andre Mesarovic</B> of Index Technology; <B>George Brown</B>;
  1266. <B>Devon McCullough</B> and <B>Nick Papadakis</B>; <B>Mark Nahabedian</B> and
  1267. <B>Shaun Keller</B> of Phoenix Technology; and finally thanks in advance to
  1268. <B>Mark Hannon</B> of ICAD.
  1269. <P>
  1270. Thanks to all those mentioned in GNU Flashes and the GNU Project
  1271. Status Report.
  1272. <P>
  1273. Thanks to the MIT Laboratory for Computer Science, and its director,
  1274. <B>Professor Michael Dertouzos</B>. LCS has provided FSF with the loan
  1275. of a Microvax for program development.
  1276. <P>
  1277. Thanks to the MIT Artificial Intelligence Laboratory for invaluable
  1278. assistance of many kinds.
  1279. <P>
  1280. Thanks to <B>Arnold Robbins</B> and <B>Dave Trueman</B> for their work on GAWK
  1281. and the GAWK manual.
  1282. <P>
  1283. Thanks to <B>John Klensin</B> of the INFOODS Project at MIT for use of the
  1284. project's machine for making our VMS master tapes.
  1285. <P>
  1286. Thanks go out to all those who have lent us machines, including
  1287. <B>Brewster Kahle</B> of Thinking Machines, Inc. for the Sun 4/110, <B>K.
  1288. Richard Magill</B> for the AT&#38;T Unix PC, CMU's Mach Project for the Sun
  1289. 3/60, Intel Corp. for their 386 workstation, and SONY Corp. and Software
  1290. Research Associates, Inc., both of Tokyo, for the SONY News workstations.
  1291. <P>
  1292. Thanks to all those who have contributed ports and extensions, as well as
  1293. those who have contributed other source code, documentation, and good bug
  1294. reports.
  1295. <P>
  1296. Thanks to those who sent money and offered help. Thanks also to those
  1297. who support us by ordering Emacs manuals and distribution tapes.
  1298. <P>
  1299. The creation of this bulletin is our way of thanking all who have
  1300. expressed interest in what we are doing.
  1301. <P>
  1302. <HR>
  1303. <P>
  1304. <PRE>
  1305. -------
  1306. | |
  1307. Free Software Foundation, Inc. | stamp |
  1308. 675 Massachusetts Avenue | |
  1309. Cambridge, MA 02139 USA | here |
  1310. | |
  1311. -------
  1312. </PRE>
  1313. <P>
  1314. <HR>
  1315. <P>
  1316. Use rule at top of this page for page 1.