pkgsrc/lang/ocaml/patches/patch-ocamldoc_Makefile
jaapb b3f84848fb Update to ocaml 4.02.0. Main changes (apart from ocamldoc and bugfixes, see
also upstream changelog):
Language features:
- Attributes and extension nodes
- Generative functors
- Module aliases
* Alternative syntax for string literals {id|...|id} (can break comments)
- Separation between read-only strings (type string) and read-write byte
  sequences (type bytes). Activated by command-line option -safe-string.
Build system for the OCaml distribution:
- Use -bin-annot when building.
- Use GNU make instead of portable makefiles.
- Updated build instructions for 32-bit Mac OS X on Intel hardware.
Shedding weight:
* Removed Camlp4 from the distribution, now available as third-party software.
* Removed Labltk from the distribution, now available as a third-party library.
Type system:
* Keep typing of pattern cases independent in principal mode
- Allow opening a first-class module or applying a generative functor
  in the body of a generative functor. Allow it also in the body of
  an applicative functor if no types are created
* Module aliases are now typed in a specific way, which remembers their
  identity. In particular this changes the signature inferred by
  "module type of"
- Slight change in the criterion to distinguish private
  abbreviations and private row types: create a private abbreviation for
  closed objects and fixed polymorphic variants.
* Compare first class module types structurally rather than
  nominally. Value subtyping allows module subtyping as long as the internal
  representation is unchanged.
Compilers:
- More aggressive constant propagation, including float and
  int32/int64/nativeint arithmetic.  Constant propagation for floats
  can be turned off with option -no-float-const-prop, for codes that
  change FP rounding modes at run-time.
- New back-end optimization pass: common subexpression elimination (CSE).
  (Reuses results of previous computations instead of recomputing them.)
- New back-end optimization pass: dead code elimination.
  (Removes arithmetic and load instructions whose results are unused.)
- Optimization of sequences of string patterns
- Experimental native code generator for AArch64 (ARM 64 bits)
- Optimization of integer division and modulus by constant divisors
- Add "-open" command line flag for opening a single module before typing
* "-o" now sets module name to the output file name up to the first "."
  (it also applies when "-o" is not given, i.e. the module name is then
   the input file name up to the first ".")
* better sharing of structured constants
- new flag to keep locations in cmi files
- issue warning 3 when referring to a value marked with
  the [@@ocaml.deprecated] attribute
- a new format implementation based on GADTs
* Constant exception constructors no longer allocate
- avoid unnecessary boxing in let
- Better compilation of optional arguments with default values
- ocamlopt -opaque option for incremental native compilation
Toplevel interactive system:
- New "#show_*" directives
Runtime system:
- New configure option "-no-naked-pointers" to improve performance by
  avoiding page table tests during block darkening and the marking phase
  of the major GC.  In this mode, all out-of-heap pointers must point at
  things that look like OCaml values: in particular they must have a valid
  header.  The colour of said headers should be black.
- Fixed bug in native code version of [caml_raise_with_string] that could
  potentially lead to heap corruption.
- Blocks initialized by [CAMLlocal*] and [caml_alloc] are now filled with
  [Val_unit] rather than zero.
- Fixed a major performance problem on large heaps (~1GB) by making heap
  increments proportional to heap size by default
- Structural equality treats exception specifically
- efficient comparison/indexing of exceptions
- avoid using unsafe C library functions (strcpy, strcat, sprintf)
- An ISO C99-compliant C compiler and standard library is now assumed.
  (Plus special exceptions for MSVC.)  In particular, emulation code for
  64-bit integer arithmetic was removed, the C compiler must support a
  64-bit integer type.
Standard library:
* Add new modules Bytes and BytesLabels for mutable byte sequences.
- add List.sort_uniq and Set.of_list
- a faster version of "raise" which does not maintain the backtrace
- support "Unix.kill pid Sys.sigkill" under Windows
- speed improvement for Buffer
- efficient creation of uninitialized float arrays
- Improve documentation regarding finalisers and multithreading
- Trigger warning 3 for all values marked as deprecated in the documentation.
2014-10-09 19:08:28 +00:00

52 lines
2.8 KiB
Text

