Commit Graph

8869 Commits (e69730e0d62763f8f4ff8fb2c276058c2e45d10f)

Author SHA1 Message Date
Wojciech Meyer c133e90cf1 PR#5885: Fix: Incorrect rule for compiling C stubs when shared libraries are not supported.
Patch by Jérôme Vouillon!

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13233 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-14 07:43:49 +00:00
Wojciech Meyer 7ce7cece56 added ocamlbuild test (fix for PR#5763) .
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13232 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-14 00:08:13 +00:00
Benedikt Meurer 448571ed7b [arm] Add CFI directives to the native runtime.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13231 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 17:20:36 +00:00
Benedikt Meurer b014e69fb1 Add note about CFI support for OS X.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13230 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 17:03:39 +00:00
Benedikt Meurer 354b740a28 [coloring] Validate physical register offsets.
The ARM backend uses several tricks to support selection of
VFP3_D16/VFP3_D32 when ocamlopt is invoked, which introduces
interferences with non-existing floating-point registers when
the VFP3_D16 fpu option is used. These invalid interferences
must be skipped while coloring the graph.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13229 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 16:57:36 +00:00
Benedikt Meurer 130769e7b4 [arm] Fix typo in is_simple_expr.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13228 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 16:57:28 +00:00
Benedikt Meurer 4df940cae9 [amd64] Avoid unbalanced CFA offsets.
This fixes the following warnings generated by ld on Mac OS X:

- ld: warning: could not create compact unwind for _caml_raise_exn: stack subq instruction is too different from dwarf stack size
- ld: warning: could not create compact unwind for _caml_raise_exception: stack subq instruction is too different from dwarf stack size

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13227 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 14:22:17 +00:00
Benedikt Meurer dd65af958b Use clang as assembler on Mac OS X if available.
Mac OS X ships with a really old version of as, which does not support
the CFI directives. LLVM itself provides an assembler that is certainly
way more up to date, but currently there's no dedicated frontend, so we
simply use clang in this case.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13226 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 14:22:14 +00:00
Benedikt Meurer 9032ddf683 PR#5886: Small changes to compile for Android.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13225 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-13 13:05:37 +00:00
Jacques Garrigue c4d1bf8b77 propagate type information to patterns, even when there are polymorphic variants
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13221 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-11 07:26:23 +00:00
Damien Doligez 98f86ab6ae fixed wrong @since version numbers
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13215 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-08 13:23:49 +00:00
Alain Frisch 21f09281f3 Fix #5876.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13214 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-08 09:40:55 +00:00
Alain Frisch fe4528d13a Doc.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13213 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-08 09:32:49 +00:00
Alain Frisch f369e064d0 Add ocamldoc 'since' tag to Set.find.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13212 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-08 09:02:33 +00:00
Alain Frisch 706f815450 #5864: add a find operation to Set.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13211 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-08 09:01:02 +00:00
Alain Frisch 2a7b2fc5f1 Extend ast_mapper to allow mapping locations.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13210 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-07 14:13:01 +00:00
Alain Frisch fbe6be791a Mark explicitly unused bound variables (warning 27) in tast_iter.ml.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13209 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-07 12:31:58 +00:00
Benedikt Meurer 2a38b0a232 [coloring] No need to test for "well-typed" interferences.
The interference graph no longer contains "ill-typed" interferences
between registers of different class, so we no longer need to test
in the coloring algorithm.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13208 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-07 07:06:18 +00:00
Benedikt Meurer a1ecba1619 [interf] Don't record "ill-typed" interferences.
The coloring algorithm uses only the "well-typed" interferences (registers
with same class). This is because we don't assign the same stack slot to
registers of different register class.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13207 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-07 07:06:15 +00:00
Benedikt Meurer 02a3d55135 [arm] Inlined byte-swap operations are simple if their arguments are.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13206 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-06 17:40:27 +00:00
Benedikt Meurer 4b800c3a82 PR#5774: Updates Changes.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13205 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-06 17:22:13 +00:00
Benedikt Meurer df19d30cb4 PR#5774: Add test for the bswap primitives.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13204 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-06 17:22:09 +00:00
Benedikt Meurer e0e2f5fb1b [arm] Implement the byte swap operations (PR#5774).
Use rev16/movt to implement direct 16-bit byte-swap operation
(ARMv6T2 and above) and rev to implement the 32-bit byte-swap
operation (ARMv6 and above).

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13203 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-06 17:07:50 +00:00
Wojciech Meyer 7efba284ce Reverting "PR#5868: Bytecode dependencies should not appear in output of ocamldep"
-native flag semantics are currently different to that what the user
expects, and what was attempted to be fixed. The semantics of -native
are not to completely disable generation of dependencies for bytecode
instead make the compilation to native code more efficient.

Most of the project are expected to be buildable with both versions of
the compiler. So ocamldep is expected to always generate the
dependencies in both cases. When the .mli file is absent ocamldep
needs to still generate dependencies in bytecode to build the cmi only
and to build cmi and cmx for the dependent compilation unit . Because
of some make tool pecularities, handling of two different rules that
include the same depenency is problematic, so instead when the -native
flag is not used the cmo file is used as a proxy to build cmi, when
the -native enabled however, the cmx file is used as proxy to build
cmi file for the dependencies to avoid recompilation of the dependent
.cmo file just to get .cmi file.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13202 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-03 17:38:21 +00:00
Damien Doligez 88c6ce7d94 ignore generated file
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13201 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-03 16:01:58 +00:00
Damien Doligez b61b138c99 PR#5804: bad formatting of documentation
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13200 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-03 16:01:13 +00:00
Damien Doligez 011b61118d PR#5712: (6) document OCAMLRUNPARAM flag R
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13199 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-03 15:23:40 +00:00
Damien Doligez 1d72610aea PR#5712: (6) document OCAMLRUNPARAM flag R
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13198 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-03 15:22:11 +00:00
Wojciech Meyer f97f2f5bab PR#5868: Somewhat a better fix for -native option.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13195 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 16:17:58 +00:00
Wojciech Meyer 04bca674d3 PR#5868: Bytecode dependencies should not appear in output of ocamldep when -native flag is used
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13194 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 15:09:08 +00:00
Wojciech Meyer 4bc9fa5359 PR#5212: Fix: ocamlbuild does not warn for bad input
Patch by Ygrek!

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13193 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 04:53:51 +00:00
Wojciech Meyer 5e15de8ae1 Fix missing files to be installed for ocamlbuild
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13192 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 04:53:49 +00:00
Wojciech Meyer 40dc45cb77 Add some test for ocamlbuild. Make ocamlbuild_test test function handle optional parameters and support expected failures
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13191 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 01:37:26 +00:00
Wojciech Meyer cb09743fc5 Commit also .depend file for ocamlbuild Makefile.noboot
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13190 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:29 +00:00
Wojciech Meyer a6774cae34 Entry point for ocamlbuild noboot version.
Is enabled by saying:

# make OCAMLBUILD_NOBOOT=yes world.opt

currently just works for bytecode only.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13189 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:28 +00:00
Wojciech Meyer 2a415d5ec0 Initial version of Makefile.noboot that does not depend on ocamlbuild being booted
Still requires some work, in particular:
* native build of ocamlbuild
* building Camlp4 still is not working
* not vpath leftover files break the further build

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13188 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:27 +00:00
Wojciech Meyer 51e74fff88 Remove old module from ocamlbuild bootstrap Std_signatures to tide up
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13187 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:26 +00:00
Wojciech Meyer 293bf33f1d Add 'K' class of warning tag to ocamlbuild
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13186 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:25 +00:00
Wojciech Meyer c05b5ccea7 ocamlbuild_test, remove test directory tree only if exists
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13185 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2013-01-01 00:33:23 +00:00
Wojciech Meyer 0ef73a598c Add two more entries to .ignore
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13179 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-31 01:25:54 +00:00
Wojciech Meyer 7ce9e125d3 Removed sporious modules from .odocl
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13178 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-31 01:04:22 +00:00
Wojciech Meyer d2335da36f More work on ocamlbuild testsuite.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13177 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-30 03:25:35 +00:00
Wojciech Meyer 675d52a678 Prefer forward slashes to backward slashes on NT as it's more portable.
Nowdays all the Windows operating systems accept both, more over it's
being passed to our toolchain as a relative path (not UNC), so I see
no harm if we want to be a little bit more portable. The only reason
to not doing so is conventiob and IDEs which might parse Makefile.nt
and not recognise it.

Proposed by Adrien Nader.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13176 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-30 03:12:11 +00:00
Wojciech Meyer 6268eacf79 WinError.h -> winerror.h. This improves cross-compilation for Windows.
Patch proposed by Adrien Nader.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13175 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-30 03:12:10 +00:00
Wojciech Meyer 0acb3a2205 config/Makefile.*: remove DBM-related variables.
Patch by Adien Nader!

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13174 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-30 03:12:09 +00:00
Benedikt Meurer b04d8284f0 Fix several C compiler warnings.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13171 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-29 10:41:08 +00:00
Wojciech Meyer 21735ad375 New testing infrastructure for ocamlbuild (PR#5755)
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13170 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-29 04:34:30 +00:00
Benedikt Meurer 25343aa241 [arm] Fix arch selection with ARMv6. Rename EABI_VFP to EABI_HF.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13169 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-29 00:49:57 +00:00
Benedikt Meurer 9ae458499e [arm] Improve register pressure for interval splitting.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13168 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-28 23:27:56 +00:00
Wojciech Meyer 655cf17e4e Revert "PR#5652: Try to use camlp4.opt if it's possible"
camlp4.opt works only with native plugins therefore the fix will break bytecode camlp4 plugins.

git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13167 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
2012-12-28 18:19:27 +00:00