Jacques Garrigue
b56dc4b3df
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
2014-05-04 23:08:45 +00:00
Fabrice Le Fessant
680fe9f91d
Add FIRST_UNIMPLEMENTED_OP instructioon to simplify bootstrapping after adding new bytecode instructions at the end
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14734 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-04 20:14:23 +00:00
Mark Shinwell
2dd92969d2
fix bug in previous Val_unit initialization patch
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14725 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-02 09:54:28 +00:00
Jacques Garrigue
95104b3924
revert commit 14719
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14723 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-05-02 06:19:55 +00:00
Mark Shinwell
521ac0213a
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
2014-05-01 12:50:20 +00:00
Damien Doligez
5b8df637d2
merge branch "safe-string"
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14705 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-29 11:56:17 +00:00
Fabrice Le Fessant
e3aaa68105
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
2014-04-17 20:19:12 +00:00
Damien Doligez
7303ac34ca
fix some of the whitespace problems in the source
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14582 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-12 10:17:02 +00:00
Fabrice Le Fessant
2859498cad
Add %loc_* primitives and corresponding values in Pervasives
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14571 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-10 14:11:25 +00:00
Gabriel Scherer
2b9f94b69b
PR#6270: remove need for -I directives to ocamldebug in common case
...
(patch by Josh Watzman)
Add absolute directory names to bytecode format for ocamldebug to use
The need for a long list of -I directives makes interactively using
ocamldebug a pain in the butt. Many folks have solved this with various
`find` invocations or even Python wrappers, but those lead to other
problems when it might include files you weren't expecting (or miss
things you were). But all of this is really annoying since the tooling
should be able to figure out itself, even heuristically, where your
source files are -- gdb gets this right, why can't we?
This patch implements one of the more important heuristics from gdb: you
typically debug on the same machine you built on, so looking for the
source files and built artifacts in the absolute paths where they were
during compilation is a good first try. We write out absolute paths into
a new structure at the beginning of the debug section and then
automatically append those directories into the load path.
This means mean that if you happen to be debugging on a machine
where the original source and build artifacts are *not* available in
their original absolute locations, things will work as before, using the
standard load path mechanism. You can also explicitly use -I to prepend
directories to the load path and override the defaults located by this
new mechanism.
I personally find this makes using ocamldebug much more pleasant :)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14533 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-04-06 15:06:22 +00:00
Gabriel Scherer
57fe3746f6
Revert "PR#6270: remove need for -I directives to ocamldebug in common case (patch by Josh Watzman)"
...
There seems to be a problematic interaction with backtrace collection. To test this,
make world.opt
cd testsuite
make one DIR=tests/backtrace/
This needs to be sorted out before the patch can go in again.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14510 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-31 14:55:06 +00:00
Xavier Clerc
dd7bd5b339
PR#6270: remove need for -I directives to ocamldebug in common case (patch by Josh Watzman)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14507 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-31 11:48:35 +00:00
Jacques Garrigue
e39065c72b
Optimize Env.find_module further for PR#6350
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14483 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-23 00:06:41 +00:00
Jacques Garrigue
1302703293
Fix PR#6350
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14482 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-22 15:49:57 +00:00
Luc Maranget
c2a88c27fd
#PR6269 Optimized string matching
...
Noticed that I had to bootstrap to test on ARM, so I commit a new bootstrap
compiler.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14479 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-03-21 17:02:44 +00:00
Alain Frisch
663c098be6
Add location to module and module type definitions. Improves #6311 .
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14428 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-01-30 12:18:34 +00:00
Jacques Garrigue
3b4d7cf63b
Merge module-alias branch (cf. PR#6063)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14394 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2014-01-10 07:53:33 +00:00
Jacques Garrigue
cfa350c31a
merge generative functors
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14365 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-12-17 03:52:50 +00:00
Jacques Garrigue
8fb5fdc9f2
merge trunk:14244 to fix bootstrap
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/module-alias@14245 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-24 04:19:08 +00:00
Alain Frisch
0f6f367ad4
Change the representation of exception slots: instead of being represented as 'string ref', they are now blocks
...
of size 2, with tag = Object_tag, the first field being the pointer to the string, and second one being a unique id, generated
from the same sequence as for object values. Special case for predefined exceptions, represented with a negative id.
The unique id generator is moved from camlinternalOO to the C runtime system.
Also fix some bugs.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14239 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-23 14:28:31 +00:00
Alain Frisch
d802a51be6
#6203 : change representation of exception values created with a constant constructor: the value is now equal to the exception slot. This avoids some allocation when the constructor is called and an extra indirection on matching against the constructor.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14235 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-18 13:00:58 +00:00
Alain Frisch
0915cb5b5f
Rename raise_nostack -> raise_notrace. Expose it in Pervasives.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14225 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-14 13:52:14 +00:00
Alain Frisch
f31325cbaf
#6203 , #5935 : variants of raise. 'reraise' is currently only inserted by the compiler when an handler does not catch the exception. The default 'raise' always start with a fresh backtrace. There is also 'raise_nostack' which does not trigger the stack trace recording. Bytecode only for now.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/raise_variants@14223 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-14 12:31:50 +00:00
Alain Frisch
c955798936
Keep attributes with module type declarations. Warning on reference to deprecated module type.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14206 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-01 15:14:04 +00:00
Jacques Garrigue
6ffc859a5c
everything works except camlp4
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/module-alias@14204 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-10-01 03:17:11 +00:00
Alain Frisch
cc31694f7c
Keep attributes on module declarations.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14195 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-27 17:05:39 +00:00
Alain Frisch
c0778758c1
Keep attributes/locs for class type declarations and class declarations in Types. Renaming cty -> csig prefix for class signatures to be coherent with Typedtree.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14194 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-27 15:04:03 +00:00
Alain Frisch
645dcf25e5
Keep location and attributes in type, label and constructor declarations. Deprecated warning when a deprecated type or constructor is referenced.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14191 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-27 10:54:55 +00:00
Alain Frisch
6873f39817
Keep attributes on value declarations in .cmi files (but clear all the location fields, except if -keep-locs is used, of course). Use this to report a warning when a value marked as [@@deprecated] is referenced ( #5854 )
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14188 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-26 15:24:11 +00:00
Alain Frisch
76bc019fd3
Wrongly committed bootstrapped compilers with spurious debug output.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14160 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-18 08:48:25 +00:00
Alain Frisch
c8d20ade02
Do not track unused type declarations created by 'include'.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14158 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-17 14:28:31 +00:00
Alain Frisch
2373f76c36
#6180 : efficient creation of uninitialized float arrays.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-17 11:54:31 +00:00
Alain Frisch
47be69c2b0
Cherry-picking commit 14093 from trunk.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/exception_registration@14104 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-09-11 16:08:00 +00:00
Alain Frisch
842f6794a9
Synchronize with trunk.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@14042 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-08-28 17:10:04 +00:00
Jacques Garrigue
47d094db83
Fix PR#6090
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13937 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-07-26 23:04:51 +00:00
Alain Frisch
525ef9d703
Synchronize with trunk.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13897 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-07-16 13:34:30 +00:00
Gabriel Scherer
d06304ee2a
bootstrap after the new primitives
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13814 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-19 14:14:05 +00:00
Alain Frisch
f59df29db4
Update magic numbers and bootstrap. (Cherry-picked from c13780 on 4.01.)
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13798 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-18 08:30:47 +00:00
Fabrice Le Fessant
b171e15a12
Fix fix to PR#3679 : discard CR instead of printing a dot
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13771 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-12 15:32:27 +00:00
Fabrice Le Fessant
ad6c285818
Improved implementation of OCAMLPARAM
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13747 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-05 16:34:40 +00:00
Fabrice Le Fessant
f9bd5f13a0
Experimental OCAMLCOMPPARAM for ocamlc/ocamlopt
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13741 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 19:13:24 +00:00
Fabrice Le Fessant
ace0205b64
Add |> and @@ operators to Pervasives
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13739 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 18:22:31 +00:00
Alain Frisch
2e199ef1f2
Item attributes on each let-binding.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13736 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-06-03 15:14:19 +00:00
Alain Frisch
a3b1c67fff
#5980 : explicit way to silence the new warning (open! X).
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13685 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-05-16 13:34:53 +00:00
Jacques Garrigue
67e18e5c4d
Fix PR#5985 for constrained parameters too.
...
Required more variance information, so variance is now an abstract type.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13645 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-05-03 13:38:30 +00:00
Jacques Garrigue
c425ae1ce8
Fix PR#5985; compute injectivity of types but no new syntax
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13634 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-30 05:26:57 +00:00
Pierre Weis
a79b51b675
Complete rewriting of Format.mk_printf. Convergence between Printf and Format codes.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13606 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-24 14:56:25 +00:00
Pierre Weis
1d1d751326
PR#5973 (old @ escape was still implemented in Format) + bootstrap.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13601 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-23 21:44:30 +00:00
Xavier Leroy
e29c9d2956
PR#5986: added flag Marshal.Compat_32 and ocamlc option -compat-32.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13554 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-18 11:58:59 +00:00
Alain Frisch
84147074f9
Split Pexp_constraint into Pexp_coerce/Pexp_constraint.
...
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/extension_points@13552 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-04-17 12:23:44 +00:00