Indeed, after some more investigation (thanks to Francois Berenger), it seems that in 4.03 we can no longer just use a bare .mli file with the interface to some external code, as it was possible before.

Now, we need to provide also an .ml file, in any case.

The fix in parmap is underway, and it was a simple matter of moving setcore.mli to setcore.ml, without touching anything else.

For the curious, the content of setcore.ml (ex setcore.mli) is the following:

(* uses the native affinity interface to  
  declare that the current process should be
  attached to core number n *)

external numcores: unit -> int = "numcores"
external setcore: int -> unit = "setcore"

If you have similar patterns in your projects, take due notice :-)

--
Roberto


2016-04-26 19:16 GMT+02:00 Leo White <leo@lpw25.net>:
> It seems that in 4.03 one needs to add the -opaque flag when compiling
> such stubs, otherwise things go astray, and it seems ocamlbuild does not
> detect automatically such situations, so one needs to explicitly pass
> the -opaque option when compiling setcore.mli (and only it).

I would not have thought that adding `-opaque` would be sufficient. It should get you
past the compilation of modules which depend on `setcore.mli`, but I would expect
linking to fail still. If that is not the case I guess it should be considered a bug because
in 4.03 referencing an `external` is supposed to force linking of the containing module.
The change was made because the existing behaviour was said to confuse people --
using a normal value from a module caused it to get linked whilst using an external value
didn't.

Regards,

Leo

--
Caml-list mailing list.  Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs



--
Roberto Di Cosmo

------------------------------------------------------------------
Professeur (on leave at/detache a INRIA Roquencourt)
IRIF                           email : roberto@dicosmo.org
Universite Paris Diderot         web : http://www.dicosmo.org
Case 7014                    
Twitter : http://twitter.com/rdicosmo
5, Rue Thomas Mann        
F-75205 Paris Cedex 13 FRANCE                  
------------------------------------------------------------------
Office location:

Paris Diderot                       INRIA
 
Bureau 3020 (3rd floor)             Bureau C123
Batiment Sophie Germain             Batiment C
8 place Aurélie Nemours             2, Rue Simone Iff
Tel: +33 1 57 27 92 20              Tel: +33 1 80 49 44 42  

Metro
 Bibliotheque F. Mitterrand        Ligne 6: Dugommier
 ligne 14/RER C                    Ligne 14/RER A: Gare de Lyon
------------------------------------------------------------------     
GPG fingerprint 2931 20CE 3A5A 5390 98EC 8BFC FCCA C3BE 39CB 12D3