Commit Graph

10345 Commits (8be30254e2f38835f1530220a4b790e2c9cfb134)

Author SHA1 Message Date
Gabriel Scherer 8be30254e2 ocamlbuild: explicit 'linkpkg' and 'dontlink(foo)' flags
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15670 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-14 20:58:10 +00:00
Gabriel Scherer 322a3105b3 update Changes
From: Gabriel Scherer <gabriel.scherer@gmail.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15669 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:36:05 +00:00
Gabriel Scherer 73590cc155 PR6712: Ignore (-traverse) common VCS directories in ocamlbuild.
From: Peter Zotov <whitequark@whitequark.org>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15668 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:36:03 +00:00
Gabriel Scherer 98af9c90fb Update manpage
From: Hugo Heuzard <hugo.heuzard@gmail.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15667 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:36:00 +00:00
Gabriel Scherer b07a685152 Allow Android builds with systhreads support.
From: Peter Zotov <whitequark@whitequark.org>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15666 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:35:59 +00:00
Gabriel Scherer ac04e860ab Since r10c, Android NDK includes sys/ucontext.h.
From: Peter Zotov <whitequark@whitequark.org>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15665 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:35:57 +00:00
Gabriel Scherer e88e2bb744 remove unnecessary Obj.magic (Grégoire Henry)
From: Gabriel Scherer <gabriel.scherer@gmail.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15664 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:35:55 +00:00
Gabriel Scherer ecbae19bcc update Changes for custom index operators
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15663 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:14:49 +00:00
Gabriel Scherer 4a80e9da11 Simplify the definition of custom .{} operators
This commits modify the Bigarray syntax extension in order to facilitate the use of custom .{} operators. The compatibility with the existing Bigarray syntax has been preserved as much as possible. However, this commit will break code which use the Bigarray .{}
syntax without opening the Bigarray module first!

Like the previous commit, this commit modifies the parser to desugar bigarray1.{index} to ( .{} ) bigarray1 index. Following the bigarray syntax, the index operator used
in the desugaring changes if the index is a n-tuple:
1-tuple => .{}
2-tuple => .{,}
3-tuple => .{,,}
4 and more tuples => .{,..,}

The bigarray modules has been modified to use this new index operators. Note that this means that these index operators are not anymore accessible without opening the bigarray module.

From: octachron <octa@polychoron.fr>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15662 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:13:37 +00:00
Gabriel Scherer 7e47735db8 Simplify the use of custom .() and .[]
This commit modifies the parser to use the newly defined .() and .[] operators. It also moves the definition of the standard .() and .[] operator for String/Bytes and Array to the pervasives module.

Before this commit, expressions of the form array.(index) and string.(index) where desugared to Array.get[_unsafe] array index and Strinf.get[_unsafe] string index. The unsafe or unsafe version were chosen depending on the presence of the "-unsafe" compiler option. Such expression are now desugared to ( .() ) array index and ( .[] ) string index respectively. The same desugar operation is applied to array.(index) <- value which becomes ( .()<- ) array index value.

In order to keep the standard semantic for the string and array index operations, these new index operators are defined in the pervasives module using new compiler primitives, e.g.
let .() = "%array_opt_get".
These new primitives are then mapped to safe or unsafe version depending on the
the "-unsafe" compiler option. Consequently, these modifications should have no impact on existing code.

With these modifications, defining custom .() and .[] operators should be easier, at the cost of losing access to the standard index operator for either array or string.

From: octachron <octa@polychoron.fr>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15661 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:13:34 +00:00
Gabriel Scherer 16bc43219c Add a special syntax for index operators
This commit introduces a new syntax for index operators.
Six core parenthesis operator are added:
.(), .[], .{}, .{,}, .{,,}, .{,..,}.
The .{,}/.{,,}/.{,,,} operators are defined for compatibility with the Bigarray syntax extension.
Each core index operator is available in a access/assignement versions. For instance, .() is declined in
* .() : index operator
* .()<- : indexed assignment operator
The general syntax for these index operators as implemented in the parser is index_operator::= index_operator_core [<-]

From: octachron <octa@polychoron.fr>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15660 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:13:32 +00:00
Gabriel Scherer 14ab17aab9 harden testsuite/makefile/Makefile.dlambda wrt identifiers with quotes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15659 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 22:12:27 +00:00
Gabriel Scherer 789854f643 ocamldebug: fix printing of variables of lazy type
"print a" in ocamldebug when a is a forced lazy value segfaults on all
OCaml versions I tested it on. This comes from the fact that the
debugcomm.ml re-implementation of the Obj module (talking over the
debugging socket) implements Obj.tag without special-casing integers
(that is, testing is_block first), and always assumes its input is
a block.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15658 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 15:33:50 +00:00
Gabriel Scherer 0338871043 rewrite cycle-detection in genprintval.ml to use O instead of Obj
(see previous commit)

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15657 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 15:33:48 +00:00
Gabriel Scherer ecb299dfa7 rewrite the printing of Lazy values in toplevel/genprintval.ml
The code previously used Lazy.is_val to know whether the value was
already-evaluated (and, in this case, Lazy.force to extract this value
and print it more precisely). But it lies inside a functor that is
instantiated over different implementations of Obj, while
Lazy.{is_val,force} force the use of the Obj module of the standard
library. This could cause segfaults when this code is called from the
debugger, which instantiates it with a different Obj module talking
over a socket.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15656 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 15:33:46 +00:00
Gabriel Scherer f33c14b278 'Did you mean' for instance variables
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15655 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:29 +00:00
Gabriel Scherer bbf039706a 'Did you mean' for unbound method names
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15654 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:27 +00:00
Gabriel Scherer 7a97cb4f72 typecore.ml: minor refactoring
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15653 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:25 +00:00
Gabriel Scherer b6c2247a45 simplify spellchecking of labels in typecore.ml:
By computing the list of valid names at Wrong_name raising point, we
can remove the logic to reconstruct the set of valid names to draw
suggestion from after the fact:
- no spellchecking-related code in the NameChoice functor
- seamlessly extends to fields of inline records (were not spellchecked before)

