Skip to content
Commits on Source (7)
......@@ -1705,6 +1705,7 @@ bytecomp/bytepackager.cmo : \
typing/typemod.cmi \
bytecomp/translmod.cmi \
typing/subst.cmi \
bytecomp/simplif.cmi \
bytecomp/printlambda.cmi \
typing/path.cmi \
utils/misc.cmi \
......@@ -1724,6 +1725,7 @@ bytecomp/bytepackager.cmx : \
typing/typemod.cmx \
bytecomp/translmod.cmx \
typing/subst.cmx \
bytecomp/simplif.cmx \
bytecomp/printlambda.cmx \
typing/path.cmx \
utils/misc.cmx \
......@@ -2483,6 +2485,7 @@ asmcomp/asmlink.cmi : \
asmcomp/asmpackager.cmo : \
typing/typemod.cmi \
bytecomp/translmod.cmi \
bytecomp/simplif.cmi \
utils/profile.cmi \
utils/misc.cmi \
middle_end/middle_end.cmi \
......@@ -2505,6 +2508,7 @@ asmcomp/asmpackager.cmo : \
asmcomp/asmpackager.cmx : \
typing/typemod.cmx \
bytecomp/translmod.cmx \
bytecomp/simplif.cmx \
utils/profile.cmx \
utils/misc.cmx \
middle_end/middle_end.cmx \
......
OCaml 4.08.1 (5 August 2019)
----------------------------
### Bug fixes:
- #7887: ensure frame table is 8-aligned on ARM64 and PPC64
(Xavier Leroy, report by Mark Hayden, review by Mark Shinwell
and Gabriel Scherer)
- #8751: fix bug that could result in misaligned data section when compiling to
native-code on amd64. (observed with the mingw64 compiler)
(Nicolás Ojeda Bär, review by David Allsopp)
- #8769, #8770: Fix assertion failure with -pack
(Leo White, review by Gabriel Scherer, report by Fabian @copy)
- #8816, #8818: fix loading of packed modules with Dynlink (regression in
#2176).
(Leo White, report by Andre Maroneze, review by Gabriel Scherer)
- #8830: configure script: fix tool prefix detection and Debian's armhf
detection
(Stéphane Glondu, review by David Allsopp)
- #8843, #8841: fix use of off_t on 32-bit systems.
(Stephen Dolan, report by Richard Jones, review by Xavier Leroy)
OCaml 4.08.0 (13 June 2019)
---------------------------
......
......@@ -229,6 +229,10 @@ installation, the following targets may be of use:
`make -C testsuite parallel`:: see link:testsuite/HACKING.adoc[]
Additionally, there are some developer specific targets in link:Makefile.dev[].
These targets are automatically available when working in a Git clone of the
repository, but are not available from a tarball.
=== Bootstrapping
The OCaml compiler is bootstrapped. This means that
......
......@@ -1279,34 +1279,9 @@ partialclean::
beforedepend:: bytecomp/opcodes.ml
# Testing the parser -- see parsing/HACKING.adoc
SOURCE_FILES=$(shell git ls-files '*.ml' '*.mli' | grep -v boot/menhir/parser)
AST_FILES=$(addsuffix .ast,$(SOURCE_FILES))
build-all-asts: $(AST_FILES)
CAMLC_DPARSETREE := \
$(CAMLRUN) ./ocamlc -nostdlib -nopervasives \
-stop-after parsing -dparsetree
%.ml.ast: %.ml ocamlc
$(CAMLC_DPARSETREE) $< 2> $@ || exit 0
# `|| exit 0` : some source files will fail to parse
# (for example, they are meant as toplevel scripts
# rather than source files, or are parse-error tests),
# we ignore the failure in that case
%.mli.ast: %.mli ocamlc
$(CAMLC_DPARSETREE) $< 2> $@ || exit 0
.PHONY: list-all-asts
list-all-asts:
@for f in $(AST_FILES); do echo "'$$f'"; done
partialclean::
rm -f $(AST_FILES)
ifneq "$(wildcard .git)" ""
include Makefile.dev
endif
# Default rules
......
#**************************************************************************
#* *
#* OCaml *
#* *
#* Gabriel Scherer, projet Parsifal, INRIA Saclay *
#* *
#* Copyright 2018 Institut National de Recherche en Informatique et *
#* en Automatique. *
#* *
#* All rights reserved. This file is distributed under the terms of *
#* the GNU Lesser General Public License version 2.1, with the *
#* special exception on linking described in the file LICENSE. *
#* *
#**************************************************************************
# Developer-only rules, included in Makefile when a Git repository is detected.
# Testing the parser -- see parsing/HACKING.adoc
SOURCE_FILES=$(shell git ls-files '*.ml' '*.mli' | grep -v boot/menhir/parser)
AST_FILES=$(addsuffix .ast,$(SOURCE_FILES))
build-all-asts:
# Recursive invocation ensures that `git ls-files` is not executed on every
# invocation of make
@$(MAKE) --no-print-directory $(AST_FILES)
CAMLC_DPARSETREE := \
$(CAMLRUN) ./ocamlc -nostdlib -nopervasives \
-stop-after parsing -dparsetree
%.ml.ast: %.ml ocamlc
$(CAMLC_DPARSETREE) $< 2> $@ || exit 0
# `|| exit 0` : some source files will fail to parse
# (for example, they are meant as toplevel scripts
# rather than source files, or are parse-error tests),
# we ignore the failure in that case
%.mli.ast: %.mli ocamlc
$(CAMLC_DPARSETREE) $< 2> $@ || exit 0
.PHONY: list-all-asts
list-all-asts:
@for f in $(AST_FILES); do echo "'$$f'"; done
partialclean::
rm -f $(AST_FILES)
4.08.0
4.08.1
# The version string is the first line of this file.
# It must be in the format described in stdlib/sys.mli
......@@ -965,6 +965,7 @@ let emit_item = function
let data l =
D.data ();
D.align 8;
List.iter emit_item l
(* Beginning / end of an assembly file *)
......
......@@ -993,7 +993,8 @@ let end_assembly () =
` .quad 0\n`; (* PR#6329 *)
` .globl {emit_symbol lbl_end}\n`;
`{emit_symbol lbl_end}:\n`;
` .long 0\n`;
` .quad 0\n`;
` .align 3\n`; (* #7887 *)
let lbl = Compilenv.make_symbol (Some "frametable") in
` .globl {emit_symbol lbl}\n`;
`{emit_symbol lbl}:\n`;
......
......@@ -101,6 +101,7 @@ let make_package_object ~ppf_dump members targetobj targetname coercion
let prefixname = Filename.remove_extension objtemp in
if Config.flambda then begin
let size, lam = Translmod.transl_package_flambda components coercion in
let lam = Simplif.simplify_lambda targetname lam in
let flam =
Middle_end.middle_end ~ppf_dump
~prefixname
......@@ -116,6 +117,7 @@ let make_package_object ~ppf_dump members targetobj targetname coercion
let main_module_block_size, code =
Translmod.transl_store_package
components (Ident.create_persistent targetname) coercion in
let code = Simplif.simplify_lambda targetname code in
Asmgen.compile_implementation_clambda
prefixname ~ppf_dump { Lambda.code; main_module_block_size;
module_ident; required_globals = Ident.Set.empty }
......
......@@ -1528,8 +1528,8 @@ end
phases, we only share exits *)
(* Some specific patterns can lead to switches where several cases
point to the same action, but this action is not an exit (see GPR#1370).
The addition of the index in the action array as context allows to
share them correctly without duplication. *)
The addition of the index in the action array as context allows
sharing them correctly without duplication. *)
module StoreExpForSwitch =
Switch.CtxStore
(struct
......
......@@ -1222,6 +1222,7 @@ let end_assembly() =
` {emit_string datag} 0\n`;
(* Emit the frame descriptors *)
emit_string data_space; (* not rodata_space because it contains relocations *)
if ppc64 then ` .align 3\n`; (* #7887 *)
let lbl = Compilenv.make_symbol (Some "frametable") in
declare_global_data lbl;
`{emit_symbol lbl}:\n`;
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
......@@ -195,6 +195,7 @@ let build_global_target ~ppf_dump oc target_name members mapping pos coercion =
let lam =
Translmod.transl_package
components (Ident.create_persistent target_name) coercion in
let lam = Simplif.simplify_lambda target_name lam in
if !Clflags.dump_lambda then
Format.fprintf ppf_dump "%a@." Printlambda.lambda lam;
let instrs =
......
......@@ -72,7 +72,10 @@ let rec apply_coercion loc strict restr arg =
arg
| Tcoerce_structure(pos_cc_list, id_pos_list) ->
name_lambda strict arg (fun id ->
let get_field pos = Lprim(Pfield pos,[Lvar id], loc) in
let get_field pos =
if pos < 0 then lambda_unit
else Lprim(Pfield pos,[Lvar id], loc)
in
let lam =
Lprim(Pmakeblock(0, Immutable, None),
List.map (apply_coercion_field loc get_field) pos_cc_list,
......
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
......@@ -670,7 +670,6 @@ AC_CHECK_HEADER([sys/select.h], [AC_DEFINE([HAS_SYS_SELECT_H])], [],
## off_t
AC_TYPE_OFF_T
AC_DEFINE([HAS_OFF_T])
# Checks for structures
......@@ -868,6 +867,8 @@ AS_CASE([$host],
[arch=arm; model=armv5te; system=linux_eabi],
[armv5*-*-linux-gnueabi],
[arch=arm; model=armv5; system=linux_eabi],
[arm*-*-linux-gnueabihf],
[arch=arm; system=linux_eabihf],
[arm*-*-linux-gnueabi],
[arch=arm; system=linux_eabi],
[arm*-*-openbsd*],
......@@ -954,7 +955,7 @@ AS_CASE([$host],
[*-*-mingw32|*-pc-windows], [asppprofflags=''],
[asppprofflags='-DPROFILING'])
AS_IF([test -n "$host_alias"], [toolpref="${host}-"], [toolpref=""])
AS_IF([test -n "$host_alias"], [toolpref="${host_alias}-"], [toolpref=""])
# We first compute default values for as and aspp
# If values have been given by the user then they take precedence over
......
ocaml (4.08.0-4) UNRELEASED; urgency=medium
ocaml (4.08.1-1) experimental; urgency=medium
* New upstream release
* Statically link -lbfd to avoid a tight dependency with libbinutils
* Put VERSION in ocaml-base-nox
* Add Breaks/Replaces: ocaml-base to ocaml-base-nox (Closes: #933792)
* Disable testpreempt test on kfreebsd for now
* Reimplement -custom without hacks
* Add back Debian-specific -custom behaviour
-- Stéphane Glondu <glondu@debian.org> Sat, 17 Aug 2019 17:11:29 +0200
-- Stéphane Glondu <glondu@debian.org> Mon, 30 Sep 2019 16:40:45 +0200
ocaml (4.08.0-3) experimental; urgency=medium
......
include /usr/share/dpkg/architecture.mk
OCAMLMAJOR := 4.08
OCAMLMINOR := 0
OCAMLMINOR := 1
OCAML_ABI := $(OCAMLMAJOR).$(OCAMLMINOR)
OCAML_STDLIB_DIR := /usr/lib/ocaml
......
From: Stephane Glondu <steph@glondu.net>
Date: Wed, 10 Jul 2019 16:41:51 +0200
Subject: Fix in configure.am
Forwarded: https://github.com/ocaml/ocaml/pull/8830
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 5bb0611..209870e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -954,7 +954,7 @@ AS_CASE([$host],
[*-*-mingw32|*-pc-windows], [asppprofflags=''],
[asppprofflags='-DPROFILING'])
-AS_IF([test -n "$host_alias"], [toolpref="${host}-"], [toolpref=""])
+AS_IF([test -n "$host_alias"], [toolpref="${host_alias}-"], [toolpref=""])
# We first compute default values for as and aspp
# If values have been given by the user then they take precedence over