Commit Graph

520 Commits (940ffca8306f78fa5f2dff0a66caabc5b25ed124)

Author SHA1 Message Date
David Allsopp 8b22c9af5d Refactor lintapidiff command for long-line 2017-10-25 23:54:39 +01:00
David Allsopp 11c3df41ed Tidy-up generation of utils/config.ml
Simultaneously deals with an overly-long line and also ensure that
backslashes would be escaped no matter which variables they happened to
appear in.
2017-10-25 23:54:39 +01:00
Leo White 8f6c6aca92 Enable call counts in spacetime by default 2017-10-12 16:52:09 +01:00
Damien Doligez db88523db3 Fix flexdll section in README (#1359)
Fix flexdll section in `README.win32.adoc`.
Pass the whole OCaml config to the Flexdll Makefile instead of a few chosen variables.
2017-10-05 16:48:08 +02:00
Gabriel Scherer a202aa032b rename the configure-time safe-string options for clarity
-(un)safe-string becomes -(no-)force-safe-string
-(un)safe-string-default becomes -default-unsafe-string

Config.safe_string (and Clflags.unsafe_string) keep their name for
backward-compatibility, as well as the C define CAML_SAFE_STRING
(which corresponds to -force-safe-string).
2017-10-02 14:42:19 +02:00
Gabriel Scherer 6550a30719 safe-string: clarify the relation between configure- and compile-time options 2017-10-02 14:42:19 +02:00
Jacques Garrigue 70b02405e0 Merge pull request #1365 from yallop/let-rec-patch-406
GPR#556, PR#7215, PR#7231, PR#6738: Add a new check that 'let rec' bindings are well formed.
2017-09-22 15:37:10 +09:00
Nicolás Ojeda Bär 9fe6d0e2c2 Unicode support for the Windows runtime (#1200)
* Add support code

* Explicitly reference ANSI Windows APIs

* Adapt Sys.is_directory

* Adapt ocamlrun

* Add Changes entry

* Add testsuite

* Adapt Unix.open_process{_in,_out,_full,}, Unix.create_process{_env,}

* Adapt headernt.c

* Adapt Pervasives.open_{in,out}, Filename.temp_file, etc.

* Adapt Sys.file_exists

* Adapt Sys.remove

* Adapt Sys.chdir

* Adapt Sys.getcwd

* Adapt Sys.getenv

* Adapt Sys.command

* Adapt Sys.readdir

* Adapt CPLUGINS

* Remove use of FormatMessageA, CreateFileA

* Adapt Unix.mkdir

* Adapt Unix.openfile

* Adapt Unix.readlink

* Adapt Unix.rename

* Adapt Unix.{LargeFile,}.{l,}stat

* Adapt Unix.system

* Adapt Unix.{open,read}dir

* Adapt Unix.link

* Adapt Unix.symlink

* Adapt Unix.getcwd

* Adapt Unix.rmdir

* Adapt Unix.utimes

* Adapt Unix.unlink

* Adapt Unix.chdir

* Adapt Unix.chmod

* Adapt Unix.{execv,execve,execvp,execvpe}

* Compile with -DUNICODE -D_UNICODE under Windows

* Add configure-time switch, Config.windows_unicode

* Adapt Unix.putenv

* Re-implement Unix.environment using GetEnvironmentStrings()

* Use Unicode-aware flexdll

* Adapt Unix.environment

* AppVeyor: bootstrap flexdll

* Adapt tests/embedded/cmmain.c

* Adapt tests/lib-dynlink-csharp/entry.c

* Remove exec tests

* Fixup

* Pass -municode to MinGW compiler

* Try to fix tests/embedded

* Adapt Sys.rename

* Correct Changes entry

* Makefile.several: use $(O) and $(NATIVECODE_ONLY)

* Display => skipped correctly for tests/win-unicode

* Add missing casts to execv* calls

It's not clear why these aren't necessary for with char, but they are
necessary with wchar_t on GCC (but not MSVC).

* Missing header in systhreads (Win32 only)

* Revert "Pass -municode to MinGW compiler"

This reverts commit a4ce7fb319c429068a5b9d1ab14a2cc3969c355f.

* Revert "Try to fix tests/embedded"

This reverts commit 5197d8922295b7b339b970ec3189374aa15de4b8.

* Revert "Remove exec tests"

This reverts commit 306ccef2e79eca5b38ecfa285b912c7bcf3e9f52.

* Don't pass $(LDFLAGS) when build ocamlc.opt

It's already included via CC anyway, and it causes Unicode problems for
Winodws (because the linker options need to be prefixed "-link" to go via
flexlink).

* Use wmain on Windows for ocamlrun

* Build Unicode applications on Windows

* Use wmain in headernt.c

* Minor correction to win-unicode Makefile

* Switch submodule to FlexDLL 0.36

* Build ocamlyacc as an ANSI application

* Revert "Fixup"

This reverts commit 500bd6b575ffd6c5b71c6953e55d740f0b090185.

* Fix casts for execvp/execve

* Remove tabs from test code

* Fix Changes entry

* shell32.lib is no longer necessary

* Free allocated string

* Changes: signal breaking change

* Disable exec_tests

* Protect with CAML_INTERNALS
2017-09-18 17:41:29 +02:00
Sébastien Hinderer 77adbb0ae6 Integrate the build of ocamltest to the main build system
This commit ensures ocamltest.byte and ocamltest.opt get built along with
the other tools.
2017-09-18 17:40:14 +02:00
Leo White e1fd8d5d3a Merge pull request #1332 from bobot/fix_output_complete_obj
[OCamlc] fixes output-complete-object
2017-09-16 06:54:58 +01:00
François Bobot 1343658f5d [OCamlc] use OUTPUTOBJ and move CAML_INTERNAL
in the generated file instead of in the command line
2017-09-15 21:28:59 +02:00
Damien Doligez f086eda9c0 add -no-flat-float-array configure option 2017-09-15 18:24:36 +02:00
Mark Shinwell b65096678b Register availability analysis (#856) 2017-09-15 11:08:14 +01:00
Sébastien Hinderer 004dc6b018 Fix `make alldepend`: don't build dependencies for num (#1310)
This is a follow-up to PR #1178
2017-08-30 16:15:17 +02:00
Xavier Leroy 3de0115bfe At installation time, remove some leftover files from otherlibs/num
In $(INSTALL_LIBDIR) there can be leftover files from an earlier installation of OCaml, including files from the now defunct otherlibs/num library.  Those files can cause findlib/ocamlfind to think that the Num library is still provided by the core OCaml distribution.

This is a temporary hack, to be cleaned up in 4.07 for example.
2017-08-19 17:44:26 +02:00
Leo White b3f54cb726 Move complugin and friends from BYTECOMP to COMP (#1216) 2017-08-16 14:33:21 +01:00
Mark Shinwell 9683393625 Call counts in Spacetime (#1180) 2017-06-16 13:51:12 +01:00
sliquister 3f76c0525b generalize -dtimings to show allocation, top heap size (#1152) 2017-06-09 12:29:21 +01:00
Fabrice Le Fessant 8daa184d95 New -depend option for ocamlc/ocamlopt 2017-06-01 15:56:30 +02:00
Sébastien Hinderer 6a381fcfa9 Revert "Make 'alldepend' work even when opt compiler is disabled"
This reverts commit 1de47e2d87.

This commit introduced other issues so it seems better to revert it.
2017-04-28 15:49:09 +02:00
Sébastien Hinderer 1de47e2d87 Make 'alldepend' work even when opt compiler is disabled
This is achieved by not including the architecture-specific files in the
prerequesites of 'beforedepend'.
2017-04-28 11:40:20 +02:00
Sébastien Hinderer 40fcbb5f0a Move configuration header files from the config to the byterun/caml directory
This commit moves:
  - config/m.h to byterun/caml/m.h
  - config/s.h to byterun/caml/s.h

Consequently, m.h and s.h now get installed alongside other
OCaml header files.

This commit also updates the .depend files, introducing updates in the
dependencies which are not consequences of this commit itself.
2017-04-26 19:28:17 +02:00
Sébastien Hinderer 376435be98 Make 'make depend' fail as soon as a sub-command it invokes fails.
With this commit, 'make alldepend' will stop and report an error as
soon as one of the invoked command fails, which was not the case before.

This commit thus makes it possible to test that 'make alldepend' works
in an automated way.
2017-04-26 18:23:22 +02:00
David Allsopp 0301576685 Fix \r problems on recent Cygwins
The Cygwin packages for awk, grep and sed were updated on 20 February
2017 so that they no longer automatically strip \r characters on binary
mounts. This affects the OCaml build system in a few places, requiring
the addition of a few tr calls.

References:
  * https://cygwin.com/ml/cygwin/2017-02/msg00152.html
  * https://cygwin.com/ml/cygwin/2017-02/msg00189.html
  * https://cygwin.com/ml/cygwin/2017-02/msg00188.html
2017-04-13 14:17:28 +02:00
Mark Shinwell 3efe66e043 Remove SPARC backend 2017-04-10 09:18:13 +01:00
David Allsopp 80e7529be5 Fix installation of bytecode flexlink.exe
The bytecode version of flexlink.exe is compiled before camlheader is
available, so it needs to have that prepended when it's installed.
2017-04-09 19:00:06 +02:00
David Allsopp 7ef4018bd7 Don't build flexlink.opt in opt.opt
Require flexlink.opt to be specified. Old behaviour:

make flexdll world.opt install

now becomes:

make flexdll world.opt flexlink.opt install

Without flexlink.opt, a bytecode version of flexlink.exe is installed.
2017-04-09 19:00:06 +02:00
David Allsopp 5a29efa469 Split FlexDLL bootstrap into flexdll and flexlink
Allows the C object files to be provided separately and just the
flexlink binary itself to be bootstrapped.
2017-04-09 19:00:06 +02:00
David Allsopp 65fd726329 Install bootstrapped FlexDLL objects to flexdll/
The install-flexdll target now puts the object files for FlexDLL in a
subdirectory flexdll of the Standard Library instead of in the Standard
Library itself.

A configuration tweak means that -I +flexdll is effectively added to all
compiler invocations and also a pseudo-option -L+flexdll to ocamlmklib
calls to Config.mkdll which fixes PR#7373.
2017-04-09 19:00:06 +02:00
David Allsopp 614dd0b756 Allow backslashes in FLEXLINK_FLAGS
Also in MKEXE, MKDLL and MKMAINDDLL as a result.
2017-04-09 19:00:06 +02:00
Sébastien Hinderer eef958007e Build system: rename variables related to manual pages
Rename MANEXT (resp. LIB_MANEXT) to PROGRAMS_MAN_SECTION (resp.
LIBRARIES_MAN_SECTION).

Also get rid of a useless variable assignment in configure.
2017-03-29 11:10:06 +02:00
Sébastien Hinderer 3564aade19 Introduce and use the OUTPUTEXE and OUTPUTOBJ build variables 2017-03-29 11:10:06 +02:00
Sébastien Hinderer f2d5d60376 Define new build variables for C compiler and preprocessor flags 2017-03-29 11:10:06 +02:00
Sébastien Hinderer 8868a7c023 Rename the BYTECCLINKOPTS build variable to LDFLAGS 2017-03-29 11:10:05 +02:00
Pierre Chambart cb81cc6fe2 Declare record type for flambda function parameters (#1028) 2017-03-16 10:40:47 +00:00
Sébastien Hinderer d05d521d6e Fix dependencies generation for otherlibs
Generate dependencies for all of them, not just those that will
actually be built.
2017-03-09 17:12:02 +01:00
Sébastien Hinderer a85b39654a Clearly report that dependencies cannot be regenerated for the MSVC ports 2017-03-09 17:12:02 +01:00
Sébastien Hinderer ccf22c8471 Make .depend files generated for C sources more portable
This implements a suggestion provided by @xavierleroy in
https://github.com/ocaml/ocaml/pull/941#issuecomment-266047690

Before this commit, the dependencies of the win32unix C files were not
taken into account at all. This commit fixes this, too.
2017-03-09 17:12:02 +01:00
Christopher Zimmermann feaab3e40e use $(MAKE) variable 2017-03-05 21:36:13 +01:00
Gabriel Scherer 838b6f8fd2 Merge pull request #1074 from stedolan/parallel-make-fix
Fix for parallel make
2017-03-02 17:00:01 -05:00
Stephen Dolan fa576384b2 Fix for parallel make 2017-03-02 10:15:40 +00:00
Nicolas Ojeda Bar e75c87dc48 Initial import of linear-scan-register-allocator
The code in this commit was written by Marcell Fischbach & Benedikt Meurer.
See [Mantis#5324](http://caml.inria.fr/mantis/view.php?id=5324) for some
context.

The code (which was originally written against 3.12) was ported to trunk by
doing

```bash
git clone https://github.com/bmeurer/ocaml-experimental/
cd ocaml-experimental
git diff master...linear-scan-register-allocator > t.diff
```

and then applying the diff by hand.
2017-02-22 17:09:18 +01:00
Török Edwin d1cd849d3f Documentation tool: add tools/lintapidiff.ml
Run 'make lintapidiff' in the root of a git checkout to get a list of
potentially missing or wrong @since annotations.

The tool is not built by default, you have to first run 'make
world.opt', and then run 'make lintapidiff'.

lintapidiff doesn't support stop comments: add explicit list of changes to ignore.

see copyright header for license.
2017-02-21 17:13:38 +02:00
fdopen 9174a1d1ec also install ocamlyacc 2017-02-17 16:38:26 +01:00
Sébastien Hinderer 42ae45f5b4 Makefile: declare the distclean and coreboot targets as PHONY
Makefile: declare the coreboot target as PHONY
2017-02-15 16:06:23 +01:00
Sébastien Hinderer 14614a5c2e Makefile: reorder a few phony and variable declarations 2017-02-15 11:19:08 +01:00
Sébastien Hinderer 05005bd7d3 Makefile: get rid of commented rule 2017-02-15 11:19:08 +01:00
Sébastien Hinderer 460019eb69 Makefile: minor improvement of a rule related to the native dynlink library 2017-02-15 11:19:08 +01:00
Sébastien Hinderer a23bec29ec Makefile: minor fix of the clean rule
Move the phony declaration above the first definition of the clean rule.
2017-02-15 11:19:08 +01:00
Sébastien Hinderer 73179f8972 Makefile: slightly improve the flexdll rule 2017-02-15 11:19:07 +01:00