caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] OCaml 4.06.0+rc1
@ 2017-10-29 11:49 Gabriel Scherer
  2017-10-30 18:25 ` David Allsopp
  2017-11-03 10:53 ` [Caml-list] Upcoming breaking changes in Ocamldoc 4.06 octachron
  0 siblings, 2 replies; 4+ messages in thread
From: Gabriel Scherer @ 2017-10-29 11:49 UTC (permalink / raw)
  To: caml users

Dear OCaml users,

We have created a first release candidate of the upcoming
OCaml 4.06.0 release for your repeated testing pleasure. It is
available as opam switches 4.06.0.+rc1 (or +rc1+flambda, etc.)

  opam switch 4.06.0+rc1

or as source archives at

  http://caml.inria.fr/pub/distrib/ocaml-4.06/

The Changelog since 4.05.0 is available at

  http://caml.inria.fr/pub/distrib/ocaml-4.06/notes/Changes.4.06.0+rc1.txt

The more specific list of changes since 4.06.0+beta2 is
included at the end of this email.

We are hoping to make the actual 4.06.0 release shortly. If
you are the maintainer of a publicly-distributed OCaml
package, now is the time to make sure you have made
a 4.06-ready release.

Happy hacking,

-- Gabriel Scherer for the OCaml team.


Changes since beta2:

* MPR#7598, GPR#1402: the magic numbers used by the OCaml
  compiler (versioning numbers for object files and the binary
  AST format) have been updated, which means that some tools
  may have to be updated to the 4.06-specific magic numbers,
  even if they appeared to work fine in
  4.06.0+beta2. (Apologies updating so late in the release
  cycle.)
  (Damien Doligez, review by Alain Frisch, Xavier Leroy and Sébastien Hinderer,
  report by Bart Jacobs)

- GPR#594: New manual chapter on polymorphism troubles: weakly
  polymorphic types, polymorphic recursion,and higher-ranked
  polymorphism.
  (Florian Angeletti, review by Damien Doligez, Gabriel Scherer,
   and Gerd Stolpmann)

  You can preview this chapter (and the whole 4.06.0 manual) at:
    http://www.polychoron.fr/ocaml-beta-manual/4.06+rc1/polymorphism.html

- GPR#1409: Fix to enable NetBSD/powerpc to work.
  (Håvard Eidnes)

- MPR#7657, GPR#1424: ensures correct call-by-value semantics
  when eta-expanding functions to eliminate optional arguments
  (Alain Frisch, report by sliquister, review by Leo White and Jacques
  Garrigue)

- GPR#1457, ocamldoc: restore label for exception in the latex
  backend (omitted since 4.04.0)
  (Florian Angeletti, review by Gabriel Scherer)

- MPR#6329, GPR#1437: Introduce padding word before "data_end"
  symbols to ensure page table tests work correctly on an
  immediately preceding block of zero size.
  (Mark Shinwell, review by Xavier Leroy)

- MPR#7658, GPR#1439: Fix Spacetime runtime system compilation
  with -force-safe-string
  (Mark Shinwell, report by Christoph Spiel, review by Gabriel Scherer)

- GPR#1407: Fix raw_spacetime_lib
  (Leo White, review by Gabriel Scherer and Damien Doligez)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [Caml-list] OCaml 4.06.0+rc1
  2017-10-29 11:49 [Caml-list] OCaml 4.06.0+rc1 Gabriel Scherer
@ 2017-10-30 18:25 ` David Allsopp
       [not found]   ` <09738422-5ADF-43DE-856A-2727515BD2FA@acm.org>
  2017-11-03 10:53 ` [Caml-list] Upcoming breaking changes in Ocamldoc 4.06 octachron
  1 sibling, 1 reply; 4+ messages in thread
From: David Allsopp @ 2017-10-30 18:25 UTC (permalink / raw)
  To: caml users

Gabriel Scherer wrote:
> Dear OCaml users,
> 
> We have created a first release candidate of the upcoming OCaml 4.06.0
> release for your repeated testing pleasure. It is available as opam
> switches 4.06.0.+rc1 (or +rc1+flambda, etc.)
> 
>   opam switch 4.06.0+rc1
> 
> or as source archives at
> 
>   http://caml.inria.fr/pub/distrib/ocaml-4.06/
> 
> The Changelog since 4.05.0 is available at
> 
>   http://caml.inria.fr/pub/distrib/ocaml-
> 4.06/notes/Changes.4.06.0+rc1.txt

One of the big changes for the native Windows ports of OCaml is that we now have support for UTF-8 filenames in the runtime.

TL;DR functions like Sys.readdir no longer return garbage (or at best locale-specific strings).

I wrote up a post about the details of this large patch at  http://www.dra27.uk/blog/platform/2017/10/30/ocaml-unicode.html, which also includes details on compiling OCaml on Windows, as the instructions have altered slightly with 4.06.0.

Some of the fruits of this labour can be seen in our Camel and Cyrillic-laden AppVeyor logs, for example https://ci.appveyor.com/project/avsm/ocaml/build/1.0.4836

Happy Ĥǻḉḱḯṋḡ!


David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [Caml-list] OCaml 4.06.0+rc1
       [not found]   ` <09738422-5ADF-43DE-856A-2727515BD2FA@acm.org>
