* Bug fixes
* New features:
- made configure script work on PlayStation 3
- ARM port: brought up-to-date for Debian 4.0 (Etch)
- many other small changes and bugfixes in camlp4, ocamlbuild, labltk,
emacs files
By using /bin/ksh (${SH}), we get the desired value of $CWD in on of the
scripts called by the programs install procedure.
Fixes installation under solaris, other platforms unaffected.
- New language features
- New tools
- Faster type-checking of functor applications.
- Referencing an interface compiled with -rectypes from a module
not compiled with -rectypes is now an error.
- Revised the "fragile matching" warning.
- Print a stack backtrace on an uncaught exception.
- Stack overflow detection on MS Windows 32 bits.
- Stack overflow detection on MacOS X PPC and Intel.
- Intel/AMD 64 bits: generate position-independent code by default.
- Fixed bug involving -for-pack and missing .cmx files.
- Fixed bug causing duplication of literals.
- C/Caml interface functions take "char const *" arguments
instead of "char *" when appropriate.
- Faster string comparisons (fast case if strings are ==).
- Other
Bug fixes:
- ocamldoc: -using modtype constraint to filter module elements displayed in doc
- ocamldoc: error in merging of top dependencies of modules
- ocamldoc: -dot-colors has no effect
- ocamdloc: missing crossref in text from intro files
- compilers: segfault with recursive modules
- compilers: infinite loop when compiling objects
- compilers: bad error message when signature mismatch
- compilers: infinite loop with -rectypes
- compilers: contravariance bug in private rows
- compilers: unsafe cast with polymorphic exception
- native compiler: bad assembly code generated for AMD64
- native compiler: stack alignment problems on MacOSX/i386
- stdlib: crash in marshalling
- stdlib: crash when closing a channel twice
- stdlib: memory leak in Sys.readdir
- C interface: better definition of CAMLreturn
- otherlibs/unix: crash in gethostbyname
- tools: subtle problem with unset in makefile
- camlp4: install pa_o_fast.o
- camlp4: install more modules
New features:
- ocamldoc: name resolution in cross-referencing {!name}: if name is not
found, then it is searched in the parent module/class, and in the parent
of the parent, and so on until it is found.
- ocamldoc: new option -short-functors to use a short form to display
functors in html generator
- ocamlprof: added "-version" option
Changes from 3.09.1:
----
Bug fixes:
- Makefile: problem with "make world.opt"
- compilers: problem compiling several modules with one command line
- compilers,ocamldoc: error message that Emacs cannot parse
- compilers: crash when printing type error
- compilers: -dtypes wrong for monomorphic type variables
- compilers: wrong warning on optional arguments
- compilers: crash when wrong use of type constructor in let rec
- compilers: better wording of "statement never returns" warning
- runtime: inefficiency of signal handling
- runtime: crashes with I/O in multithread programs
- camlp4: empty file name in error messages
- camlp4: stack overflow
- otherlibs/labltk: ocamlbrowser ignores its command line options
- otherlibs/unix: Unix.times wrong under Mac OS X
- otherlibs/unix: wrong doc for execvp and execvpe
- otherlibs/win32unix: random crash in Unix.stat
- stdlib: update_mod not found under Windows
- stdlib: Filename.dirname/basename wrong on Win32
- stdlib: incomplete documentation of Pervasives.abs
- stdlib: Printf bugs
- tools/checkstack.c missing include
- yacc: crash when given argument "-"
New features:
- ported to MacOS X on Intel
- configure: added support for GNU Hurd
order. Remove "@unexec rmdir" lines made redundant by the reordering.
Also, use a more succinct way to match ${OPSYS} + ${MACHINE_ARCH} by
just checking ${MACHINE_PLATFORM}.
* Bug fixes
* New features:
- otherlibs/labltk: browser uses menu bars instead of menu buttons
Changes 3.09.0:
Language features:
- Introduction of private row types, for abstracting the row in object
and variant types.
Type checking:
- Polymorphic variants with at most one constructor [< `A of t] are no
longer systematically promoted to the exact type [`A of t]. This was
more confusing than useful, and created problems with private row
types.
Native-code compiler (ocamlopt):
* Revised implementation of the -pack option (packing of several compilation
units into one). The .cmx files that are to be packed with
"ocamlopt -pack -o P.cmx" must be compiled with "ocamlopt -for-pack P".
In exchange for this additional constraint, ocamlopt -pack is now
available on all platforms (no need for binutils).
* Fixed wrong evaluation order for arguments to certain inlined functions.
* Other (see 'Changes')
the missing bits, namely labltk and ocaml-graphics, respectively. To
simplify this, add a Makefile.common. Bump PKGREVISION to 8.
Per discussion with wiz@ a while ago.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
- split out the profiled libraries in the PLIST, because they
don't get built on Darwin.
- set INSTALL_UNSTRIPPED on Darwin for both ocaml itself and
anything that directly depends on it, because the ocaml compiler
generates binaries that don't strip properly.
- split patches files
- always enable threading which has various advantages
- it fixes the build of the Tk library
- it greatly simplifies the package list handling
- it provides threading support under NetBSD 1.6/1.6.x
- correct default dependence in "buildlink2.mk" to "build"
Bump package revision because of all these changes.
${CC} with options or '-libs' specification.
This fix the build of the package with threaded tcl/tk libraries
from the tcl/tk packages.
While here remove FIX_RPATH, bl3 framework takes care of that for us.
* For consistency use SYS_bsd for system type
on powerpc. We differ from SYS_elf (presumably Linux) on
a few points here anyway.
* Fix signal handling on powerpc which caused a
seg fault when compiling native code version of coq.
* Install ocamllex.opt, camlp4o.opt and camlp4r.opt too.
Makefiles simply need to use this value often, for better or for
worse.
(2) Create a new variable FIX_RPATH that lists variables that should
be cleansed of -R or -rpath values if ${_USE_RPATH} is "no". By
default, FIX_RPATH contains LIBS, X11_LDFLAGS, and LDFLAGS, and
additional variables may be appended from package Makefiles.
(ephaeton at gmx dot net) in PR pkg/18023. Besten Dank!
Changes from 3.04 to 3.05 (abbreviated list, full list available at
http://caml.inria.fr/archives/200207/msg00558.html):
Language features:
- Support for polymorphic methods and record fields.
- Allows _ separators in integer and float literals, e.g. 1_000_000.
Type-checker:
- Fixed subtle typing bug with higher-order functors.
- Fixed several complexity problems;
- Fixed various bugs with objects and polymorphic variants.
Bytecode compiler:
- Fixed issue with ocamlc.opt and dynamic linking.
Native-code compiler:
- Fixed GC bug related to constant constructors of polymorphic variant types.
- Fixed compilation bug for top-level "include" statements.
Toplevel interactive system:
- ocamlmktop: minimized possibility of name clashes with user-provided modules.
Run-time system:
- Better support for lazy data in the garbage collector.
- Support for float formats that are neither big-endian nor little-endian
- Fixed bug in callback*_exn functions in the exception-catching case.
Standard library:
- Protect against integer overflow in sub-string and sub-array bound checks.
- New module Complex implementing arithmetic over complex numbers.
- New module Scanf implementing format-based scanning a la scanf() in C.
- various fixes and enhancements to existing modules
Tools:
- ocamldoc part of distribution
- Debugger: now supports the option -I +dir.
- ocamllex: supports the same identifiers as ocamlc;
Changes from 3.05 to 3.06:
Type-checking:
- Apply value restriction to polymorphic record fields.
Run-time system:
- Fixed GC bug affecting lazy values.
Both compilers:
- Added option "-version" to print just the version number.
- Fixed wrong dependencies in .cmi generated with the -pack option.
Native-code compiler:
- Fixed wrong return value for inline bigarray assignments.
Libraries:
- Unix.getsockopt: make sure result is a valid boolean.
Tools:
- ocamlbrowser: improved error reporting;