20010618.ms 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941
  1. .TL
  2. Inferno 3rd Edition \- June 2001 Revision
  3. .br
  4. Release Notes and Errata
  5. .AI
  6. Vita Nuova
  7. support@vitanuova.com
  8. .br
  9. 18 June 2001
  10. .SP 4
  11. .NH 1
  12. Installation
  13. .LP
  14. If you have a previous version of Inferno installed, this one must not
  15. be installed over it.
  16. If you have a Lucent Inferno 2.3 release from 1999 or earlier, you
  17. should make a completely new installation from this CD.
  18. If you have installed the Vita Nuova `Binary and Limited Source' CD you
  19. should also make a new installation from this CD.
  20. If you have previously installed the Vita Nuova Full Source CD from July 2000,
  21. see the section `Updating the July 2000 release' at the end of this document.
  22. (You could also make a fresh installation in a new directory, or remove the old
  23. release and install this one if there are no files you wish to keep.)
  24. .LP
  25. Follow the installation instructions in ``Installation of the Inferno Software''
  26. at the end of Volume 2.
  27. The printed copy has several mistakes:
  28. .IP \(bu
  29. Page 327 notes that on Unix
  30. if the installation is done as user
  31. .CW root
  32. but a user
  33. .CW inferno
  34. exists the files will be owned by
  35. .CW inferno .
  36. They are not.
  37. Indeed, on Unix there is no reason to install the package as
  38. the super-user
  39. .CW root .
  40. Do the installation as the user, perhaps
  41. .CW inferno ,
  42. that is to own the files.
  43. .IP \(bu
  44. It refers on page 327
  45. to the Windows installation program as
  46. .CW Nt-386.exe .
  47. The correct name is used on the next
  48. page in the actual instructions, namely
  49. .CW \einstall\esetup.exe .
  50. .IP \(bu
  51. The Windows
  52. .CW setup.exe
  53. will offer to create the target installation directory if it does not exist.
  54. On all other systems, you must first create the directory yourself.
  55. .IP \(bu
  56. Solaris and some other commercial Unix systems
  57. do not read the `Joliet' format section of the CD,
  58. which uses Unicode names, and
  59. they
  60. force the names in the non-Joliet portion on the CD to lower case, sometimes
  61. with hyphens converted to underscores.
  62. The installation script on Solaris is therefore
  63. .CW install/solaris_sparc.sh .
  64. The installation script itself works despite this.
  65. Alternatively, if the CD is mounted with the option
  66. .CW nomaplcase
  67. the system will not force the names to lower case
  68. and all names will appear as we intended
  69. (see the Solaris manual entry for
  70. .I mount_hsfs ).
  71. Future CDs will use Rock Ridge format as well as Joliet to avoid the problem.
  72. (We attempted that this time
  73. but ran into trouble on Windows systems because of an error in the CD writing program.)
  74. Linux and FreeBSD show the names we intended.
  75. .LP
  76. When installing on Windows NT or Windows 2000, the installation program determines
  77. if the current user belongs to the
  78. .CW Administrators
  79. group.
  80. If so, the Start Menu entry is created in the
  81. .CW "All Users"
  82. profile, otherwise it is created in the user's private profile.
  83. On Windows 95 and Windows 98, if the user has a private profile the
  84. Start Menu entry is created there,
  85. otherwise it is created in the main system Start Menu.
  86. Furthermore,
  87. .CW setup.exe
  88. looks for
  89. .CW "Start Menu"
  90. to install the shortcut, but that name is locale-dependent,
  91. and thus the shortcut will not be installed correctly in non-English locales,
  92. although Inferno itself will be installed successfully.
  93. .LP
  94. When the installation completes normally,
  95. it prints ``installation complete'', but on some platforms it can then print
  96. ``Killed: ...'' followed by the command line used in the installation shell script.
  97. Provided it has said ``installation complete'' and there were no errors noted
  98. prior to that, the installation has succeeded.
  99. The ``Killed'' message results from the installation software
  100. running inside the Inferno environment having shut down that environment.
  101. It does not mean that installation failed.
  102. .LP
  103. If an installation does fail, for instance by running out of space,
  104. delete everything in the target directory before retrying the installation.
  105. Also see the ``Known Problems'' section below.
  106. .NH 1
  107. CD Number
  108. .LP
  109. There is a set of six unique numbers on the back of the CD case.
  110. You should keep the case or record the numbers:
  111. they identify your subscription, and you will need them
  112. to gain access to subscriber's services we provide electronically.
  113. (They are randomly generated and usable in a 6/49 lottery!)
  114. .NH 1
  115. Hosted Operating System versions
  116. .LP
  117. The software was compiled on the operating system versions listed below.
  118. UNIX systems show the output from
  119. .CW "uname -a"
  120. and the version of the C compiler,
  121. if known.
  122. See the section
  123. .I "Known problems"
  124. below for a list of known problems for any given release.
  125. .TS
  126. center;
  127. lf(B) lf(R)w(4i) .
  128. Windows Nt Windows NT4.0 SP4
  129. Linux T{
  130. Linux vespa 2.2.9-19mdk #1 Wed May 19 19:53:00 GMT 1999 i586 ...
  131. .br
  132. (gcc-2.91.66)
  133. T}
  134. Solaris T{
  135. SunOS pazzo 5.6 Generic_105181-03 sun4u sparc SUNW,Ultra-5_10
  136. .br
  137. (gcc 2.95)
  138. T}
  139. FreeBSD 4.x T{
  140. FreeBSD outside 4.0-RELEASE FreeBSD 4.0-RELEASE #0: ... i386
  141. .br
  142. (gcc 2.95.2)
  143. T}
  144. HP/UX T{
  145. HP-UX hpserv1 B.10.20 A 9000/715 2013314861 ...
  146. .br
  147. (c89)
  148. T}
  149. IRIX 5.3 T{
  150. IRIX invece 5.3 11091812 IP22 mips
  151. .br
  152. (MIPS cc)
  153. T}
  154. Plan9/x86 Third Edition, updates to 5th June 2001
  155. .TE
  156. .LP
  157. The Windows version has also been tested and
  158. used extensively on the following variants:
  159. .DS
  160. .ft B
  161. Windows '95
  162. Windows '98
  163. Windows Me
  164. .ft R
  165. .DE
  166. We have also installed and run the system under Windows 2000, both
  167. client and server, but there is a problem with the cursor under Windows 2000 client (see below).
  168. .LP
  169. Inferno source code is included for the following, but they have neither been
  170. built nor tested:
  171. .DS
  172. .ft B
  173. Plan 9 (mips, sparc, power)
  174. Solaris/386
  175. Unixware v 2.3
  176. .ft R
  177. .DE
  178. .NH 1
  179. Known problems
  180. .LP
  181. See
  182. .CW www.vitanuova.com/inferno/
  183. for current pointers to information about Inferno.
  184. You should particularly check the Frequently Asked Questions at
  185. .P1
  186. www.vitanuova.com/inferno/faq.html
  187. .P2
  188. and the current Bugs list at
  189. .P1
  190. www.vitanuova.com/inferno/bugs.html
  191. .P2
  192. The Subscriber area will include online updates after 6 July 2001.
  193. .LP
  194. Now, the bad news:
  195. .IP \(bu
  196. The Windows NT installation program will create a Start Menu shortcut that invokes
  197. .I emu
  198. with a
  199. .CW "-g800x600"
  200. argument. The
  201. .I emu
  202. display will be incorrect if the screen width available is less than 800 pixels and is not a multiple
  203. of four. The problem can be seen if the PC is configured with a resolution of 800x600 pixels
  204. and the Microsoft Office shortcut bar is active. The simplest fix is to change the
  205. .I emu
  206. shortcut to use a
  207. .CW "-g788x600"
  208. argument instead.
  209. .IP \(bu
  210. As mentioned above, the Windows NT installation program looks only for
  211. .CW "Start Menu"
  212. not the locale-dependent name.
  213. .IP \(bu
  214. Changing the cursor image does not work under Windows 2000 Client;
  215. this mainly affects
  216. .I acme ,
  217. which changes the cursor when rearranging or resizing frames.
  218. .IP \(bu
  219. The HP version of hosted Inferno was generated by HP/UX version B.10.20.
  220. On the HP platform,
  221. .CW emu
  222. can currently only be run in interpreted mode; the compiled mode (ie,
  223. .CW -c1
  224. option)
  225. will fault.
  226. .IP \(bu
  227. Some Inferno calls return error strings provided by Windows, without modification.
  228. They can be obscure:
  229. for instance, ``windows error 10049'' is produced by network calls
  230. that attempt to use symbolic names when
  231. .I cs (8)
  232. has not been started.
  233. .IP \(bu
  234. On all systems, the mapping from Inferno names and permissions to the underlying
  235. operating system's names and permissions needs more work, particularly on Windows.
  236. Common problems include:
  237. .RS
  238. .IP \-
  239. File names in the Inferno environment cannot be longer than 27 bytes.
  240. .IP \-
  241. .I Ftpfs
  242. cannot access files with long names or names containing spaces.
  243. .IP \-
  244. The contents of
  245. .CW /dev/user
  246. on Windows will contain the Windows user name, which can contain spaces.
  247. .IP \-
  248. Files created inside the Inferno hierarchy by host system applications
  249. can sometimes have odd permissions when accessed within Inferno.
  250. .IP \-
  251. Readonly files and open files cannot be removed under Windows.
  252. .LP
  253. In general, the mapping between Inferno users and groups and Windows/Nt users and groups
  254. is systematic, as described in
  255. .I sys-stat (2):
  256. .QS
  257. .I Emu
  258. attempts to maintain a limited but consistent map
  259. between Inferno and NT worlds, specifically between Inferno
  260. names and NT security IDs.
  261. Special NT group `Everyone'
  262. represents `other' for file permissions. The Inferno uid is
  263. the file owner under NT; the Inferno gid reported is the
  264. first user in the file's ACL that is neither the owner nor
  265. Everyone; failing that, the gid is the file's owner.
  266. .QE
  267. .LP
  268. The effects of this mapping are sometimes peculiar: for instance, something that
  269. is thought of as a user appears as the group name in
  270. .I ls ,
  271. and vice-versa.
  272. Either the implementation or the mapping might need to be rethought.
  273. .RE
  274. .IP \(bu
  275. .I bufio (2)
  276. maintains an internal list of files open for output,
  277. to support its little-used
  278. .CW flush -all
  279. operation.
  280. Unfortunately, that means that if several processes
  281. use the same Bufio module instance (the result of a single
  282. .CW load )
  283. concurrently for output to different files, they must separately interlock the open, create and close calls.
  284. .IP \(bu
  285. The file
  286. .CW utils/5l/thumb.c
  287. contains comments in the C++ style, which (reasonably enough) are not accepted by the
  288. ANSI C compiler on the HP/UX system we used, and thus the current
  289. .CW 5l
  290. is not compiled for HP/UX; they will be changed to ANSI C comments by
  291. one of the online updates.
  292. .NH 1
  293. Contents
  294. .LP
  295. This revision offers the following, compared to the July 2000 release.
  296. .SH
  297. .I "Repairs and changes"
  298. .IP \(bu
  299. Many bug fixes and improvements appear throughout.
  300. Many commands have been revised to print usage and diagnostic consistently, and give reliable exit status for
  301. .CW sh .
  302. .IP \(bu
  303. The shell
  304. .CW sh
  305. has repairs and several visible changes:
  306. .I sh-expr (1)
  307. implements a
  308. .CW %
  309. operator for remainder;
  310. a new
  311. .CW @
  312. operator creates a sub-shell to execute a command, allowing the calling shell to be insulated
  313. by
  314. .CW pctl
  315. (see
  316. .I sh-std (1))
  317. from changes to name space and environment;
  318. environment variables are stored in printable form;
  319. a newline is allowed after a caret;
  320. and everyone's favourite change, the colon character
  321. .CW : ' `
  322. is no longer reserved in argument words
  323. (allowing URLs to be given without quoting).
  324. .IP \(bu
  325. Inferno's Acme has been revised to match the version in Plan 9 (Third Edition).
  326. In particular, the
  327. .CW Edit
  328. built-in has been added, allowing the use of structural regular expressions
  329. and the
  330. .CW sam
  331. command language for efficient editing within
  332. Acme,
  333. replacing the
  334. .CW /acme/edit
  335. suite of commands.
  336. The Acme panes have acquired a similar touch of colour.
  337. .IP \(bu
  338. Charon has also had many fixes and improvements, particularly to
  339. Javascript extraction, frames and layout code.
  340. Sometimes the `fix' requires making Charon mimic the interpretation of incorrect HTML
  341. of other browsers.
  342. The PNG image format is now supported.
  343. Cookies are enabled by default (too many sites use them);
  344. parsing and production of the cookie file has been repaired.
  345. The progress bar is more compact.
  346. Support for longer SSL keys is enabled by default.
  347. .IP \(bu
  348. The software installation commands
  349. .CW install/*
  350. have been extensively revised,
  351. and documented by
  352. .I archfs (4)
  353. and
  354. .I create (8).
  355. They are based (though not entirely) on Russ Cox's update
  356. package for Plan 9.
  357. .IP \(bu
  358. .I format (8)
  359. can format an ordinary file, for instance to prepare flash partition
  360. contents in a hosted environment for a native Inferno device.
  361. .IP \(bu
  362. .CW mount
  363. allows the certificate file to be named directly.
  364. .IP \(bu
  365. .CW ns
  366. correctly quotes the fields in its output.
  367. .IP \(bu
  368. .CW /services/server/config
  369. no longer gives the unauthenticated
  370. .CW nobody ') (`
  371. option to
  372. .I styx (8);
  373. some unused entries have also been deleted.
  374. .IP \(bu
  375. .I srv (8)
  376. passes all arguments to servers it spawns, including the command name.
  377. It also ensures each server has its own process group, file descriptors
  378. and name space.
  379. .IP \(bu
  380. .I stack (1)
  381. has a new
  382. .CW -p
  383. option to add names to the source file search list.
  384. .IP \(bu
  385. .I deflate (2)
  386. correctly detects end-of-file;
  387. .I inflate (2)
  388. correctly decodes the combined compressed code-length tables
  389. .IP \(bu
  390. Tk's handling of objects in canvases is better:
  391. raise and lower work properly; stipple is implemented.
  392. .IP \(bu
  393. Tk now knows that a window pops up when resized, and adjusts
  394. the z-order accordingly.
  395. .IP \(bu
  396. Tk's scroller always expands the fraction of a
  397. .CW moveto
  398. when it evaluates the scrolling command.
  399. .SH
  400. .I "New commands and modules"
  401. .IP \(bu
  402. .I ftpfs (4)
  403. provides a way to make a remote FTP site visible in the Inferno name space
  404. (it was documented in the printed manual but not previously included with the system).
  405. .IP \(bu
  406. .I listen (1)
  407. provides a convenient way to listen for incoming calls to one or more Inferno services,
  408. with optional use of
  409. .I ssl (3)
  410. for authentication and encryption.
  411. This can replace the clumsy use of
  412. .I srv (8).
  413. .IP \(bu
  414. .I dial
  415. (see
  416. .I listen (1))
  417. is the complement of
  418. .I listen ;
  419. it dials a service, with optional authentication and encryption.
  420. .IP \(bu
  421. .I lockfs (4)
  422. enforces multiple reader, exclusive writer access to the contents of a name space.
  423. .IP \(bu
  424. The device
  425. .I prof (3)
  426. serves a name space for controlling the profiling of Limbo modules,
  427. and retrieving the resulting data.
  428. The module
  429. .I profile (2)
  430. offers a convenient interface, relating the profiling data to the source code.
  431. Finally,
  432. .I prof (1)
  433. is the command line interface to enable profiling and display the results.
  434. .IP \(bu
  435. .CW uuencode
  436. and
  437. .CW uudecode
  438. interpret a format used to encode binary data printably on Usenet and in mail messages;
  439. see
  440. .I uuencode (1).
  441. .IP \(bu
  442. .I Read (1)
  443. writes to standard output the result of a single
  444. .I sys-read (2)
  445. of a given number of bytes from standard input,
  446. with optional seek offset.
  447. (See
  448. .I getlines
  449. in
  450. .I sh-std (1)
  451. for a way to read a line from standard input.)
  452. .IP \(bu
  453. .I Tcs (1)
  454. uses
  455. .I convcs (2)
  456. to offer character set conversion on files.
  457. .IP \(bu
  458. .I wm-misc (1)
  459. mentions
  460. .CW wm/mand ,
  461. a browser for fractals,
  462. and
  463. .CW wm/polyhedra ,
  464. a polyhedra viewer
  465. .IP \(bu
  466. .I cfg (2)
  467. provides a module to read configuration files.
  468. .IP \(bu
  469. .I dividers (2)
  470. provides user-draggable dividing lines to separate Tk widgets,
  471. allowing screen space to be allocated to widgets by dragging a dividing line.
  472. .IP \(bu
  473. .I imagefile (2)
  474. offers support for reading PNG image files
  475. .SH
  476. .I "Interface changes and extensions"
  477. .IP \(bu
  478. .CW Url
  479. .CW /module/url.m ) (
  480. now requires an
  481. .CW init
  482. function to be invoked before other functions in the module
  483. .IP \(bu
  484. .I convcs (2)
  485. has changed its interface significantly (see the manual page);
  486. it also offers support for UTF-7.
  487. Even the module name has changed, to
  488. .CW Convcs
  489. (from
  490. .CW ConvCS ).
  491. .IP \(bu
  492. .I plumber (8)
  493. now returns an error to a message's sender if it cannot be plumbed,
  494. as was previously documented;
  495. it handles
  496. .CW ^
  497. correctly in regular expressions
  498. .IP \(bu
  499. .I readdir (2)
  500. returns all file names in union directories
  501. .IP \(bu
  502. .I string (2)'s
  503. quoting and unquoting functions are correct and more efficient
  504. .IP \(bu
  505. .I styxlib (2)
  506. forces an internal process into a new empty name space to
  507. allow detection of the last unmount of the served space by a file server
  508. .IP \(bu
  509. .I translate (2)
  510. supports writing Unicode characters in hexadecimal using Limbo's \f5\eu\fP\fIXXXX\fP
  511. syntax
  512. .IP \(bu
  513. .I workdir (2)
  514. returns a better guess at the current directory on native Inferno
  515. (hosted implementation will be supported in the next update)
  516. .IP \(bu
  517. .I cs (8)
  518. keeps a cache of recent translations;
  519. .I ipsrv (8)
  520. uses UDP/IP by default, not TCP/IP, for domain name lookup
  521. .IP \(bu
  522. .I httpd (8)
  523. can now be said to work as documented
  524. .IP \(bu
  525. .I wm-sh (1)
  526. provides a new control file
  527. .CW /chan/shctl
  528. to allow it to be kept informed
  529. of the current directory (and
  530. .CW /lib/wmsetup
  531. defines a Shell function to do that)
  532. and to implement buttons below the title bar,
  533. as with
  534. .I mash-tk (1).
  535. .IP \(bu
  536. A collection of playing card images has been added in
  537. .CW /icons/cards .
  538. .IP \(bu
  539. .CW /lib/wmsetup
  540. defines a
  541. .CW cd
  542. function to keep
  543. .CW wm/sh
  544. informed of the current directory;
  545. the
  546. .CW Web
  547. menu item is now called
  548. .CW Charon ;
  549. a new
  550. .CW Manual
  551. entry invokes
  552. .I wm-man (1);
  553. and the game
  554. .CW Tetris
  555. has been added to the
  556. .CW Misc
  557. submenu.
  558. .IP \(bu
  559. The manual pages
  560. .I draw-font (2),
  561. .I draw-image (2),
  562. and
  563. .I draw-screen (2)
  564. now document
  565. .CW display
  566. and
  567. .CW screen
  568. members of various data structures.
  569. .IP \(bu
  570. .I security-auth (2)
  571. and
  572. .I security-login (2)
  573. note that
  574. .CW keyring.m
  575. must be included.
  576. .IP \(bu
  577. In
  578. .I sh (2),
  579. the function
  580. .CW exec
  581. has been renamed
  582. .CW run ,
  583. to reflect more accurately what it does.
  584. .IP \(bu
  585. In
  586. .I sys-pctl (2),
  587. the type of the second parameter to
  588. .CW Sys->pctl
  589. is actually
  590. .CW "list of int"
  591. not
  592. .CW "list of ref Sys->FD" .
  593. .IP \(bu
  594. .I ssl (3)
  595. documents the new
  596. .CW encalg
  597. and
  598. .CW hashalg
  599. files, which list the supported algorithms.
  600. .IP \(bu
  601. .I canvas (9)
  602. describes the new
  603. .CW -winding
  604. option
  605. .IP \(bu
  606. .CW /services/cs/services
  607. lists the Software Download Server port
  608. and removes others that are obsolete.
  609. .IP \(bu
  610. .CW /services/server/config
  611. no longer gives the unauthenticated
  612. .CW nobody ') (`
  613. option to
  614. .I styx (8);
  615. some unused entries have also been deleted.
  616. .SH
  617. .I "Limbo compiler"
  618. .IP \(bu
  619. The Limbo compiler correctly clears reference values (eg,
  620. .CW list ,
  621. .CW ref
  622. and
  623. .CW array )
  624. when they go out of scope when necessary (eg, in loops), causing the storage to be reclaimed,
  625. and the values to be correctly
  626. .CW nil
  627. when the scope is next entered.
  628. .IP \(bu
  629. A bug that caused temporaries sometimes to be reused too early has been fixed.
  630. .IP \(bu
  631. The compile-time evaluation of floating-point
  632. .CW >
  633. does not calculate
  634. .CW >=
  635. instead.
  636. .IP \(bu
  637. A little context has been added to `syntax error' messages.
  638. .SH
  639. .I "Compilers and architectures"
  640. .IP \(bu
  641. The system now supports the Thumb variant of the ARM architecture,
  642. including full interworking of Thumb code and 32-bit ARM code;
  643. there is a Thumb JIT compiler for the virtual machine, and support for
  644. Thumb mode in the disassembler and debugger.
  645. The Thumb compiler is
  646. .CW tc ;
  647. the existing ARM linker
  648. .CW 5l
  649. links both ARM and Thumb code.
  650. .IP \(bu
  651. A bug in
  652. .CW 5l
  653. has been fixed that could very occasionally place a literal pool inside a case table.
  654. .IP \(bu
  655. The compilers find include files correctly under Nt.
  656. .SH
  657. .I "Hosted and Native Inferno"
  658. .IP \(bu
  659. .I Emu
  660. has the following fixes and improvements:
  661. .RS
  662. .IP \-
  663. support for logging of memory pool usage
  664. .IP \-
  665. FreeBSD support uses
  666. .I rfork
  667. not
  668. .I pthreads .
  669. .IP \-
  670. Linux support no longer relies on being able to set the TSS register.
  671. .IP \-
  672. A memory leak when a kernel process exits has been fixed.
  673. .IP \-
  674. A start has been made on tidying up the audio support; the
  675. .CW svp.c
  676. file has gone and platforms that do not currently support audio
  677. no longer must include a stub driver.
  678. .IP \-
  679. The Linux and
  680. FreeBSD ports use an alternative implementation of Inferno graphics
  681. under X11 that should allow the program to run under 16-bit graphics and higher.
  682. .RE
  683. .IP \(bu
  684. For the native kernels only:
  685. .RS
  686. .IP \-
  687. The native kernel implements Rob Pike's `lexical names' (as in Plan 9), which helps
  688. provide more sensible data to
  689. .I workdir (2).
  690. The hosted Inferno implementation of lexical names will appear in a future update.
  691. Note that
  692. .CW /os/port/ns.c
  693. no longer exists, and native kernel configuration files should no longer mention
  694. .CW ns
  695. in the
  696. .CW port
  697. section.
  698. Drivers that serve a directory hierarchy might need to support the
  699. .CW DEVDOTDOT
  700. value for the table index in their
  701. .CW devgen
  702. function.
  703. .IP \-
  704. .CW os/ip/bootp.c
  705. will correctly time out if there is no response.
  706. .CW os/ip/ihbootp.c
  707. will now work with an RFC1084 BOOTP server.
  708. Note that both are likely to be replaced in future by
  709. Limbo applications that do BOOTP and DHCP.
  710. .IP \-
  711. .CW os/pc/cga.c
  712. provides a replacement for
  713. .CW screen.c
  714. for use when only a simple CGA console is needed or possible.
  715. .IP \-
  716. The file descriptor array is correctly freed when the file descriptor
  717. group is closed, fixing a memory leak.
  718. .IP \-
  719. A few files that were left off the July 2000 CD have been included this time.
  720. .IP \-
  721. ARM/Thumb kernels have been implemented; those implementations
  722. are not included in this update because the hardware is specialised but ask if you could use them.
  723. .RE
  724. .LP
  725. The remaining points are common to both hosted and native Inferno:
  726. .IP \(bu
  727. A write on closed pipe does not produce an exception if the process has been killed.
  728. .IP \(bu
  729. .I Devbwrite
  730. will not lose memory if an error is raised by the device driver (eg, interrupt).
  731. .IP \(bu
  732. .I ssl (3)
  733. has
  734. .CW encalg
  735. and
  736. .CW hashalg
  737. files
  738. .IP \(bu
  739. .I Kfs (3)
  740. offers
  741. .CW readonly
  742. and
  743. .CW readwrite
  744. commands, and an
  745. .CW ro
  746. (readonly)
  747. option to the
  748. .CW init
  749. request.
  750. .IP \(bu
  751. .I Srv (3)
  752. rejects attempts to create an unusable name containing a `/'.
  753. .IP \(bu
  754. The
  755. .CW NODEVS
  756. flag of
  757. .I sys-pctl (2)
  758. is correctly copied when the name space is duplicated.
  759. .\" the following is only in the 386 version
  760. .\" .IP \(bu
  761. .\" .I Prog (3)
  762. .\" can optionally give the correct Dis pc for the debugger even for compiled modules; if
  763. .\" .CW cflag
  764. .\" (or
  765. .\" .CW -c
  766. .\" option for
  767. .\" .I emu )
  768. .\" is 2 not 1, a mapping table is retained after JIT compilation.
  769. .SH
  770. .I "SA1100 native"
  771. .IP \(bu
  772. A new
  773. .CW archether
  774. function in
  775. .CW arch*.c
  776. (when required)
  777. is invoked by
  778. .CW devether.c
  779. to discover the configuration of Ethernet devices.
  780. .IP \(bu
  781. .CW devuart.c
  782. supports the use of XON/XOFF;
  783. the first line of the
  784. .CW stat
  785. file gives the current UART settings;
  786. it no longer panics if an overrun occurs;
  787. and
  788. .CW setlength
  789. accesses the correct structures.
  790. .IP \(bu
  791. The CS8900 driver
  792. .CW ether8900.c
  793. is more general, supporting the I/O port interface as well as the memory interface.
  794. .IP \(bu
  795. Obsolete definitions have been removed from several include files
  796. (eg,
  797. .CW io.h )
  798. and obsolete (typically #ifdef'd code) has been removed from source files.
  799. .NH 1
  800. IDEA™
  801. .LP
  802. The software includes an implementation of the IDEA encryption algorithm,
  803. for non-commercial use.
  804. IDEA was patented by Ascom-Tech AG (European patent EP 0 482 154 B1, US patent number
  805. US005214703, and patent filed in Japan).
  806. At time of writing, there was no licence fee required for noncommercial use.
  807. If you intend to use IDEA encryption commercially with Inferno, you should consult
  808. .CW http://www.it-sec.com/idea_lic_policy.html
  809. for the current licensing policy of iT_SEC Systec Ltd, which currently holds the patents and trademark.
  810. Note that IDEA is not required for
  811. successful use of Inferno.
  812. It is not by default enabled by
  813. .I rstyxd (8),
  814. and otherwise is used only by SSL3 (for the browser), in
  815. .CW /appl/lib/crypt/ssl3.b ,
  816. where it can be disabled.
  817. .NH 1
  818. Updating the July 2000 Full Source release
  819. .LP
  820. A set of update packages for the July 2000 release is provided in the directory
  821. .CW /updates
  822. on this June 2001 CD.
  823. You should install the updates as the host operating system user who owns the Inferno files and directories
  824. on your system.
  825. You might like to take a backup copy of the existing tree, just in case.
  826. Do the following to update the installation.
  827. (Next time we hope to provide a more automated scheme.
  828. You might check
  829. .CW www.vitanuova.com/inferno/
  830. to see if there are any more recent instructions.)
  831. .IP 1.
  832. Copy the directory
  833. .CW updates
  834. and its subdirectories from the CD to a directory
  835. .CW updates
  836. in the root of your existing Inferno hierarchy.
  837. Make sure there is sufficient space in the file system holding that hierarchy.
  838. If all platform files are copied and installed, about 45 Mbytes will be needed
  839. to hold the compressed update packages in
  840. .CW updates ,
  841. with a further
  842. 35 Mbytes needed for an temporary uncompressed copy
  843. of the largest package, and allow 10 Mbytes for new additional material, giving
  844. 90 Mbytes in all.
  845. The
  846. .CW updates
  847. directory can be removed after installation.
  848. .IP 2.
  849. Start the existing Inferno
  850. .I emu ;
  851. it will be quicker if you use the
  852. .CW -c1
  853. option to force compiled mode.
  854. It is best to use only the Inferno console; do not start the window system, since
  855. the updates will change files in the running system.
  856. On the other hand, it is a good idea to make the window in the host
  857. operating system a scrolling one, so that you can scroll back to
  858. see any errors.
  859. All following commands are run in the Inferno environment.
  860. .IP 3.
  861. Change to the directory
  862. .CW updates
  863. and load the standard Inferno shell module:
  864. .RS
  865. .P1
  866. cd /updates
  867. load std
  868. .P2
  869. .RE
  870. .NE 1i
  871. .IP 4.
  872. Unpack the updated installation software:
  873. .RS
  874. .P1
  875. gunzip <install.tgz | {cd /; gettar}
  876. .P2
  877. .RE
  878. .IP 5.
  879. Update the installed Inferno, source and utility source directories
  880. using the script
  881. .CW applybase :
  882. .RS
  883. .P1
  884. sh ./applybase
  885. .P2
  886. .LP
  887. That script updates the
  888. .CW inferno ,
  889. .CW src
  890. and
  891. .CW utils
  892. packages.
  893. You will see one warning:
  894. .P1
  895. skipping /dis/install/inst.dis: locally modified
  896. .P2
  897. because that file was updated by step 4.
  898. You might see other warnings if you have modified any other files from the original release.
  899. .RE
  900. .IP 6.
  901. Update one or more platform specific files for your platform(s).
  902. The directories are named after the platforms:
  903. .CW Solaris
  904. for Solaris,
  905. .CW Plan9
  906. for Plan 9,
  907. .CW Nt
  908. for all Windows systems,
  909. and so on.
  910. For each
  911. .I platform
  912. that you run, do:
  913. .RS
  914. .P1
  915. for (a in \fIplatform\fP/*) {install/inst -v -t $a}
  916. .P2
  917. .RE
  918. .IP 7.
  919. Quit
  920. .I emu .
  921. The new version of
  922. .I emu
  923. will be called
  924. .CW emu.new
  925. in the platform-specific directory
  926. (eg,
  927. .CW Solaris/sparc/bin/emu.new ).
  928. Rename the old
  929. .CW emu
  930. file as
  931. .CW emu.old ,
  932. then rename the new
  933. .CW emu.new
  934. as
  935. .CW emu
  936. on Plan 9 and Unix systems,
  937. or
  938. .CW emu.exe
  939. on Windows.
  940. When run, it should announce itself as
  941. ``Inferno Third Edition (18 Jun 2001)''.