More work on infix constructors #1

Closed
wants to merge 844 commits into from

9 participants

@yallop
# type 'a seq = Nil | :@ of 'a * 'a seq;;
type 'a seq = Nil | :@ of 'a * 'a seq
# 1 :@ 2 :@ 3 :@ Nil;;
- : int seq = :@ (1, :@ (2, :@ (3, Nil)))
alainfrisch and others added some commits Apr 15, 2014
@alainfrisch alainfrisch Support for the let%foo syntax as structure item.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14600 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
984814d
@alainfrisch alainfrisch Doc.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14601 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dc9c697
@alainfrisch alainfrisch Doc typo.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14603 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
738c455
@gasche gasche [whitespace] bring threads/pervasives.ml closer to stdlib/pervasives.ml
(report by Hugo Heuzard)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14604 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2fc7ac7
@xavierleroy xavierleroy PR#6075: avoid using unsafe C library functions (strcpy, strcat, spri…
…ntf).

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.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14607 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
774e30e
Jacques Garrigue Fix PR#6371
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14608 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5db6318
@gasche gasche selectgen.ml: cross-cutting handling of Proc.contains_calls
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14609 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fa0f96a
@gasche gasche on i386 and AMD64, mark 'morally tail' C function calls as non-leaf
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14610 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d74aa29
@alainfrisch alainfrisch Doc.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14611 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
8106136
@alainfrisch alainfrisch Support for toplevel primitives with multiple arguments.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14616 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
26a8bc2
@alainfrisch alainfrisch Allow keywords and capitalized longidents as toplevel directives.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14617 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
cd5e18a
@alainfrisch alainfrisch #5377: add a #show directive to the toplevel.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14618 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ec52bae
Damien Doligez remove $Id markers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14620 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3e9a3ad
Damien Doligez merge COMPFLAGS and OPTCOMPFLAGS
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14621 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
65d56e7
@alainfrisch alainfrisch Changelog.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14625 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
75fd56b
@lefessan lefessan Add a hook in the lexer for an internal preprocessor
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14631 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
e3aaa68
@xavierleroy xavierleroy configure: always define ARCH_INT64_TYPE in config/m.h because Coq
  and maybe others rely on it
byterun/config.h: select "long long" in preference to "long" for "int64",
  just because this is how it was done in earlier versions.
  (Minimizing suprises.)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14635 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
86bd999
@xavierleroy xavierleroy Simpler variant of commit r14635:
- configure: no change necessary
- byterun/config.h: make sure ARCH_INT64_TYPE and related macros
  are always defined, for Coq and others to use.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14636 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dd17af8
@xavierleroy xavierleroy As mentioned by gcc -Wall, the variable "frame_number" is useless. Re…
…moved it.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14637 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
443b7d7
Damien Doligez minor clean-ups
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14642 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
34752cd
@diml diml PR#5941: add Printexc.set_uncaught_exception_handler
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14643 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d3ec5fe
@gasche gasche an example of functor application for Hashtbl
(Patch by Simon Cruanes)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14644 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5ef784b
@gasche gasche makefile target to build the stdlib documentation as html
(Patch by Simon Cruanes)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
56f1f8a
@gasche gasche [minor] improvement over the Hashtbl doc
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14646 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1ba4d34
@gasche gasche [minor] documentation typo in Hashtbl
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14647 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dd7178e
@mshinwell mshinwell fix regression (extraneous moves) caused by previous Cconst_blockhead…
…er patch

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14648 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
cceb1c7
@mshinwell mshinwell part 2: fix regression (extraneous moves) caused by previous Cconst_b…
…lockheader patch

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14649 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0b097e9
Jacques Garrigue Fix PR#6376
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14650 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
82e2f35
@alainfrisch alainfrisch PR#6075: fix build under Windows (there is no caml_strbuf_free).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14651 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
44845c5
@alainfrisch alainfrisch #6273: fix Sys.file_exists on large files for Win32 (patch by C. Bauer).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14652 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
456ad30
@lefessan lefessan Add OCAMLPARAM option 'can-discard' to remove warnings about unknown …
…version-specific arguments

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14653 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
100909c
@alainfrisch alainfrisch #6273: fix.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14654 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1ef064f
@alainfrisch alainfrisch Better locations.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14658 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
af3d4aa
@alainfrisch alainfrisch Make Parsetree more uniform by keeping locations in all records which…
… have attributes.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14659 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3b6c0c8
@alainfrisch alainfrisch More precise location on 'name must be unique' error (report the iden…
…tifier name instead of the whole declaration).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14660 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
db015c2
Damien Doligez update expected test results following commit 14660
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14663 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
07bc0e6
@alainfrisch alainfrisch Remove Ast_helper.Convenience submodule. This is better located in th…
…e ppx_tools package.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14664 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c0f8627
@lefessan lefessan Add a .gitignore file for git users
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2e9bca0
@alainfrisch alainfrisch Fix doc for unmarshaled exception values and structural comparison.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14669 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5a463e6
@alainfrisch alainfrisch #6119: document that the set of values contained in a closure is not …
…specified and how this impacts marshaling references captured in closures, for instance.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14670 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
df68e91
@alainfrisch alainfrisch Avoid bad error report when a registered toplevel primitive raises No…
…t_found.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14671 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3775a10
@xavierleroy xavierleroy - Constant ropagation for 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.
- Clambda / C-- / Mach: represent float constants as FP numbers of type 
  float rather than literals of type string.