@ 2017-11-02 11:59     ` David Allsopp
  0 siblings, 0 replies; 4+ messages in thread
From: David Allsopp @ 2017-11-02 11:59 UTC (permalink / raw)
  To: Mattias Engdegård, OCaml List (caml-list@inria.fr)

Mattias Engdegård wrote:
> 30 okt. 2017 kl. 19.25 skrev David Allsopp <dra-news@metastack.com>:
> >
> > One of the big changes for the native Windows ports of OCaml is that
> we now have support for UTF-8 filenames in the runtime.
> >
> > TL;DR functions like Sys.readdir no longer return garbage (or at best
> locale-specific strings).
> 
> This sounds like very good news, but just for curiosity, how are
> unpaired surrogates in file names handled? (I have no Windows machine
> handy.) Does readdir raise an exception, or return useless rubbish, or
> somehow encode the surrogates in a form that can be used by other file
> handling functions?

This is a good question - and indeed is a section I should add to the post. At the moment, you will get a Sys_error exception informing you that "No mapping for the Unicode character exists in the target multi-byte code page" - in other words, the runtime refuses to give invalid UTF-8 in this case. 

If you configure OCaml with WINDOWS_UNICODE=0 then, as in previous versions, you will get a nonsense string, but no exception.

We plan in 4.07.0 to address this but it hasn't been dealt with in this release mainly because unpaired surrogates in filenames are a highly parasitic case and also because this issue does not (I believe) only affect Windows.


David

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Caml-list] Upcoming breaking changes in Ocamldoc 4.06
  2017-10-29 11:49 [Caml-list] OCaml 4.06.0+rc1 Gabriel Scherer
  2017-10-30 18:25 ` David Allsopp
@ 2017-11-03 10:53 ` octachron
  1 sibling, 0 replies; 4+ messages in thread
From: octachron @ 2017-11-03 10:53 UTC (permalink / raw)
  To: caml-list

[-- Attachment #1: Type: text/plain, Size: 3064 bytes --]

Dear Ocaml users,

The upcoming version 4.06.0 of the ocaml distribution contains an 
unusual amount
of bug fixes for ocamldoc. Unfortunately, three of these changes may 
break some
workflow; these breaking changes concern

  - the definition of module preamble
  - the semantic of ocamldoc heading levels
  - the html structure produced by ocamldoc

Nevertheless, only the first change may affect users using the default 
ocamldoc
settings and only in some corner cases. Contrarily, the heading level 
and html output
changes should mostly affect users of custom documentation styles.

More precisely,

- First(GPR#1037 <https://github.com/ocaml/ocaml/pull/1037>), the 
preamble of the documentation is now defined as the first
   documentation comment present in a ml or mli file, only if this 
documentation
   comment comes before any module elements.
   The intent here is to avoid using as a preamble a documentation 
comment extracted
   from the middle of the mli file and avoid repeating this comment:

        type t = A | B
        val x: t

       (** In other words, before 4.06, this documentation comment was 
considered
           as both a preamble for the whole file and a documentation 
comment for "y"
       *)
       val y: t

   This may cause some troubles with open statements laying at the top 
of an interface
   files:

        open M

        (** This is not considered as a preamble anymore *)


- Second(GPR#830 <https://github.com/ocaml/ocaml/pull/830>), the 
semantic of heading
   level in ocamldoc has been changed to make it possible to use "{1" 
for standard
   documentation section. Before this change section headings should 
have started
   at "{2" and "{1" was reserved for the module titles. This is no 
longer the case.

   The default css style and mapping to latex and texinfo heading levels 
have been
   updated to make this change invisible in the default ocamldoc setting.

   As a consequence ocamldoc html backend maps now the ocamldoc heading 
level "{n" to
   the html heading level "<h(n+1)>". Custom css style that redefined 
the style of
   these headings will need to be updated.

   The other ocamldoc backends have been updated to translate both 
heading level
   "{1" and "{2" to the same heading level in the target language by 
default, but
   this can be changed using the "-latextitle" or "-infotitle" option.


- Third(GPR#802 <https://github.com/ocaml/ocaml/pull/802> and GPR#804 
<https://github.com/ocaml/ocaml/pull/804>), the output of the html 
renderer has been significantly
   updated to replace all use of "<br>" tags by semantic html tags which 
should make much
   easier to style consistently the resulting html with css. Similarly, 
the paragraph tag is now
   used in a much more regular way.

   Unfortunately, this also means that custom css that tried to recover 
semantic
   information from the position of "<br>" tags will need to be updated.

Happy documentation hacking,
Florian "octachron" Angeletti.


[-- Attachment #2: Type: text/html, Size: 3986 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-03 10:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-10-29 11:49 [Caml-list] OCaml 4.06.0+rc1 Gabriel Scherer
2017-10-30 18:25 ` David Allsopp
     [not found]   ` <09738422-5ADF-43DE-856A-2727515BD2FA@acm.org>
2017-11-02 11:59     ` David Allsopp
2017-11-03 10:53 ` [Caml-list] Upcoming breaking changes in Ocamldoc 4.06 octachron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).