I made the type of the "wrong name" in the Wrong_name exception more
precise, from Longident.t to string. The rationale is that:
- we only raise this exception when the longident happens to be
  a (Lident str)
- the list of valid names is a list of field or variant names; those
  are strings rather than idents

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15652 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:24 +00:00
Gabriel Scherer 3e7c17695c 'Did you mean' for variables missing on one side of an or-pattern
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15651 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:22 +00:00
Gabriel Scherer 843f152505 simplify the spellcheck functions
- expose the core spellchecking functionality in Misc rather than Typetexp
- remove the too high-order (yet insufficiently parametric)
  Typetexp.spellcheck from the public interface
- rewrite the spellchecking functions for variants and fields in
  Typecore from the Misc functions rather than reusing
  Typetexp.spellcheck

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15650 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-13 14:46:16 +00:00
Damien Doligez 9c53766241 apply GPR123: fix stupid bug in opttoploop
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15649 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-12 17:12:08 +00:00
Damien Doligez 1cb0b23a08 Start tidying up the runtime:
- document most of the "size" and "length" parameters and global variables,
  specifying bytes or words. Change some of them from bytes to words.
- start getting rid of "char *" and use sensible types instead.
- other small changes


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15647 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-12 15:18:04 +00:00
Alain Frisch 424d01dc35 #6688: fix comment.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15646 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-10 13:39:39 +00:00
Alain Frisch a033839139 #6688: allow val declarations as structure items.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-10 13:37:50 +00:00
Damien Doligez 4ea28ba75f fix typo in help text
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15644 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-09 22:07:49 +00:00
Jacques Garrigue 7a52c110b4 Fix PR#6680
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15640 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-08 08:10:55 +00:00
Jacques Garrigue 1453740778 fix PR#6690
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15637 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-08 07:51:10 +00:00
Gabriel Scherer ff29fbf1bc update Changes
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15636 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-06 17:13:58 +00:00
Gabriel Scherer f0cee36d3a toplevel: be explicit about what path are used for
From: Pierre Chambart <pierre.chambart@ocamlpro.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15635 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-06 17:11:11 +00:00
Gabriel Scherer 5f58cc7d3f toplevel: generic printers are only allowed with 'new' printer style.
From: Pierre Chambart <pierre.chambart@ocamlpro.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15634 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-06 17:11:09 +00:00
Gabriel Scherer bdaf4c3cf5 toplevel: extends #install_printer to accept parameterised printers
From: Pierre Chambart <pierre.chambart@ocamlpro.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15633 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-06 17:11:07 +00:00
Gabriel Scherer 9d01c60c3a toplevel: allows the extension of 'genprintval.ml' with parameterised printer.
From: Pierre Chambart <pierre.chambart@ocamlpro.com>

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15632 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-06 17:11:04 +00:00
Alain Frisch 77bc51fb82 Avoid an index-out-of-bound fatal error when the primitive name is empty.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15621 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-03 09:40:27 +00:00
Alain Frisch 25b4bcbf4a Merge Mem32/Mem64.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15620 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-02 10:58:31 +00:00
Alain Frisch 8037548026 Import the abstract_intel_emit branch (merge emit.mlp and emit_nt.mlp by going through an AST of the assembly language).
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15619 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-01 10:44:02 +00:00
Alain Frisch 6ffaaebc7b Sync with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15618 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-01 10:28:57 +00:00
Alain Frisch b2b06fb4f6 Adapt comment to curried calling convention.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15617 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-12-01 10:27:23 +00:00
Alain Frisch 8b9733eb3a Support for the byte directive under solaris 32-bit.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15616 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-28 15:44:02 +00:00
Alain Frisch 3010bec0bf Fix for mingw/msvc ports.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15615 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-28 13:17:48 +00:00
Alain Frisch 27a2bd3e16 Adapt 32-bit emit.mlp to curried style.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15614 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-27 17:29:49 +00:00
Alain Frisch 22cb7ff170 Use curried style for X86_dsl. Will adapt 32-bit emit.mlp later.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15613 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-27 17:20:22 +00:00
Alain Frisch 9decba7731 Rename Intel_* to X86_*.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15612 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-27 17:12:21 +00:00
Alain Frisch 3e52ac2deb Be explicit about the operand ordering.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15611 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-27 16:48:23 +00:00
Alain Frisch 8c075ad80a Sync with trunk.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15610 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-27 16:43:24 +00:00
Damien Doligez 850e295a96 intel_*: change copyright dates and some cosmetic changes
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/abstract_intel_emit@15609 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-25 17:46:21 +00:00
Luc Maranget a142a01dae correct PR#6674
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15608 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-25 15:11:40 +00:00
Alain Frisch b66603a7b7 Use specialized marshal module in threads.cma.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15607 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-25 13:05:22 +00:00
Gabriel Scherer ae48bbb17b PR#6640: add 'precious' as a builtin-useful tag
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15606 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-23 09:54:43 +00:00
Gabriel Scherer 849488e126 testsuite/lib-hashtbl: use LICENSE rather than /usr/share/dict/words to avoid excessive test time
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15604 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-11-23 09:18:03 +00:00