- Tested for AMD64; other archs need testing.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14673 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
29b3443
Jacques Garrigue Do not add absolute paths for information added to
the local environment in Env.components_of_module_make.
Fixes the bug reported by Mark Shinwell on caml-devel,
on 2014-04-23. This bug was related to module aliases.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14674 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
979fe8b
@xavierleroy xavierleroy Follow-up to commit 14673: Iconst_float now takes a float, no longer …
…a string.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14675 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2633ff7
Damien Doligez update to use the git version of camlp5
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14679 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
9639370
Damien Doligez fix some whitespace
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14680 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0cba565
@xavierleroy xavierleroy Follow-up to commit 14673: MASM has its own syntax for hex constants
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14683 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
452390e
@xavierleroy xavierleroy New back-end optimization pass: dead code elimination.
(Removes arithmetic and load instructions whose results are unused.)
(Cherry-picked from branch backend-optim.)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14686 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
9c1d005
@xavierleroy xavierleroy ID comments are so passé.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14687 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
95d98cd
@xavierleroy xavierleroy New back-end optimization pass: common subexpression elimination (CSE).
(Reuses results of previous computations instead of recomputing them.)
(Cherry-picked from branch backend-optim.)
Tested on amd64/linux and i386/linux.
Other back-ends compile (after assorted updates) but are untested.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14688 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
558f40e
@xavierleroy xavierleroy PR#6361: Hashtbl.hash not terminating on some lazy values w/ recursiv…
…e types

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14693 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
8944143
Damien Doligez add missing rules for CSE.ml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14694 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f48db16
Damien Doligez add CSE.ml to ignore files
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14695 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
35ec048
Damien Doligez fix bug in commit 14694
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14696 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
bf8d983
@alainfrisch alainfrisch Revert 14616, 14617. Go back to the original syntax for toplevel dire…
…ctives, only allowing capitalized identifiers in addition to lowercase ones. Split #show into variants #show_val, #show_type, etc, and implement a generic #show which combines all the results.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14697 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d2de0d7
@alainfrisch alainfrisch Document that the new alternative syntax for string literals can brea…
…k comments.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14698 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f1f3626
Jacques Garrigue Fix PR#6383: Exception Not_found when using object type in absent module
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14701 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
6cb386e
Jacques Garrigue merge Leo's patch for PR#6384
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14702 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
48f52f4
Damien Doligez update Makefile.nt for new asmcomp modules
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14703 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b4c3955
@xavierleroy xavierleroy Wrong MASM syntax, try again.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14704 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3ce32fb
Damien Doligez merge branch "safe-string"
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14705 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5b8df63
@alainfrisch alainfrisch Fix precedence of extension nodes (#6386).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14709 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
99120f2
@alainfrisch alainfrisch Fix precedence of extension nodes (#6386).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14710 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
676497f
@alainfrisch alainfrisch Fix precedence of extension nodes (#6386).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14711 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
772a843
@alainfrisch alainfrisch #6387: allow attributes on variants in polymorphic variant types.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14712 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b791d66
@lefessan lefessan document __LOC__ in pervasives.mli
Also removes __FILE_OF__ and __MODULE_OF__, since they are not more precise
than __FILE__ and __MODULE__



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14715 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
a72d304
@gasche gasche Ocamlbuild: make log printing code tail-recursive
Patch by Frédéric Bour

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14716 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
db32d6a
@gasche gasche [minor] auto-generate a .gitignore using `git svn show-ignore`
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14717 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d30af12
@mshinwell mshinwell add travis CI files (github.com/avsm/ocaml 22e0620)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14718 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f8df3c9
@mshinwell mshinwell weak dependencies with -trans-mod (github/ocamllabs/weak-depends 45e980a
,21856a7,merge)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14719 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
521ac02
@mshinwell mshinwell initialize blocks with Val_unit, not zero
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14720 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
05100e5
Damien Doligez safe-string: documentation fixes and add a couple of functions in Per…
…vasives and Digest

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14721 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
9baf42b
Jacques Garrigue revert commit 14719
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14723 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
95104b3
Jacques Garrigue * Do not require cmi file to be present if module alias is not accessed
  (using -trans-mod)
* Add warning 49 for that case; use same warning in place of deprecated
  for Env.scrape_alias


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14724 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b78b199
@mshinwell mshinwell fix bug in previous Val_unit initialization patch
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14725 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2dd9296
@diml diml add the %int_as_pointer primitive
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14726 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f0b0c82
@gasche gasche configure: fix as/aspp for FreeBSD (works for both gcc and clang)
(Patch by Andrew Ray)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14727 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d84f8be
@diml diml -o sets the module name
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14728 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f0b74bd
@diml diml revert commit 14728
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14729 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c31d2ab
@gasche gasche stdlib/map: Add some usage exemple in the documentation.
(Patch by Nicolas Braud-Santoni)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14730 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c03e155
@xavierleroy xavierleroy Some updates for SPARC
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14731 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b691a28
@gasche gasche ocamlbuild: only show backtrace in verbose mode
Building foo.cmo in an empty directory (so with in particular no
foo.ml) currently returns the following output:

> Solver failed:
>   Ocamlbuild cannot find or build foo.ml.  A file with such a name
>   would usually be a source file.  I suspect you have given a wrong
>   target name to Ocamlbuild.
> Backtrace:
>   - Failed to build the target foo.cmo
>       - Building foo.cmo:
>           - Failed to build all of these:
>               - Building foo.ml:
>                   - Failed to build all of these:
>                       - Building foo.mly
>                       - Building foo.mll
>               - Building foo.mli:
>                   - Building foo.mly
>               - Building foo.mlpack
>               - Building foo.mli:
>                   - Building foo.mly
> Compilation unsuccessful after building 0 targets (0 cached) in 00:00:00.

While the "Solver failed" part is nice and reasonably easy to
understand, users report that the "Backtrace" part is confusing
(it talks about files they don't know about) -- and it can be so large
that the explanation above is completely hidden.

This patch disables backtrace-printing by default; it is now only
shown when some "-verbose N" (N starting at 1) argument is passed.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14732 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5ca901c
@xavierleroy xavierleroy PR#6385: wrong allocation of large closures by the bytecode interpreter
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14733 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c141951
@lefessan lefessan Add FIRST_UNIMPLEMENTED_OP instructioon to simplify bootstrapping aft…
…er adding new bytecode instructions at the end

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14734 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
680fe9f
@alainfrisch alainfrisch Fix win32unix (introduction of bytes + immutable strings).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14735 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
efc2379
@alainfrisch alainfrisch Add support for floating attributes in class structures and class sig…
…natures. (Patch by Leo White.)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14736 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0f1bb86
Jacques Garrigue PR#5584: merge open extensible types, extension-patch-4.0.2
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14737 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b56dc4b
Jacques Garrigue change -trans-mod to -no-alias-deps, and update message
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14738 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fc24112
@alainfrisch alainfrisch Whitespace.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14740 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
470131d
@alainfrisch alainfrisch #6387: also allow attributes on methods in object types (< m [@foo] :…
… int; ..>).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14741 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0b3423e
@alainfrisch alainfrisch #6318: Extend match...with with exception cases. (Patch by Jeremy Yal…
…lop, backend part by A. Frisch).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14743 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0f1fb19
@alainfrisch alainfrisch Indent + comment.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14744 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fa3224e
@alainfrisch alainfrisch Changelog.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14746 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
8e25b47
@alainfrisch alainfrisch Whitespace.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14747 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f8efbbf
@lefessan lefessan Remove FIRST_UNIMPLEMENTED_OP from interp.c
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14748 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b1943e1
@alainfrisch alainfrisch Accept a fully empty pattern matching. This can be generated by Camlp…
…4 using its revised syntax, and this seems to be used in the wild.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14749 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
27e9e78
@alainfrisch alainfrisch Recognize both prefixed and unprefixed built-in attributes (e.g. ocam…
…l.deprecated or deprecated).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14750 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
85a1763
@alainfrisch alainfrisch When the payload of the ocaml.deprecated attribute is a string, repor…
…t it as part of the warning message.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14751 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
110e97d
@alainfrisch alainfrisch Revise behavior of ocaml.warning attribute: when used as a floating a…
…ttribute (in a signature or structure), the scope is restricted to the current signature/structure instead of being global. Also support the new floating attributes in classes, with the same behavior.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14752 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0736512
@alainfrisch alainfrisch ocaml.warnerror built-in attribute.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14753 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
7e23330
gasche and others added some commits May 12, 2014
@gasche gasche first part of Benoît Vaugon's format-gadts patch
After applying this patch, you should run:

  make library-cross
  make promote-cross
  make partialclean
  make ocamlc ocamllex ocamltools

and then immediately apply the following patches until the "second
part of Benoît Vaugon's format+gadts patch"; the bootstrap cycle is
not finished yet.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14806 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
43647ba
@gasche gasche convert Benoît's first patch to bytes/string
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14807 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
736876e
@gasche gasche update Benoît's patch wrt. Parsetree changes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14808 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
be3eca6
@gasche gasche temporarily remove %(%) to avoid weaker typing
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14809 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
9fa17c9
@gasche gasche second part of Benoît Vaugon's format+gadts patch
To finish the bootstrap cycle, run:

  make library-cross
  make promote
  make partialclean
  make core

  make library-cross
  make promote-cross
  make partialclean
  make ocamlc ocamllex ocamltools

  make library-cross
  make promote
  make partialclean
  make core
  make compare

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14810 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
7266930
@gasche gasche sync threads/pervasives.ml
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14811 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
628a2a2
@gasche gasche bootstrap
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14812 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
e0ed68b
@gasche gasche sets up a 'legacy mode'
When the OCAML_LEGACY_FORMAT environment variable is set, the compiler
will try to emulate the behaviour of the previous implementation of
format.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14813 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fb90637
@gasche gasche some benine meaningless formats were previously ignored
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14814 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b56ea67
@gasche gasche disable incompatible flags in legacy mode
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14815 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b3b3518
@gasche gasche ignore more incompatible flags
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14816 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fa67173
@gasche gasche allows some more ignored formats
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14817 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
689d9af
@gasche gasche when passed to Printf, %l%n%L should be interepreted as %u, not %d
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14818 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
e69ee15
@gasche gasche a testsuite to measure format behavior changes and the effectiveness …
…of legacy mode

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14819 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3ab9516
@gasche gasche Add support for ignored scan_get_counter formats (%_[nlNL])
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14820 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
bf6e318
@gasche gasche temporary bootstrap (%_[nNlL] not yet handled by the typer)
Bootstrap steps:

  disable "-warn-error A" in Makefile

  make library -j3 \
  && cp stdlib/stdlib.cma stdlib/std_exit.cmo stdlib/*.cmi boot/ \
  && make partialclean \
  && make ocamlc ocaml -j5

  enable -warn-error A again

cp ocamlc boot/

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14821 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3f37e56
@gasche gasche add typer support for the new formats
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14822 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ee90232
@gasche gasche finish %_[nNlL] boostrap (same bootstrap steps)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14823 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ddf133e
@gasche gasche testsuite for %_[nNlL]
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14824 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
6a8f120
@gasche gasche introduce type aliases for simple padding and precision types
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14825 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
39ab064
@gasche gasche typecore.ml: fix format's expected-type mistake
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14826 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
4907bcf
@gasche gasche parse the ignore flag before all others
The legacy implementation doesn't support "%+_", "%-_" etc. which were
accepted by Benoît's patches. This creates a discrepancy (though not
a regression) that is not necessarily desirable (and in any case makes
fuzz-testing for difference return non-bugs). Long-term, I think that
we're good with the previous, simpler structure where "_" must always
be the first flag.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14827 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
42aca98
@gasche gasche fix printing bug: (Printf.printf "% 04d" 3) => "00 3"
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14828 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3cb315b
@gasche gasche allow incompatible or unsupported numeric formatting flags
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14829 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
8f7b47a
@gasche gasche accept and ignore '+' and '-' before precision integers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14830 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
11fdab8
@gasche gasche some characters were not allowed in charsets
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14831 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0a7224f
@gasche gasche minor strengthening of the typing of %{...%} formats
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14832 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
7f8e43a
@gasche gasche printf behavior of %{..%}
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14833 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2da1602
@gasche gasche implement (^^) correctly wrt. string_of_format (Thanks to Pierre Weis)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14834 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ce41f4f
@gasche gasche charset-parsing: require that '%' be written '%%' in charsets, as per…
… the documentation

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14835 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
543e542
@gasche gasche simplification in bprint_char_set
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14836 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f3a309d
@gasche gasche move code from pervasives.ml to camlinternalFormat.ml
This simplifies the charset-handling code, as camlinternalFormat is
allowed to depend on Bytes and String instead of re-importing the
needed primitives.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14837 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
8e52400
@gasche gasche boostrap (same steps as the last one)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14838 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
cba1c6b
@gasche gasche testsuite Makefile fix
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14839 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
02c5fb4
@gasche gasche For %{..%}, restore Pierre's semantics
(printf {%foo%} bar) will print the string representation of the
format type of both `foo` and `bar`, instead of printing `bar`
(for this purpose one can just use %s). `bar` content is ignored, but
the typer should check that its type is compatible with the one of
`foo`.

This semantics allows to use (printf %{..%}) for testing/debugging the
use of %(...%): put in the brackets what you believe to be the format
type you want to use, and as argument the format you wish to pass, and
you'll get type-checking confidence and the "canonical" representation
of the format string which you can use in the %(...%) -- note that
using the canonical format type is not mandatory.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14840 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
f0e39fe
@gasche gasche formats: enable the legacy mode by default
Given that there still remains a small incompatibility (typing of
%(..%)), I decided to keep the legacy mode enabled for now. This means
that any failure related to format can be traced to this
incompatiblity (or unknown regressions), which will simplify the
monitoring and handling of changes considerably. As soon as the %(..%)
typing is generalized, we can turn the legacy mode off (or maybe
simply add warnings for ignored formats).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14841 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
eccf1e2
@gasche gasche fix a regression in Format formatting printing routines
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14842 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
0e15846
@gasche gasche final bootstrap (make partialclean core coreboot)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14843 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
b14c618
@gasche gasche fix some testsuite Makefiles
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14844 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
e0b1dab
@gasche gasche fix Tests.ml{,.principal}.reference
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14845 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
78315ea
@gasche gasche fix testsuite/tests/typing-warnings/coercions.ml.reference
The change is benine: currently, error messages about format6 also
give its definition as a product of an inner format and a string: the
message changes, but the semantics is the same.

Ultimately, we want the error message *not* to change (we don't want
the internal implementation of formats to be exposed to the innocent
user), and that will be achieved by converting format6 to a nominal
type instead of a structural pair.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14846 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
af49756
@gasche gasche temporarily disable principality warning test in coercion.ml
Contrarily to the previous commit, this change is *not* completely
benine: it corresponds to the fact that Jacques' trunk@14523 (a
principality warning on formats in some situation) has not yet been
replayed on the format-gadts branch -- I mainly focused on backward
compatiblity.

The plan is to replay this change really soon, *after* converting
format6 to a nominal datatype -- this will much simplify the
re-implementation of the warning in the type-checker.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14847 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ac23816
@gasche gasche changes Changes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14848 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ab873b8
@gasche gasche bootstrap with -no-naked-pointers again
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14849 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2a8d358
@xavierleroy xavierleroy PR#6361 continued: don't count 1 for Forward_tag, because in this cas…
…e a GC can change the hash value. Instead, avoid looping on Forward_tag cycles by another mean.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14850 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d12328e
Damien Doligez ci-build: fix wrong variable name
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14851 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c82c004
Damien Doligez change version number after branching 4.02
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14853 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
80f91b1
@mshinwell mshinwell merge github.com/ocaml/ocaml/pull/56.diff, from Anil, part 1: fix sup…
…port for PowerPC/BSD backtraces

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14854 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
286af5b
Jacques Garrigue apply patch for PR#6420: Bad error message for non-exhaustive matchin…
…g on extensible types

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14859 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
14c7fc4
@diml diml install the dev version of utop in travis
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14865 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
fb8aecb
@gasche gasche Use a nominal datatype for CamlinternalFormat.format6
This should make the type-checking of formats simpler and more robust:
instead of trying to find a pair as previously, we can now use the
path of the format6 type directly.

A nice side-effect of the change is that the internal definition of
formats (as a pair) is not printed in error messages anymore.
Because format6 is in fact defined in the CamlinternalFormatBasics
submodule of Pervasives, and has an alias at the toplevel of
Pervasives, error messages still expand the definition:

> Error: This expression has type
>          ('a, 'b, 'c, 'd, 'd, 'a) format6 =
>            ('a, 'b, 'c, 'd, 'd, 'a) CamlinternalFormatBasics.format6
>        but an expression was expected of type ...

Passing the option `-short-paths` does avoid this expansion and
returns exactly the same error message as 4.01:

> Error: This expression has type ('a, 'b, 'c, 'd, 'd, 'a) format6
>        but an expression was expected of type ...

(To get this error message without -short-paths, one would need to
define format6 directly in Pervasives; but this type is mutually
recursive with several GADT types that we don't want to add in the
Pervasives namespace unqualified. This is why I'll keep the alias
for now.)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14868 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3ffa399
@gasche gasche replay trunk@14523: warn on non-principal format6 coercions
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14869 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
74b20be
@gasche gasche replay trunk@13911: better behavior of printf on nan/infinity floats
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14871 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
a9aea43
@gasche gasche fix PR#6415: format had forgotten about 'b' boxes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14874 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
6d25df3
@xavierleroy xavierleroy Liveness & Deadcode: fix i386-specific issue with move instructions a…
…ccessing

  the x87 FP stack, which must not be eliminated.
CSEgen: harden against the same x87-specific issue + against reuse of
  values in fixed hardware registers that were destroyed by a prior
  operation.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14877 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
657ba73
@gasche gasche update .depend
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14886 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
a5e4f06
@gasche gasche PR#5371: a partial patch by Edwin Török to fix the FreeBSD failure
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14891 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
34fb0d4
@gasche gasche format+gadts: make format types "relational" to fix %(...%) typing
See the long comment in pervasives.ml for an explanation of the
change. The short summary is that we need to prove more elaborate
properties between the format types involved in the typing of %(...%),
and that proving things by writing GADT functions in OCaml reveals
that Coq's Ltac is a miracle of usability.

Proofs on OCaml GADTs are runtime functions that do have a runtime
semantics: it is legitimate to hope that those proof computations are
as simple as possible, but the current implementation was optimized
for feasability, not simplicity. François Bobot has some interesting
suggestions to simplify the reasoning part (with more equality
reasoning where I used transitivity and symmetry of the
relation profusely), which may make the code simpler in the future
(and possibly more efficient: the hope is that only %(...%) users will
pay a proof-related cost).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14897 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
e0b0005
@zoggy zoggy PR#6425: fix generation of man pages, handling variant constructors a…
…nd record fields

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14902 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1fbea2f
@zoggy zoggy Changes: PR#6425
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14904 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
a61f33b
@zoggy zoggy PR#6274: allow doc comments on object types
(thanks to Thomas Refis)


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14909 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
1a3b58b
@zoggy zoggy Fix ocamldoc test to follow new interface; add object type test
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14910 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
577ea36
@mshinwell mshinwell fix gc-roots test case for no-naked-pointers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14913 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
5791532
@xavierleroy xavierleroy Reflecting commit 14916 on version/4.02:
PR#6442: prevent re-sharing of "+0.0" and "-0.0".


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14917 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
53886a0
Damien Doligez copy attributions from 4.02 branch and add a header for the next version
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14919 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
456ba0c
@mshinwell mshinwell PR 6439 part 1: fix mistake in backtrace.c
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14923 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dd3a286
@mshinwell mshinwell PR 6439 part 2: use sysconf instead of the deprecated getpagesize fun…
…ction

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14926 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2dec313
@mshinwell mshinwell merge from 4.02: rev. 14858, Adding #ppx toplevel directive (patch by…
… Peter Zotov, github #54).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14928 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
60d0af5
@mshinwell mshinwell merge from 4.02 (rev. 14929): add configure detection of mkstemp, rem…
…ove old HAVE_MKSTEMP conditional, rename HAVE_MKSTEMP -> HAS_MKSTEMP

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14930 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
ec96727
@mshinwell mshinwell merge from 4.02 (rev 14931): update instructions for 32-bit builds on…
… Mac OS X (PR 6196)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14932 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
9c2b32b
Damien Doligez add option -patch1 to ci-build script
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14939 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
4547385
Damien Doligez tools/ci-build: add possibility of changing directory on unix-like ar…
…chitectures

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14940 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2c67f4f
@xavierleroy xavierleroy Reflecting commit r14943 on version/4.02:
PR#6082: on x86-32, enforce 16-byte stack alignment for compatibility
with recent GCC and Clang.  Win32/MSVC keeps 4-byte stack alignment.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14944 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dbea9ee
Damien Doligez ci-build: go to the right directory before parsing command-line options
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14945 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
4370124
@alainfrisch alainfrisch Fix regression introduced by commit 14809. (Cherry pick commit 14946 …
…from version/4.02.)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14947 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
894af5c
@xavierleroy xavierleroy Reflecting commit 14950 on version/4.02:
PR#6283: increase alignment to work around a linking error.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14951 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
cf008f2
@gasche gasche PR#5547: ocamlbuild reverts to using -no-ocamlfind by default
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14952 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3fa3477
@gasche gasche fix PR#6431 (patch by Benoît Vaugon)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14954 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d6bfdc7
@xavierleroy xavierleroy Reflecting commit 14958 on version/4.02:
Missing dependencies on the pack, causing parallel make to fail.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14959 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3946f47
Damien Doligez debugging the ci-build script
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14960 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
837ed62
Damien Doligez still debugging the ci-build script
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14961 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
499092e
Damien Doligez still debugging the ci-build script (take 3)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14962 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
d1b1fbe
@xavierleroy xavierleroy Reflecting commit 14963 on version/4.02:
PR#2719: wrong scheduling of bound checks within a try...with Invalid_argument -> _ ...


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14964 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
18d23e3
@gasche gasche Fix for PR#6441 (Stefan Holdermans)
During closure conversion, the right-hand side of a functional binding in a
recursive binding group is now always closed as a named expression rather than
an anonymous expression.  As a result, direct recursive calls do not need to
retrieve their target from a closure environment.  This does not only result in
more efficient code being generated, but also avoids a potential blocker for
successful tail-call detection during pseudo-instruction selection.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14966 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
3689794
@mshinwell mshinwell stop doing chmod -w on utils/config.ml (PR 6319)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14967 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
dc87274
@gasche gasche bootstrap
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14970 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
4feb5bb
@gasche gasche Makefile factorization
reducing world's sequentialization consistently improves parallel build times

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14971 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
c24c9ac
@gasche gasche Fix PR#6417: sprintf broken when local module named Pervasives is in …
…scope

(Backport from Jacques' commit 4.02@14921)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14972 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
bb313fa
@gasche gasche PR#6418: fix format regression on "@{<..%d..%s..>" (Benoît Vaugon)
To be able to compile this patch, you should temporarily apply the
following patch to bootstrap the format type change:

> diff -Naur old/typing/typecore.ml new/typing/typecore.ml
> --- old/typing/typecore.ml	2014-06-06 03:37:03.240926150 +0200
> +++ new/typing/typecore.ml	2014-06-06 03:37:24.696926699 +0200
> @@ -2956,7 +2956,7 @@
>          | Theta rest ->
>            mk_constr "Theta" [ mk_fmt rest ]
>          | Formatting (fmting, rest) ->
> -          mk_constr "Formatting" [ mk_formatting fmting; mk_fmt rest ]
> +          mk_constr "Formatting_lit" [ mk_formatting fmting; mk_fmt rest ]
>          | Reader rest ->
>            mk_constr "Reader" [ mk_fmt rest ]
>          | Scan_char_set (width_opt, char_set, rest) ->

Bootstrap process:

  make core
  apply the patch above
  make core
  make promote-cross
  make partialclean
  revert the patch above, apply the commit
  make partialclean
  make core
  make coreboot

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14973 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
7cb9d0d
@xavierleroy xavierleroy Reflecting commit 14976 on version/4.02:
PR#6211: in toplevel interactive use, bad interaction between uncaught
exceptions and multiple bindings of the form "let x = a let y = b;;".


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14977 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
bb83542
@xavierleroy xavierleroy Reflecting commit 14978 on version/4.02:
PR#6268: -DMODEL_$(MODEL) not passed when building asmrun/arm.p.o


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14979 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
25b93e0
@gasche gasche PR#6418: support "@[<hov %d>" in the new format implementation (Benoî…
…t Vaugon)

The bootstrap procedure, as for commit trunk@14973 (see there for
detailed build instructions), requires to first commit a temporary
patch:

> diff -Naur old/typing/typecore.ml new/typing/typecore.ml
> --- old/typing/typecore.ml        2014-06-11 18:16:24.851647309 +0200
> +++ new/typing/typecore.ml        2014-06-11 18:15:50.075646418 +0200
> @@ -2758,16 +2758,9 @@
>        let mk_int n = mk_cst (Const_int n)
>        and mk_string str = mk_cst (Const_string (str, None))
>        and mk_char chr = mk_cst (Const_char chr) in
> -      let mk_block_type bty = match bty with
> -        | Pp_hbox   -> mk_constr "Pp_hbox"   []
> -        | Pp_vbox   -> mk_constr "Pp_vbox"   []
> -        | Pp_hvbox  -> mk_constr "Pp_hvbox"  []
> -        | Pp_hovbox -> mk_constr "Pp_hovbox" []
> -        | Pp_box    -> mk_constr "Pp_box"    []
> -        | Pp_fits   -> mk_constr "Pp_fits"   [] in
>        let rec mk_formatting_lit fmting = match fmting with
> -        | Open_box (org, bty, idt) ->
> -          mk_constr "Open_box" [ mk_string org; mk_block_type bty; mk_int idt ]
> +        | Open_box _ ->
> +          assert false
>          | Close_box ->
>            mk_constr "Close_box" []
>          | Close_tag ->
> @@ -2950,6 +2943,19 @@
>            mk_constr "Alpha" [ mk_fmt rest ]
>          | Theta rest ->
>            mk_constr "Theta" [ mk_fmt rest ]
> +        | Formatting_lit (Open_box (org, _bty, _idt), rest) ->
> +          mk_constr "Formatting_gen" [
> +            mk_constr "Open_box" [
> +              mk_constr "Format" [
> +                mk_constr "String_literal" [
> +                  mk_string "<>";
> +                  mk_constr "End_of_format" [];
> +                ];
> +                mk_string "@[<>";
> +              ]
> +            ];
> +            mk_fmt rest;
> +          ]
>          | Formatting_lit (fmting, rest) ->
>            mk_constr "Formatting_lit" [ mk_formatting_lit fmting; mk_fmt rest ]
>          | Formatting_gen (fmting, rest) ->

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14984 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
49d3f7b
Mike McClurg WIP - ::+ parses as Pexp_constructor
Signed-off-by: Mike McClurg <mike.mcclurg@citrix.com>
a248c35
@yallop yallop Infix constructors in type declarations. 25862be
@yallop yallop Pass the symbol through in (INFIXCON) expressions. b853602
@yallop yallop Treat cons as a special case of an infix constructor. acd385e
@yallop yallop Accept more symbols in infix constructors.
Factor out the common subset of infixsymbolchar and symbolchar.
c7641bd
@yallop yallop Change '::!' to ' :: !' in a few places. 0ad28ed
@yallop yallop closed this Feb 29, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment