Commits

yoshihiro503  committed a4bcf67

import orginal source code

  • Participants

Comments (0)

Files changed (1051)

File cl75/CHANGES

+Caml Light 0.75:
+----------------
+
+Caml Light 0.74:
+---------------
+
+* Typing: when typing a sequence (e1;e2), warn if e1 does not have
+  type "unit".
+
+* Standard library:
+  - module string: added index_char, rindex_char, index_char_from,
+    rindex_char_from.
+  - module vect: added init_vect.
+  - module format: added a printf facility to control the pretty-printer.
+  - module float: more floating-point functions (all ANSI-C functions).
+  - The iterators do_list, do_vect et al have more restricted types, e.g.
+    ('a -> unit) -> 'a list -> unit instead of ('a -> 'b) -> 'a list -> unit.
+  - module sys: new function sys__time to measure elapsed time.
+
+* MS Windows port: fixed bugs in functions over graphics__image.
+
+* libnum: square root rewritten. Many bug fixes to support 64 bits
+  architectures. Lot of functions rewritten or added. More tests
+  added.
+  Module nat: now performs sanity checks.
+  New module fnat: the same functionality as module nat, without
+  sanity checks.
+  The toplevel "camlnum" now comes with printers installed for the
+  num types.
+  Assembly code for pentium processors is now supported (on average
+  this implementation is approximately 3 times faster than the pure C
+  implementation) (set the variable BIGNUM_ARCH to pentium in the
+  Makefile of the contrib directory).
+
+* camllex: fixed bug causing undetected type errors in lexer definitions.
+
+Caml Light 0.73:
+---------------
+
+* Standard library:
+  - Fixed a bug with hasthbl__do_table_rev, causing #open of a module
+    with multiply defined identifiers to behave incorrectly.
+  - map__iter now conforms to the documentation w.r.t. old bindings.
+
+* MS Windows port: fixed several bugs in the interactive application
+  that showed up only under Win 3.1.
+
+Caml Light 0.72:
+---------------
+
+* Parsing: fixed precedence of alphanumeric user-defined infixes,
+  as well as lor, land, lxor; fixed location bug in error reporting
+  involving the empty list [].
+
+* Typing: better handling of constant or non-contractive type abbreviations
+  such as type 'a t == int or type 'a t == 'a.
+
+* Standard library:
+  - The type 'a option = None | Some of 'a is now a built-in type;
+  - Module "format": added ability to run several formatters with
+    different output channels in parallel;
+  - Module "genlex": better handling of comments and character literals;
+  - Module "hashtbl": fixed memory leak caused by hashtbl__remove;
+  - Module "int": added the constants max_int and min_int
+  - Module "printf": added the sprintf function to output to a string
+  - Module "stream": fixed unsharing bug in streams built by stream_from
+  - Module "string": added the "concat" function to catenate a list of strings.
+
+* Compilation: fixed handling of top-level exceptions in compilation
+  units (e.g. let x = raise Foo;;).
+
+* Run-time system: allocation bug for the Sys_error exception fixed;
+  fixed pointer assignment bug in the parsing engine.
+
+* MS Windows port: numerous fixes in the interactive toplevel application;
+  fully automatic installation procedure.
+
+* Emacs editing mode for Caml replaced by Ian Zimmerman's caml-mode.
+  It's a complete reimplementation that offers fully automatic
+  indenting and much more.
+
+* caml-tex formatter: also available for LaTeX 2e
+  (contributed by Jens Kloecker).
+
+* X11 graphics primitives: bug fixes in event handling and
+  interaction between close_graph and image reclaimation.
+
+* MS Windows graphics primitives: blit_image, draw_image, get_image
+  now working properly; drawing area no longer limited to 600x400.
+
+* libnum: bug in square root fixed.
+
+* libstr: fixed bug in string_before when length = 0.
+
+* libunix: pipe bugs in open_process_in fixed; termios interface more
+  POSIX compliant.
+
+
+Caml Light 0.71:
+---------------
+
+* Port to MS Windows (3.1, 95, NT).
+
+* Parsing: better handling of optional ";", concatenations (@, ^) now
+  associate to the right.
+
+* Typing: type constraints in inner lets could cause incorrect generalizations;
+  now, all type variables in type constraints are considered bound at
+  the outermost "let".
+
+* Compilation: bug fix in "when" clauses in pattern-matchings on mutables.
+
+* Standard library: fixed bug in parsing engine that generated wrong symbol
+  positions for epsilon-productions; various fixes in "format".
+
+* camlyacc: trailer text in grammar was not copied to generated file.
+
+* libunix: added "gettimeofday", bug fixes in "select", "times",
+  "open_process_in".
+
+* libnum: bug in conversion to string fixed.
+
+* French version for the Macintosh (thanks to Jerome Kasparian).
+
+Caml Light 0.7:
+--------------
+
+* Source-level debugger with replay capabilities. Compiler support for
+  the debugger added. [Unix-only]
+
+* New contributed libraries and tools:
+        - camltk: a complete X-windows toolkit based on TCL/TK.
+        - camlpro: a profiler for Caml Light programs (execution counts)
+        - lorder: determine ordering of .zo files at link-time
+
+* camlbrowser: a camltk-based graphics browser for Caml sources
+  and interfaces, with hypertext navigation. [Unix-only]
+
+* Polymorphism is now restricted to values (let x = e generalizes the type of
+  x only if e is syntactically a value, e.g. a constant, a variable, a
+  function, a tuple of values, etc). This ensures correct, type-safe handling
+  of polymorphic mutable structures.
+
+* "Guards" in pattern-matching (match ... with pat when cond -> expr).
+
+* Partial matches and unused match cases are correctly detected now.
+
+* Internationalized error messages (controlled by the LANG environment
+  variable; known languages so far: english, french, spanish,
+  german, and italian).
+  More detailed error messages.
+
+* Various fixes in the garbage collector to fight fragmentation of the
+  major heap, result in major speedups for some long-running programs.
+
+* Generic comparisons (prefix < : 'a -> 'a -> bool). Compiler optimizations
+  for comparisons on base types.
+
+* Type-checker rewritten in bottom-up style instead of top-down style.
+  Hopefully this makes type errors more understandable.
+
+* let rec (f : ty) = ... now supported.
+
+* New class of infix and prefix symbols supported (e.g. *=, !!, ++, with
+  precedence/associativity determined by their first character).
+
+* Syntactic sugar:
+  - Alternate syntax for string access and update (s.[i], s.[i] <- c).
+  - Final semicolons permitted in sequences, lists, arrays and records
+    (e.g. begin ...; ...; end or [1;2;]).
+  - Initial | permitted in pattern matchings and type definitions
+    (e.g. function | pat -> expr | ...
+     or type t = | Cstr1 | ...)
+  - "&&" and "||" synonymous for "&" and "or".
+
+* Optimized access to unqualified identifiers in symbol tables.
+
+* Parser cleaned up a bit, reduce/reduce conflicts eliminated.
+
+* New library modules: format (to write pretty-printers), gc (to control the
+  garbage collector and obtain various statistics on memory allocation).
+
+* The toplevel pretty-prints values and types.
+
+* New toplevel functions: install_printer (user-defined printing functions,
+  now type safe and associated with a type expression -- e.g. int list --
+  not with a type constructor -- e.g. list); set_print_depth and
+  set_print_length (control how much is printed).
+
+* Better support for non-generalizable type variables in phrases:
+  they no longer cause an error immediately, the check is delayed till
+  the end of the compilation unit.
+
+* Static type-checking of printf. User-defined printers supported in printf
+  formats (%a and %t).
+
+* "camlc -W" prints extra warnings (useless #open, capitalized variable, ...).
+
+* camlyacc: more checks on grammar for missing actions, etc.
+  Parsing engine now reentrant; a camlyacc-generated parser can call
+  another one in one of its actions. Bug with tokens having a tuple as
+  semantic attribute fixed.
+
+* Better support for 64-bit architectures: 32-bit architectures can read
+  values written on a file by a 64-bit architecture; max length of strings
+  and arrays now determined by the runtime system.
+
+* New primitive ouput_compact_value to write arbitrary values to disk in
+  a more compact (but more CPU-demanding) format than output_value.
+
+* More robust parsing of argv (some Unix kernels set argv[0] = argv[1] = file
+  when a #! file is run).
+
+* CAMLRUNPARAM environment variable to set GC parameters.
+
+* contrib/libgraph: implemented alternate event handling methods if async I/O
+  are not available; ask for system calls to be restarted if possible;
+  restart read and write system calls if interrupted; better handling
+  of "button up" and "mouse motion" events.
+
+* contrib/libnums: upgraded the bignum library; better 64-bit support
+  (but still has some 64-bit bugs); alternate names for num operations
+  (+/ -/ */ etc).
+
+Main incompatibilities with Caml Light 0.61:
+
+* Polymorphic generalization has been severely restricted to eliminate
+  unsoundness w.r.t. polymorphic mutables. As a consequence, several
+  "let" declarations that used to be polymorphic are now monomorphic,
+  which may cause type errors later. See the manual p. 54 for a complete
+  description of the problem and several workarounds.
+
+* Due to the new infix operators, extra blank space sometimes needs
+  to be inserted, e.g. `x+!y' should now be written `x+ !y'
+  (or better yet, `x + !y').
+
+
+Caml Light 0.61:
+----------------
+
+* Pattern-matching against (C x) where C has several arguments now works
+  correctly.
+
+* The fatal error "labels_of_type" has been fixed (it was raised when
+  typing e.label, where the type inferred for e is not a record type,
+  but an abbreviation for a record type).
+
+* Hashing has been rewritten to give consistent results across all 
+  architectures, including when -custom is used.
+
+* output_value and intern_value are now fully compatible across 32-bit and
+  64-bit architectures. A 32-bit architecture can read values written
+  on a 64-bit architecture.
+
+* Better error message when compiling a .ml whose .mli has not been compiled.
+
+* The preprocessed files are more compatible with cpp: (**) instead of /**/.
+
+* Typos in library interfaces fixed.
+
+Caml Light 0.6:
+---------------
+
+* Better handling of type abbreviations. Implementing an abstract type
+  as an abbreviation now works correctly.
+
+* Debugging mode (option -g to camlc and camllight) to get access
+  to the internals of module implementations.
+
+* 64-bit architectures are supported.
+
+* New library modules:
+        genlex    generic lexical analyser
+        set       applicative sets over ordered types
+        map       applicative maps over ordered types
+        baltree   balanced binary trees over ordered types
+
+* "compile" command at toplevel (especially useful in the Macintosh version).
+
+* #directory directive.
+
+* Better support for ISO-Latin-1 character set.
+
+* -i option also works when compiling .mli files.
+
+* Errors and warnings: detection of type redefinitions .ml/.mli; warning for
+  partial applications in sequences
+
+* Bug fixes: removed incorrect "optimizations" in stream parsers; incorrect
+  declaration of string__compare_strings; stream__stream_get fixed;
+  POPTRAP restarts correctly after signal handling.
+
+* Optimizations: io__input_line rewritten in C.
+
+* New functions: parsing__rhs_start, parsing__rhs_end; sys__interactive.
+
+* New contributed libraries and tools:
+        camlmode  Emacs editing mode for Caml Light
+        mletags   Indexing of Caml Light source files for use with Emacs "tags"
+        libnum    Arbitrary-precision arithmetic
+        libstr    String operations, regular expressions
+
+* The 80386 PC version is now DPMI-compliant, hence it can run under Windows
+  (in text mode inside a DOS windows and with no graphics, though).
+
+* More examples, including those from the book "Le langage Caml".
+
+* libunix: tty interface (POSIX termios), popen-style functions.
+
+Caml Light 0.5:
+---------------
+
+Language extensions:
+
+* Streams and stream matching, for writing parsers and printers.
+
+* Abstract types can now be implemented as type abbreviations.
+
+* Constructors for variant types are now either constant or
+non-constant, instead of having a fixed arity as before. This fixes
+the nasty problem of ref(1,2) being rejected because ref has arity 1.
+
+Extensions to the caml light environment:
+
+* A general mechanism to link Caml Light code with C code. As a
+consequence, an X-windows interface and a library of Unix system calls
+are now provided.
+
+* Two new commands: camllibr, to build libraries, and camlmktop, to
+construct custom toplevel systems.
+
+* Several new modules in the library (printf, hashtbl, random, stack,
+queue, ...)
+
+* Executable bytecode files are now machine-independent: you can run
+the same bytecode file on different architectures.
+
+Bug fixes: lots of them. The most important are:
+
+* Pattern-matching over mutable structures is now correctly compiled:
+modifying the matched structure after matching, then accessing parts
+of the structure used to fail in various ways; this is now safe.
+
+* Redefinition of exceptions is now correctly handled.
+
+Implementation changes:
+
+* A new garbage collector. The major collector is now incremental,
+meaning that garbage collection is even less disruptive than before.
+
+* The produced bytecode is slightly better, due to several new
+optimizations in the compiler back-end.
+
+* The linker has been separated from the compiler, and is now clever
+enough to avoid linking in useless code. To support this, the format
+of .zo files was changed. The new format is much more compact, loads
+faster, and supports libraries.
+
+* Autoconfiguration script.
+
+Microcomputer ports:
+
+* Graphics primitives.
+
+* For the Macintosh port, the toplevel system is now a standalone
+application, with its own user interface, and does not require MPW
+anymore. (The batch compilers still require MPW.)
+
+* The PC ports work in conjunction with TSR line editors.
+
+* The 80386 PC port is now VCPI-compliant, and handles keyboard
+interrupts correctly.
+
+Main incompatibilities with Caml Light 0.41:
+
+* Assignment operations such as :=, vect_assign, <- now return (), instead
+of the new value.
+
+* The "failure" exception from the standard library is now named "Failure".
+
+* Searching functions from the standard library (assoc, assq, ...) now
+raise "Not_found" on error, instead of "failure".
+
+* Some library modules have been renamed or modified. The old "unix"
+module is now named "sys". The new "sys" module is less Unix-specific.
+Some of the functions in the old "unix" module have disappeared, other
+have a slightly different interface. The old "hash" module is now
+subsumed by the "hashtbl" module.
+
+
+Caml Light 0.41:
+----------------
+
+* Alternate spelling for floating-point operators: +. -. *. etc.
+
+* New library functions: io__input_line, lexing__create_lexer_string.
+
+* io__seek*, io__pos* more efficient.
+
+
+Caml Light 0.4:
+---------------
+
+* A lexer generator (in the style of lex) and a parser generator (in
+  the style of yacc). These tools makes it easier to write compilers
+  and similar programs. They also clean up the bootstrapping process a lot.
+
+* Two new ports to microcomputers: to the 386 PC, and to the Amiga.
+  The 386 PC version runs in 32 bit protected mode, and takes
+  advantage of memory above 640K.
+
+* Many bug fixes.
+
+* A simpler installation procedure.
+
+Caml Light 0.3:
+---------------
+
+* First public release.

File cl75/COPYRIGHT

+LEGAL NOTICE
+
+Software: Caml Light, version 0.75 of Janvier 1999, hereinafter
+referred to as "the software".
+
+The software has been designed and produced by Xavier Leroy,
+Damien Doligez, Francois Rouaix, Jerome Vouillon and Pierre Weis,
+research workers for the Institut National de Recherche en Informatique et
+en Automatique (INRIA) - Domaine de Voluceau - Rocquencourt - 78153 Le
+Chesnay Cedex - France.
+
+INRIA holds all ownership rights to Caml Light version 0.75.
+
+The software has been registered at Agence pour la Protection
+des Programmes (APP).
+
+Preamble:
+
+The software is currently being developed and INRIA desires
+that it be used by the scientific community so as to test, evaluate
+and develop it.  To this end, INRIA has decided to have a prototype of
+the software distributed on the Internet.
+
+a- Extent of the rights granted by the INRIA to the user of the software:
+
+INRIA freely grants the right to use, modify and integrate the
+software in another software, provided that all derivative works are
+distributed under the conditions described in point b- below.
+
+b- Reproduction of the software:
+
+INRIA grants any user of the software the right to reproduce it so as
+to circulate it in accordance with the same purposes and conditions as
+those defined at point a- above.  Any copy of the software and/or relevant
+documentation must comprise reference to the ownership of INRIA and
+the present file.
+
+The user undertakes to distribute the software either as unmodified
+source files, identical to those originally made public by INRIA, or as
+executable binaries obtained by compiling the original source files.
+
+Distribution of derivative works obtained by modifying the sofware or
+integrating it in another software is allowed only if the distribution
+consists of the unmodified, original source files for the software,
+along with difference files (patches) to be applied by the user of the
+derivative work.
+
+As regards any other type of distribution, the user undertakes to
+apply to obtain the express approval of INRIA.
+
+c- Guarantees:
+
+Please note that the software is a product currently being developed.
+INRIA shall not be responsible in any way concerning conformity, and in
+particular shall not be liable should the software not comply with the
+requirements of the user, INRIA not being obliged to repair any
+possible direct or indirect damage.
+
+d- Distribution of executable files generated by Caml Light:
+
+INRIA freely grants the right to distribute bytecode executable files
+generated by the Caml Light compiler (camlc). Binaries of
+the Caml Light run-time system (camlrun), with the sole condition that
+the documentation include the following statement:
+
+   "This software includes the Caml Light run-time system,
+    which is copyright 1991-1997, INRIA."
+
+Executable files that include the Caml Light interactive system
+(such as those generated by the camlmktop command) can also be
+distributed freely, with the sole condition that the distribution
+includes the following statement:
+
+    "This software includes the Caml Light interactive system,
+     which is copyright 1991-1997, INRIA."

File cl75/INSTALL

+
+               INSTALLING CAML LIGHT ON A UNIX SYSTEM
+
+
+1- Edit the file src/Makefile. Change the variable definitions at
+the beginning of the Makefile, to indicate which C compiler to use,
+and where to install files. See the machine-specific hints at the end
+of this file.
+
+2- Configure the system. In the src/ subdirectory, do:
+
+        make configure
+
+This generates the two configuration files "m.h" and "s.h" in the
+config/ subdirectory.  If something goes wrong during the make,
+or if the generated "m.h" and "s.h" files cause errors later on, then
+change to the config/ subdirectory, do
+
+        cp m-templ.h m.h
+        cp s-templ.h s.h
+
+and edit "m.h" and "s.h" by hand, following the guidelines in the
+comments.
+
+3- From the src/ subdirectory, do:
+
+        make world
+
+This builds all components of Caml Light for the first time. It takes
+about two minutes on a modern workstation. The "make" ends up with a
+little self-test. Don't forget to check the results, as
+indicated. This phase is fairly verbose; consider redirecting the
+output to a file:
+
+        make world > log.world 2>&1     # in sh
+        make world >& log.world         # in csh
+
+4- To be sure everything works well, you can try to bootstrap the
+system --- that is, to recompile all Caml Light sources with the newly
+created compiler. From the src/ subdirectory, do:
+
+        make bootstrap
+
+or, better:
+
+        make bootstrap > log.bootstrap 2>&1     # in sh
+        make bootstrap >& log.bootstrap         # in csh
+
+This takes slightly less time than the "make world" phase. The "make
+bootstrap" checks that the bytecode programs compiled with the new
+compiler are identical to the bytecode programs compiled with the old
+compiler. If this is the case, you can be pretty sure the Caml Light
+system has been correctly compiled. Otherwise, this does not
+necessarily means something went wrong. The best thing to do is to try
+a second bootstrapping phase: just do "make bootstrap" again.  It will
+either crash almost immediately, or re-re-compile everything correctly
+and reach the fixpoint.
+
+5- You can now install the Caml Light system. This will create the
+following commands (in the directory set to BINDIR in src/Makefile):
+
+        camllight       the interactive, toplevel-based system
+        camlc           the batch compiler
+        camlrun         the runtime system
+        camlyacc        the parser generator
+        camllex         the lexer generator
+        camlmktop       a tool to make toplevel systems that integrate
+                        user-defined C primitives
+
+From the src/ directory, become superuser and do "make install".
+
+6- The directory where camlrun resides must be in the PATH variable
+for camlc and camllight to work properly. (Actually, camlc and
+camllight are shell-scripts that call "camlrun" on various
+bytecode files.) Hence, if you have installed camlrun in a
+non-standard directory, be careful to add it to the PATH variable
+before running camlc or camllight.
+
+7- Now that the Caml Light compiler is installed, you can compile the
+tools and libraries contained in the contrib/ directory: source-level
+replay debugger, X Windows user interface toolkit, "tags" program for
+Emacs, arbitrary-precision rational arithmetic, Unix system calls
+interface, etc. The file contrib/INDEX gives a short description of
+the packages contained in contrib/ (what they do, what they require).
+The subdirectories of contrib/ also contain more information in README
+and INSTALL files.  Read the descriptions and choose which packages
+you need.
+
+8- Edit the file contrib/Makefile to indicate which packages to
+install, which C compiler to use, where to find external libraries on
+your system, and where to install files.  It is highly recommended to
+use the same C compiler used to compile the core system (the one
+specified in src/Makefile).
+
+9- Make sure you have not erased any of the files in src/ that have
+been generated during the compilation of the core system.  If you
+have, recompile the core system (step 3- above).
+
+10- From the contrib/ subdirectory, do:
+
+        make all
+
+or, better,
+
+        make all > log.all 2>&1     # in sh
+        make all >& log.all         # in csh
+
+11- You can now install the packages.  From the contrib/ directory,
+become superuser and do "make install".
+
+12- Installation is complete. Time to clean up.
+
+        (cd src; make clean)
+        (cd contrib; make clean)
+
+
+IF SOMETHING GOES WRONG:
+
+Read the "common problems" and "machine-specific hints" section at the
+end of this file.
+
+Check the files m.h and s.h in config/. Wrong endianness or alignment
+constraints in m.h will immediately crash the bytecode interpreter.
+
+If you get a "segmentation violation" signal, check the limits on the
+stack size and data segment size (type "limit" under csh or
+"ulimit -a" under bash). Make sure the limit on the stack size is
+at least 2M.
+
+Try recompiling the runtime system with optimizations turned off. The
+runtime system contains some complex, atypical pieces of C code that
+can uncover bugs in optimizing compilers. Alternatively, try another C
+compiler (e.g. gcc instead of the vendor-supplied cc).
+
+You can also build a debug version of the runtime system. Go to the
+src/runtime/ directory and do "make camlrund". Then, copy camlrund to
+../camlrun, and try again. This version of the runtime system contains
+lots of assertions and sanity checks that could help you pinpoint the
+problem.
+
+If something goes wrong during the compilation of one of the packages
+in contrib/, check the README and INSTALL files in the corresponding
+directory for hints. If you really can't get one of the packages to
+compile, remove it from the PACKAGES variable in contrib/Makefile and
+go ahead with the others.
+
+
+COMMON PROBLEMS:
+
+* camlc or camllight complain that camlrun cannot be found. Make sure
+that the directory containing camlrun is in your PATH (see point 6- above).
+
+* The Makefiles assume that make execute commands by calling /bin/sh. They
+won't work if /bin/csh is called instead. You may have to unset the SHELL
+environment variable, or set it to /bin/sh.
+
+* You can safely ignore the following warnings:
+
+- ar or ranlib complains that fix_code.o has no symbol table.
+  It's actually empty with some configurations.
+
+- type clashes between enumeration types and integers. This is perfectly
+  correct ANSI C.
+
+* gcc 2.6.0 has been reported to generate incorrect code for the
+runtime system in -O mode. Upgrade to 2.7.2 or turn -O off.
+
+MACHINE-SPECIFIC HINTS:
+
+* On HP 9000/700 machines under HP/UX 9.  Some versions of cc are
+unable to compile correctly the runtime system (wrong code is
+generated for (x - y) where x is a pointer and y an integer). This
+causes "make world" to crash when compiling in src/lib.  Fix: use
+another C compiler (gcc works fine).
+
+* On DECstations 3000 under OSF1 3.0: "make configure" hangs while
+testing asynchronous I/O. This may even hang your login shell as well.
+Apparently, asynchronous I/O are severely buggy in the 3.0 kernel.
+Fix: comment out lines 287-290 in config/autoconf and run "make configure"
+again.
+
+* On older versions of Linux, it has been reported that sed has a
+non-standard syntax for scripts that causes some of the sed-scripts in
+src/runtime/Makefile and src/linker/Makefile to fail during "make world".
+(We did not experience this problem with the versions of Linux we
+use.) You'll have to adapt the sed scripts, then do "make clean", then
+do "make world" again. It is crucial to do "make clean", otherwise
+incorrectly generated files will remain.
+
+* On MIPS machines from MIPS Co.  Add "-systype bsd43" to OPTS.
+Also, some versions of the cc compiler are reportedly unable to
+compile src/runtime/interp.c ("as1: internal: unexpected opcode bcond06").
+Either compile without optimizations (remove -O from OPTS in
+src/Makefile) or use gcc.
+
+* On some Next machines. cc pretends to be gcc but is not quite gcc.
+If the compilation of src/runtime/interp.c causes syntax errors, insert
+#undef __GNUC__ at the very beginning of src/runtime/misc.h.
+
+* On SGI Indigo under IRIX 4.0. "ar" emits some warnings about multiple
+definitions of global variables. Ignore them; that's just ANSI pedantism.
+
+* On Macintoshes under A/UX with gcc. It may be necessary to add
+-D_SYSV_SOURCE to OPTS.
+
+
+

File cl75/KNOWN-BUGS

+The following problems have not been fixed at the time of this release:
+
+1- Stream concatenation using [< ... >] does not always preserve the
+   sharing among streams, and sometimes duplicate stream subcomponents.
+   For instance, if you define s' = [< '1; s >] and then read alternatively
+   from s' and from s, a given element of s can be read twice.
+   The problem occurs only if s is in tail position inside s'.
+   To guarantee proper sharing, move s in non-tail position, e.g.
+   take s' = [< '1; s; [<>] >].

File cl75/PORTING

+		Porting Caml Light to another system
+		------------------------------------
+
+This note contains some hints on how to port Caml Light to a machine
+that does not run Unix.
+
+ARCHITECTURAL REQUIREMENTS:
+
+Caml Light has been designed for 32-bit architectures, with
+a flat address space. Porting to segmented address spaces is very
+difficult (the 8086 port required a huge amount of work). 
+The code contains support for 64-bit architectures, but has only been
+tested on a Dec Alpha.
+
+COMPILER REQUIREMENTS:
+
+You'll need a robust, but not too fussy ANSI-C compiler. Robust,
+because the code for the runtime system is pretty complex (one huge
+function, a few large macros), and has been reported to break some
+compilers. Not too fussy, because some parts are in old-style C, and
+will probably be rejected by compilers that insist on doing inter-file
+type checking.
+
+OPERATING SYSTEM DEPENDENCIES:
+
+Caml Light has been developed under Unix, but actually uses very few
+Unix-specific features. All system functions used are in the standard
+ANSI C library, except open, read, write, close and lseek. Many