echo 'true : package(landmarks.ppx,landmarks)' >> _tags
export OCAML_LANDMARK=auto
topkg build
topkg run exe
> opam switch create 4.06.0 --debug-level=3 | |
00:00.003 GSTATE LOAD-GLOBAL-STATE @ /Users/dbuenzli/.opam | |
00:00.004 SYSTEM LOCK /Users/dbuenzli/.opam/lock (none => read) | |
00:00.004 SYSTEM LOCK /Users/dbuenzli/.opam/config.lock (none => write) | |
00:00.004 FILE(config) Read ~/.opam/config in 0.000s | |
00:00.005 RSTATE LOAD-REPOSITORY-STATE @ /Users/dbuenzli/.opam | |
00:00.008 FILE(repos-config) Read ~/.opam/repo/repos-config in 0.003s | |
00:00.008 SYSTEM LOCK /Users/dbuenzli/.opam/repo/state.cache (none => read) | |
00:00.108 RSTATE Loaded /Users/dbuenzli/.opam/repo/state.cache in 0.099s | |
00:00.264 SYSTEM LOCK /Users/dbuenzli/.opam/repo/state.cache (read => none) |
echo 'true : package(landmarks.ppx,landmarks)' >> _tags
export OCAML_LANDMARK=auto
topkg build
topkg run exe
In order to deprecate a feature from the OCaml system the following steps are taken:
(* | |
ocamlfind ocamlopt -o readmeta -linkpkg \ | |
-package dynlink,compiler-libs.optcomp,compiler-libs.bytecomp readmeta.ml | |
*) | |
let read_cma ic = | |
let lib = | |
let toc_pos = input_binary_int ic in | |
seek_in ic toc_pos; | |
(input_value ic : Cmo_format.library) |
# aspcud /Users/dbuenzli/tmp/opam-1.2.0-beta2/$in /Users/dbuenzli/tmp/opam-1.2.0-beta2/$out -count(removed),-notuptodate(request),-count(down),-count(changed) | |
preamble: | |
property: pinned: bool = [false], installed-root: bool = [false], reinstall: bool = [false], opam-version: string, opam-name: string | |
package: herelib | |
version: 3 | |
depends: ocamlfind , camlp4 | |
conflicts: herelib | |
opam-name: herelib | |
opam-version: 109.10.00 |
(*---------------------------------------------------------------------------- | |
Copyright (c) 2009, Daniel C. Bünzli. All rights reserved. | |
Distributed under a BSD license, see license at the end of the file. | |
----------------------------------------------------------------------------*) | |
let str = Printf.sprintf | |
let exec = Filename.basename Sys.executable_name | |
let pr = Format.printf | |
let pr_err s = Printf.eprintf "%s:%s\n" exec s |
opam-version: "2.0" | |
synopsis: "Build setenv" | |
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>" | |
setenv: [[BLA += "BLA"]] | |
authors:[] | |
build:[[ "env" ]] |
opam-version: "2.0" | |
synopsis: "Build environment" | |
maintainer: "Daniel Bünzli <daniel.buenzl i@erratique.ch>" | |
authors:[] | |
build:[[ "env" ]] |
# Download vagrant box for Windows 10 from: | |
# | |
# https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ | |
# | |
# Unzip and add with: | |
# | |
# vagrant box add --name win10 MSEdge\ -\ Win10.box | |
# | |
# During the first `vagrant up` need to connect to vm UI to do this: | |
# |
The first point for me is that we should as much as possible get to a system where the following basic sequences of steps are possible.
opam switch create bla # Create switch
opam install non-ocaml-pkg # Doesn't depend on ocaml
opam install ocaml.V.VV.V+variant
or