$NetBSD: patch-ocamldoc_Makefile,v 1.2 2014/10/09 19:08:28 jaapb Exp $
Use BSD_INSTALL_* instead of mkdir and cp; install in man3o
--- ocamldoc/Makefile.orig 2014-07-21 15:44:24.000000000 +0000
+++ ocamldoc/Makefile
@@ -41,7 +41,7 @@ INSTALL_LIBDIR=$(DESTDIR)$(OCAMLLIB)/oca
INSTALL_CUSTOMDIR=$(INSTALL_LIBDIR)/custom
INSTALL_BINDIR=$(DESTDIR)$(OCAMLBIN)
#MANO: man ocamldoc
-INSTALL_MANODIR=$(DESTDIR)$(MANDIR)/man3
+INSTALL_MANODIR=$(DESTDIR)$(MANDIR)/man3o
INSTALL_MLIS=odoc_info.mli
INSTALL_CMIS=$(INSTALL_MLIS:.mli=.cmi)
@@ -240,24 +240,24 @@ odoc_see_lexer.ml: odoc_see_lexer.mll
# Installation targets
######################
install: dummy
- if test -d $(INSTALL_BINDIR); then : ; else $(MKDIR) $(INSTALL_BINDIR); fi
- if test -d $(INSTALL_LIBDIR); then : ; else $(MKDIR) $(INSTALL_LIBDIR); fi
- if test -d $(INSTALL_CUSTOMDIR); then : ; else $(MKDIR) $(INSTALL_CUSTOMDIR); fi
- $(CP) $(OCAMLDOC) $(INSTALL_BINDIR)/$(OCAMLDOC)$(EXE)
- $(CP) ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) $(INSTALL_LIBDIR)
- $(CP) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
- if test -d $(INSTALL_MANODIR); then : ; else $(MKDIR) $(INSTALL_MANODIR); fi
- if test -d stdlib_man; then $(CP) stdlib_man/* $(INSTALL_MANODIR); else : ; fi
+ if test -d $(INSTALL_BINDIR); then : ; else $(BSD_INSTALL_PROGRAM_DIR) $(INSTALL_BINDIR); fi
+ if test -d $(INSTALL_LIBDIR); then : ; else $(BSD_INSTALL_DATA_DIR) $(INSTALL_LIBDIR); fi
+ if test -d $(INSTALL_CUSTOMDIR); then : ; else $(BSD_INSTALL_DATA_DIR) $(INSTALL_CUSTOMDIR); fi
+ $(BSD_INSTALL_SCRIPT) $(OCAMLDOC) $(INSTALL_BINDIR)/$(OCAMLDOC)$(EXE)
+ $(BSD_INSTALL_DATA) ocamldoc.hva *.cmi $(OCAMLDOC_LIBCMA) $(INSTALL_LIBDIR)
+ $(BSD_INSTALL_DATA) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
+ if test -d $(INSTALL_MANODIR); then : ; else $(BSD_INSTALL_MAN_DIR) $(INSTALL_MANODIR); fi
+ if test -d stdlib_man; then $(BSD_INSTALL_MAN) stdlib_man/* $(INSTALL_MANODIR); else : ; fi
installopt:
if test -f $(OCAMLDOC_OPT); then $(MAKE) installopt_really ; fi
installopt_really:
- if test -d $(INSTALL_BINDIR); then : ; else $(MKDIR) $(INSTALL_BINDIR); fi
- if test -d $(INSTALL_LIBDIR); then : ; else $(MKDIR) $(INSTALL_LIBDIR); fi
- $(CP) $(OCAMLDOC_OPT) $(INSTALL_BINDIR)/$(OCAMLDOC_OPT)$(EXE)
- $(CP) ocamldoc.hva $(OCAMLDOC_LIBA) $(OCAMLDOC_LIBCMXA) $(INSTALL_LIBDIR)
- $(CP) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
+ if test -d $(INSTALL_BINDIR); then : ; else $(BSD_INSTALL_PROGRAM_DIR) $(INSTALL_BINDIR); fi
+ if test -d $(INSTALL_LIBDIR); then : ; else $(BSD_INSTALL_DATA_DIR) $(INSTALL_LIBDIR); fi
+ $(BSD_INSTALL_PROGRAM) $(OCAMLDOC_OPT) $(INSTALL_BINDIR)/$(OCAMLDOC_OPT)$(EXE)
+ $(BSD_INSTALL_DATA) ocamldoc.hva $(OCAMLDOC_LIBA) $(OCAMLDOC_LIBCMXA) $(INSTALL_LIBDIR)
+ $(BSD_INSTALL_DATA) $(INSTALL_MLIS) $(INSTALL_CMIS) $(INSTALL_LIBDIR)
# Testing :
###########