summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merge changes of version/4.02 from r15121 to r15155Damien Doligez2014-08-290-0/+0
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15167 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* (in|out)_channel_of_descr: improve documentation (Christophe Troestler)Gabriel Scherer2014-08-281-2/+17
| | | | | | | | Following a discussion on the mailing list, it appears that more explanation on the closing of channels created from file descriptors is desirable. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15142 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* fix minor error-reporting bugGabriel Scherer2014-08-281-2/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15141 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6517: use ISO C99 types {,u}int{32,64}_t in preference to our homegrownXavier Leroy2014-08-2735-320/+323
| | | | | | | types {,u}int{32,64}. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15131 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* merge changes from branch 4.02 from branching (rev 14852) to 4.02.0+rc1 (rev ↵Damien Doligez2014-08-22235-1155/+2774
| | | | | | 15121) git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15125 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* add ocamldoc to check-typo; some mergeinfo that svn wants to commitDamien Doligez2014-08-220-0/+0
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15124 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* new -opaque flag: ocamlopt creates .cmx without cross-module infoGabriel Scherer2014-08-188-3/+18
| | | | | | | | | | | | (Patch by Pierre Chambart and Gabriel Scherer) (Ack'ed by Damien Doligez) This enables a form of incremental compilation for ocamlopt: if A depends on B, and B is compiled with `ocamlopt -opaque`, then minor implementation changes in B that do not affect the module interface will not require recompilation of A. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15105 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Fix PR#6516 in testsuiteFabrice Le Fessant2014-08-171-1/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15095 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* minor typo spotted by Jeremy YallopGabriel Scherer2014-08-161-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15093 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* I forgot about {Bytes,String}Labels.mapi; thanks Alain!Gabriel Scherer2014-08-162-0/+11
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15091 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* tools/objinfo: workaround change in binutils' <bfd.h>Gabriel Scherer2014-08-151-0/+5
| | | | | | (Report and fix by Christopher Zimmerman) git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15089 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Refresh .gitignoreGabriel Scherer2014-08-151-3/+54
| | | | | | | | | | After svn:ignore changes, from any git-svn repository you can run git svn show-ignore > .gitignore to synchronize the .gitignore content. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15087 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Set SVN ignore properties for the new testsuite directoriesGabriel Scherer2014-08-150-0/+0
| | | | | | | | | | | | | | | | | | SVN does not recursively apply ignore patterns, so after creating a new directory one should not forget to set its svn:ignore property (otherwise `svn status` will be quite noisy after a testsuite run). For new test directories, I just copied the property of an existing test in the following way: cd testsuite/tests/basic svn propget svn:ignore > /tmp/test-ignore cd ../<NEW-DIR> svn propset svn:ignore -F /tmp/test-ignore . git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15086 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6501: harden the native-code generator against certain uses of "%identity".Xavier Leroy2014-08-115-3/+28
| | | | | | | | | Technically: when a C-- let-bound variable is assigned to, update its type so that it is the lub of the types of the initial value and all values assigned to it, with the type ordering Int <: Addr. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15078 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6507: [caml_bottom_of_stack] incorrectly setMark Shinwell2014-08-082-1/+19
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15076 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* More accurate wording about when Invalid_argument is raised for list functions.Gabriel Scherer2014-08-082-24/+24
| | | | | | (Patch by Jeremy Yallop) git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15074 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* remove redundant bound checking in Buffer.blit (patch by Philippe Wang)Gabriel Scherer2014-08-081-1/+3
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15073 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Cherry pick 15071 from 4.02 (Fix #6510: Removal of shadowed constructors of ↵Alain Frisch2014-08-081-18/+33
| | | | | | extensible types can break the structure of definitions). git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15072 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Cherry-pick 15062,15063,15064 from 4.02 (#6497).Alain Frisch2014-08-0725-113/+323
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15068 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Cherry pick commit 14900 from 4.02 (fix some whitespace and add a few ↵Alain Frisch2014-08-073-15/+30
| | | | | | copyright headers), only the in parsing/ subdirectory (it creates conflicts elsewhere). git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15067 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Cherry pick commit 14989 from 4.02 (#6463: properly propagate errors raised ↵Alain Frisch2014-08-071-2/+8
| | | | | | when creating the mapper (typically, invalid arguments) to the compiler.). git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15066 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Cherry pick commit 14857 from 4.02.Alain Frisch2014-08-071-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15065 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* remove the Obj.magic from the string.ml implementationGabriel Scherer2014-08-061-26/+66
| | | | | | | | | | | | | | | | | | | | | | | It is important not to assume that String.t and Bytes.t will always share the same representation. Using Obj.magic to convert between functions would give a very bad example to users considering a migration, which are very quick to imitate any moral turpitude found in the standard library. An unfortunate consequence of the change is the duplication of String.concat code; other designs would be possible to share more implementation details between Bytes and String (eg. defined factorized operations on both in a shared internal module), but if we consider that String representation may evolve in the future this coincidence of implementation is really a temporary coindence rather than an definitive duplication. I checked that all the small functions introduced are marked as inlinable. In the case of coercions like this, we could even have the compiler recognize eta-expansions of the identity function and turn them into simple rebindings. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15060 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* implement {Bytes,String}.mapiGabriel Scherer2014-08-064-13/+38
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15058 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Add missing Noreturn qualifiersGabriel Scherer2014-08-065-29/+29
| | | | | | (patch by Peter Zotov, review by Max Mouratov) git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15057 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* update ChangesGabriel Scherer2014-08-061-2/+6
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15056 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* ocamlbuild: add no_alias_deps tag (patch by Daniel Bünzli)Gabriel Scherer2014-08-061-0/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15055 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6495: also add unsafe_string tag to ocamlbuildGabriel Scherer2014-08-061-0/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15054 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6495: add a safe_string tag to ocamlbuild (patch by Anil Madhavapeddy)Gabriel Scherer2014-08-061-0/+2
| | | | | | | | | | It kicks in for interface inference and compiler invocations. safe_string does also alter the output of inferred types if short_paths is used (since "bytes" is shorter than "string"), but this requires a change to the ocamldoc driver and isn't addressed in this PR. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15053 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6509: Add -linkall flag to ocamlcommon archives (Patch by Frédéric Bour)Gabriel Scherer2014-08-062-2/+4
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15047 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6474: fix the "weak dependencies" support (patch by Leo White)Gabriel Scherer2014-08-061-23/+24
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15045 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6502: spurious warning on "use_menhir" tagGabriel Scherer2014-08-061-3/+6
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15044 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Use labeled arguments. (Cherry-picked from commit 15031 on 4.02).Alain Frisch2014-07-282-2/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15032 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* #6500: add String.init, Bytes.init, Labels couterparts, Stream.of_byte. ↵Alain Frisch2014-07-288-0/+44
| | | | | | (Cherry-picked from 15029 on 4.02.) git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15030 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6142: add cmt file support to ocamlobjinfoDamien Doligez2014-07-242-3/+31
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15028 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* better fix for the travis scriptJérémie Dimino2014-07-231-2/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15024 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* update the travis script for new opam releaseJérémie Dimino2014-07-231-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15023 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Reflecting commit 15021 on version/4.02:Xavier Leroy2014-07-231-43/+10
| | | | | | | Follow-up to commit 15012: keeping checkbound equations is useless when load equations have been forgotten, as all checkbounds involve a load of a block header. So, simplify things further by emptying the numbering after calls and allocs. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15022 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* allow long lines up to 132 chars in ocamldocDamien Doligez2014-07-211-4/+15
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15018 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6406: Expose OCaml version in C headersDamien Doligez2014-07-215-14/+27
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15017 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Reflecting commit 15012 on version/4.02:Xavier Leroy2014-07-182-48/+133
| | | | | | | | | PR#6484 and PR#6486: CSE across memory allocations can present the GC with memory roots that are illegal. Plus: lift the previous restriction that all arithmetic ops and loads have at most one result register, this isn't true for ARM with soft floats. Plus: code refactoring and more comments. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Reflecting commit 15010 on version/4.02:Xavier Leroy2014-07-182-2/+9
| | | | | | | | PR#6460: runtime assertion failure with large [| e1;...eN |] float array expressions git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15011 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* Reflecting commit 15006 on version/4.02:Xavier Leroy2014-07-171-3/+3
| | | | | | | Typo in destroyed_at_alloc and destroyed_at_c_call, D17 was incorrectly claimed to be preserved. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15007 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* CSE bug on amd64: Ifloatsqrtf involves a memory loadMark Shinwell2014-07-161-5/+8
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15004 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* mantis 6489 (fix by Richard Jones)Mark Shinwell2014-07-161-1/+1
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15002 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6482: ocamlbuild fails when _tags file in unhygienic directoryGabriel Scherer2014-07-143-6/+33
| | | | | | | | | | | | | | | | | | | | | | | ocamlbuild lazily traverses directory to build a vision of the filesystem tree in which the build happens. During that traversals, it parses any configuration file `_tags` it encouters. PR#6482 was caused by the fact that the configuration-parsing code used the relative path of the _tags file, which was correct at the time of traversal, but stale at the time the lazy thunk was in fact forced (a Sys.chdir had occured in between). The first fix is to detect when relative paths become stale, and use the correct absolute path in that situation. The reason why this lazy thunk was only forced after a Sys.chdir is that, at hygiene time, only the subtrees that are selected for hygiene checking are forced. It is an unexpected behavior that non-hygienic subtrees could remain unforced for so long (in particular, the semantics of parsing a configuration file only much later in the build process is more than unclear); this commit also removes this behavior by always forcing the whole traversed subtree just before hygiene. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15000 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6469: -dsource prints Pervasives.(!) as Pervasives.!Damien Doligez2014-07-111-2/+2
| | | | git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14998 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
* PR#6418: support "@[<hov %d>" in the new format implementation (Benoît Vaugon)Gabriel Scherer2014-06-1411-94/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Reflecting commit 14978 on version/4.02:Xavier Leroy2014-06-102-1/+3
| | | | | | | 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
* Reflecting commit 14976 on version/4.02:Xavier Leroy2014-06-092-5/+11
| | | | | | | | 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