Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: OCamlPro/opam
base: 44320c2623
head fork: OCamlPro/opam
compare: 0.9.3
Checking mergeability… Don't worry, you can still create the pull request.
This comparison is big! We're only showing the most recent 250 commits
Commits on Jan 07, 2013
@tuong tuong [opam-repo-check] add an option to normalize the files (read only by …
@tuong tuong [opam-repo-check] we continue 5a1b838 6f6e0a5
@samoht samoht Improve the message displayed to the user when we reinstall packages.
Now OPAM display either:
* the root causes of the reinstall (ie. the package which caused the reinstallation)
* or the fact that the package has been modified upstream
@samoht samoht Fix a bad bug with wrong environment setting.
Sometime, it 'opam config env' hadn't been called in the current shell, some package build was failing miserably. This commit clean-up a lot of small things in the management of environements, so now 'opam install XXX' should always work even if the user has a wrong environment set-upt.
@tuong tuong [opam-repo-check] add an option to repair most of warnings found when…
… analyzing files
@samoht samoht Fix Makefile oldity 0e2c647
@samoht samoht 'opam export' and 'opam import' now takes -f to specify the filename.…
… In case no filename is given, import reads stdin and export uses stdout.
@samoht samoht Update CHANGES ae636d1
Commits on Jan 08, 2013
@tuong tuong Merge branch 'master' of f1df108
@tuong tuong Fix the number of jobs by default, see 419f416 . 45a3533
@samoht samoht Merge pull request #363 from tuong/master
Fix the number of jobs by default, see 419f416 .
@samoht samoht Improve debugging of solver inputs.
Now, we can use --dry-run to not install anything (ie. we just ask the solver) and --cudf=foo to generate foo-<n>.cudf containing the request for the n-th call to the (internal or external) solver.

This should fix #364
@samoht samoht Merge branch 'master' of 8b6f549
@samoht samoht Fix 'opam config env'
This is a regression introduced in e65ff1b which causes to display the full environment when doing 'opam config env' instead of just the bits modified by OPAM.

This should fix #365
@samoht samoht Fix CUDF preamble
This should fix #366
@samoht samoht Continue 7534903 (issue #365).
The unit-tests are passing again.
@samoht samoht Continue 396f0b5
Now we display the root cause for every action proposed by the solver. This should improve the user experience quite a bit ...
Commits on Jan 09, 2013
@samoht samoht Update CHANGES 701ebe7
@samoht samoht Clean-ups in the tests Makefile 7c9a86c
@samoht samoht Distinguish between packages explicitely installed by the user and th…
…e rest.

This let us uninstall unecessary packages when one root package is uninstalled.

Also, try to give some explanations when deleting packages as well.
@samoht samoht Improve the root cause analysis of OPAM actions. 1ca631f
@samoht samoht Clean-ups: OPAM now compiles with -warning-error A -w +A-4-9 19de888
@samoht samoht Init ~/.opam/<switch>/installed.user with the initial packages (it wa…
…s working before, because is that file is empty, then OPAM copies the content of ~/.opam/<switch>/installed).
@samoht samoht Initialize installed.user when switching and importing packages ff8a568
@samoht samoht Code refactoring: change installed.user -> installed.roots
No semantic changes
@samoht samoht Update CHANGES 007df0a
@samoht samoht Add --installed and --short options to 'opam switch list'
The --installed option only display the currently installed compiler switches.
The --short option make OPAM display the list of available 'opam switch' target (ie. available compiler + installed switches) on one line, separated by spaces.

This should fix #371
@samoht samoht Fix the documentation for --short (as it can be used with 'opam switc…
…h list' as well now)
@tuong tuong Fix the non-termination of OPAM when sometimes we install an arbitrar…
…y package, see 006293e .
@samoht samoht Merge pull request #372 from tuong/master
Fix the non-termination of OPAM when sometimes we install an arbitrary package, see 006293e .
@samoht samoht Improvement to the solver heuristics:
* Reduce the size of the state space explored by the brute-force heuristics.
* Minimize the actions perfomed by OPAM to only the one explicitely required by the user.

This should fix #323 (or at least greatly improve similar situations).
@samoht samoht Merge branch 'master' of 8b7e627
@samoht samoht Update CHANGES 6e81524
Commits on Jan 10, 2013
@tuong tuong we continue 7fcfe9c 92c8d85
@samoht samoht Merge pull request #374 from tuong/master
we continue 7fcfe9c
@samoht samoht Clean-ups in the tests:
* the build scripts now fail properly on build error
* the final test to check wgether compiler env variables works is more robust
@samoht samoht Really fix #349 and #262
We really need to use files here, as the parent will not consider running childs and will only look for their termination before eventually reading the marshaled error. If we use a normal pipe, this could easily to lead to dead-locks, as pointed out by @tuong.

This fix re-add the initial temporary file (but this time, they are simply in ~/.opam/logs and really unique).

So this commit partially revert 92c8d85, 7fcfe9c and 006293e. Partially because it keeps the good idea of truncating the output in case either stderr or stdout are too long.

So this commit greatly improve the user experience when there is a compilatin error. The location of full logs is showed in case the truncated lines are not enough to solve the problem.
@samoht samoht Add a --fake option.
Using this mode, OPAM will work in a simulation mode where all the build/install will be simulated.  This will *greatly* help debugging weird solver behavior (if any).

BEWARE: do not mix --fake commands with normal commands within the same compiler switch: this will definitely corrupt the state of OPAM. So use this wonderful option with care :-)
@samoht samoht Update CHANGES c52d652
Commits on Jan 11, 2013
@cago cago Update completion script for zsh 8321696
@cago cago Merge branch 'master' of dfe666b
@cago cago Update the way to get the list of sub-commands 4a23fbf
@samoht samoht Merge pull request #379 from cago/master
Update completion script for zsh
@samoht samoht Register all the printers in one place (eg. in OpamSystem) effa6cc
@samoht samoht Improve the output of opam-mk-error on error.
This should help debugging #378
@samoht samoht Do not use spawn a shell to do redirect when creating index.tar.gz. A…
…pparently it can fail on some system and tar simply accepts an output file as argument.

This should fix #378
@samoht samoht Merge branch 'master' of 8784502
@samoht samoht Fix typo. This should really fix #378 7b1936b
@samoht samoht Improvements to opam-mk-repo.
* Warn when skipping non-existant packages.
* Do nothing if the user has provided no valid packages.
* Be more robust when trying to create index.tar.gz or urls.txt in empty repositories (ie. do nothing in this case).
@samoht samoht Add the build flags to 'opam import' a83b7a7
@samoht samoht Import/export the root packages as well. 0691322
@samoht samoht 'opam remove' should behave nicely when using with --fake ac97eaa
@samoht samoht Installed packages are always available.
This means that you can remove a repository and continue to use the packages normally as long as they are installed. Once uninstalled (because of upgrade/remove), then they will disapear.

This should fix #309
@samoht samoht Refactoring, no semantic changes 0d418eb
@samoht samoht Fix 'opam remove' solver request.
* Manually the packages depending on the ones we want to remove
* keep the same version for the transitve closure of soft-dependencies of installed roots
* and call the solver which will delete all the remaining non-root packages
@samoht samoht 'opam init' now accepts --fake (ie. to fake the installation of base …
@samoht samoht When using the external solver, also display the command used to call…
… the solver at the first line of the generated CUDF file (if using --cudf option)
@samoht samoht Display a line on the CUDF file to say when we use the internal solver 4884e5e
@samoht samoht Display a message when using --dry-run 6fe8698
@samoht samoht By default, use the 'paranoid' strategy when an external solver is av…

If you want to tweak the stategy used, change OPAMCRITERIA (for instance OPAMCRITERIA=-new,-remove), see /usr/bin/aspcud for available options (the package is available under debian in apt-cudf.
@samoht samoht Test. Do not pollute OPAM root with the export file. c40b9fb
@samoht samoht Add a success message when the test is successful (sorry @altgr no co…
@samoht samoht Clean up log files when the command is a success, and do not polute t…
…he root of OPAM (ie. everything goes into ~/.opam/log or ~/.opam/<switch>/build/<package>/)
@samoht samoht Improve error messages in OpamSystem 52ff3b5
@samoht samoht On upgrade, if we recompile packages because of upstream changes (whi…
…ch is typically the case when we use dev packages), remember which packages successfuly build and install to not have to handle them again on the next upgdrade.

This was working well when we were upgrading because of new packages, so now the behavior is much more consistent.
@samoht samoht Always create a new archive from 'git -tar' when using dev packages, …
…this is much more robust (and it not much slower anyway).
@samoht samoht Add consistency checks when using 'opam pin'.
This will make the semantics easier to understand (but one could still use --force to bypass the checks).

This should fix #384
@samoht samoht On startup check that repository state are consistent and try to fix …
…eventual issues.

This could be extended later by adding more consistency checks.
@samoht samoht Improve again the output in case of errors. f2f01f2
@samoht samoht Improve output of 'opam info' when the description is short (ie. only…
… one line).
@samoht samoht Improve the pin consistency checks, and consider that the pinned pack…
…age is the one with max-version. I guess it would be better to give the option to the user to choose which is the corresponding version but no hurry.
@samoht samoht Fix-up 'up-to-date' messages on 'opam update'. 6ed456a
@samoht samoht Better message when the version of OPAM is not up-to-date.
It's maybe a bit harsh to beg the user to upgrade on every opam invocation, but I guess we could improve that with 1.0.0.

This should fix #382
@samoht samoht Register some global statistics. Use OPAMSTATS=1 to activate. e374647
@samoht samoht Fix 'opam pin --force' 5580784
Commits on Jan 12, 2013
@samoht samoht Improve opam-mk-repo message when it fixes a checksum 2bd42db
@samoht samoht Filename.get_temp_dir_name does not exists in OCaml 3.12.1
This should fix #386
Commits on Jan 13, 2013
Mehdi Dogguy Pcre was renamed into Re_pcre 544a04f
@samoht samoht Add a patch to make dose use the new re.pcre API instead of pcre-ocaml.
This is not activated yet as need to wait for upstream changes and #387.
@tuong tuong we continue 995cea3
The fix-point is really really 1 step now.
@samoht samoht Merge pull request #388 from tuong/master
we continue 995cea3
Commits on Jan 14, 2013
@samoht samoht Display a warning if one of the base package is not installed 97aa1f2
@samoht samoht More stats 72547f1
@chambart chambart When an external solver is available, make a correct request for it. 45479fd
@samoht samoht Fix update of compiler description on 'opam update'. 4d9415d
@samoht samoht Merge branch 'master' of 9e45f6a
@samoht samoht Merge pull request #389 from chambart/master
Format the install request build in opamClient so that an external cudf solver can solve it correctly
@samoht samoht Fix initialization.
Check the consistency of base-package only when we switch.

This should fix #390
@samoht samoht Merge branch 'master' of 8d306e1
Commits on Jan 15, 2013
@samoht samoht Update to ocaml-re 1.2.0
This is related to #387
@samoht samoht Merge pull request #387 from mehdid/master
Pcre was renamed into Re_pcre
@samoht samoht Merge branch 'master' of 20abd32
@samoht samoht Fix end-of-line warning with OpamVersion 8cd4718
@samoht samoht Fix to make the new ocaml-re compile 366a87c
@samoht samoht Update dose patch for the new ocaml-re c1c6c03
@samoht samoht Update CHANGES 972415e
@samoht samoht Bump version number b644f1f
@avsm avsm improve the main help text 5581e09
@samoht samoht Merge pull request #392 from avsm/master
improve help text
@samoht samoht Bump trunk version to 0.9.2 67f5cba
@samoht samoht Merge branch 'master' of 39f3e12
@samoht samoht Fix 'opam-mk-repo -a' 43e1a71
@samoht samoht Look for opam-lib to check if OPAM is up-to-date and do no ask the us…
…er if he really wants to continue as it's a bit annoying.
@samoht samoht Update CHANGES 2e87e9c
@samoht samoht Do not remove log file of a command with an error. 5fc7387
@samoht samoht Fix 'opam-mk-repo --index' 418fa02
@samoht samoht Update CHANGES ad103a6
@samoht samoht Remove left-over pinned cache (this can happen sometimes when the pin…
…ned package failed to build).
@samoht samoht Update CHANGES 75c6e9b
@samoht samoht Be a bit less aggressive when caching the cache of pinned package. 951f0bd
@samoht samoht Fix previous commit ... this should work now. 5f213a6
@samoht samoht Be more robust when an installed package disapear. a7c39bb
@samoht samoht Fix 'opam help' to display the main help page.
This should fix #397 (thx to @dbuenzli)
@samoht samoht Fix typo 301c89e
@samoht samoht Update generated man pages a843bdf
@samoht samoht Update API docs f735b79
@samoht samoht 'opam update <pinned-package>' works.
This should fix #396 (which is quite annoying when you don't have network access)
@samoht samoht Update CHANGES 120d6d8
Commits on Jan 17, 2013
@samoht samoht Add a binary auto-install script (thx to @lefessan) d73a2c0
@samoht samoht Expose a function to check whether a command is available in the envi…
@samoht samoht Make a bit more user friendly when you don't care abo…
…ut log files.
@samoht samoht Support for opam-<cmd>
when running 'opam foo -x -y', if 'opam-foo' is in the PATH then, OPAM will call 'opam-foo -x -y'.
remark: it's not possible to overwrite default commands.
@samoht samoht Update CHANGES af219d7
@samoht samoht Remove debug printf statement 1f168b3
@samoht samoht -s is --switch and --short; get ride of it for --switch and use -w 2c99fbc
Commits on Jan 21, 2013
@samoht samoht Prevent opam-mk-repo for deleting tmp/ and log/ subdirs if these dire…
…ctories already exist.

This is quite a bad bug and should fix #403
@samoht samoht Fix typo (thx to @smondet) 2e86058
Commits on Jan 22, 2013
@samoht samoht Fix 'opam pin <package> none' 2a12c4b
@hypatian hypatian Modified to fall back to copy if link is not supported. 7a1cfa8
@samoht samoht Merge pull request #410 from hypatian/master
Modify to fall back to copy if link is not supported
@samoht samoht Fix using pipe for 'opam switch import/export' ea3d41a
@samoht samoht Merge branch 'master' of 6203f1d
@samoht samoht Fix lexer line location fbc0058
@samoht samoht Make OPAM more robust to syntax errors in opam files 7692a49
@samoht samoht Improve lexing/parsing error messages 5022b55
@samoht samoht Do not call load_state before installing a package: this has a side-e…
…ffect to delete the temp dirs associated to uninstalled package, so this breaks initial installation of devel and pinned packages (which are reinstalled from scratch on the first update).
@samoht samoht Specify the call-site when using load_state. 8300286
@samoht samoht Use curl --insecure when bootstraping OPAM
This should fix #408
@samoht samoht Add a 'short' option to display repositories
'opam repo -s' now displays a compact list of repositories (which could be used by opam update)
@samoht samoht Really add the list of pinned packages to 'opam repo -s'
This should help writing auto-completion scripts (see #375)
Commits on Jan 23, 2013
@samoht samoht Speed-up the 'opam config env' command.
This should fix #412
@samoht samoht Speed-up file access by not using lseek
This is related to performance improvments mentionned in #412
Commits on Jan 24, 2013
@avsm avsm clean out the source directory before building fresh version 40f0302
@samoht samoht Merge pull request #413 from avsm/master
jenkins fix
Commits on Jan 25, 2013
@samoht samoht Fix 'opam repo remove <pkg>' 4545e69
@samoht samoht Update CHANGES 34a7a97
@samoht samoht Clean-up left-over repositories when creating new ones with the same …
@samoht samoht remote => repository API change 90a67b5
@samoht samoht Merge branch 'master' of e45c0be
Commits on Jan 27, 2013
@samoht samoht Install all the API libraries 57bb526
@samoht samoht Update CHANGES 89204a8
Commits on Jan 28, 2013
@samoht samoht Use a 'patch' command which should work on BSD 751b4ea
@samoht samoht Do not clean tmp files in repository caches if there exists at least …
…a compiler having the package installed.
@samoht samoht Do not check the consistency on every state load, as this can be wron…
…g in some cases (ie. for instance, when the global lock is taken).

Previously, having a long-running 'opam install <foo>' command in one term and an 'opam list' in an other will break in an horrible way as the 'opam list' consistency check will remove the eventual tmp dirs created by 'opam install <foo>'

This is fixed by doing global consistency check only when we have the global lock (ie. when we know that no other operation can be done concurrently) and switch consistency checks when we have the right switch lock.
@samoht samoht Add implicit env variables when building packages.
@samoht samoht Fix 'make install' target (regression introduced by 57bb526) eb581e1
@samoht samoht Fix broken `opam config env` (introduced by 7551244)
CAML_LIBRARY_PATH and custom compiler variables were not displayed properly.

This should fix #417
Commits on Jan 29, 2013
@samoht samoht 'opam config var' needs an argument
Fix #418
@samoht samoht Add "root" to the list of implicit variables.
This should fix #419
@samoht samoht Refactor some API bits and improve the error displayed to the user wh…
…en using 'opam repository <COMMAND>s'
@samoht samoht fix application of patches for BSD. This should fix #414 3d91f03
Commits on Jan 30, 2013
@samoht samoht Fix stupid typo which was breaking patch application. 288be03
@samoht samoht Small fixes to improve error recovery:
* when the extract phase is failing, recover from errors (this should fix #402)
* when the user do CTRL-C let the child clean-up properly
@samoht samoht Do not display scarry backtrace on 'normal' exits 5236688
@samoht samoht Fix unit-tests b4ceb3e
@samoht samoht Fix jenkins init f811688
@samoht samoht Update jenkins 83a6b20
@samoht samoht cd src_ext && make distclean should work even if ./configure has not run 36d6900
@samoht samoht Really fix the jenkins init script (at least) b40720e
@samoht samoht Remove duplicated code 58877cb
@samoht samoht Make compiler updates more robust 6c6a8d2
Commits on Feb 01, 2013
@samoht samoht Improvement to the solver heuristics
This should fix #415
@samoht samoht Bump trunk version number 1b46b99
@samoht samoht Revert version bump 5f104d8
@samoht samoht Fix solver exn 3fb1a97
@samoht samoht Bump version again 60dc8ae
Commits on Feb 03, 2013
@samoht samoht Marshal the list of packages and descriptions on each update in order…
… to speed-up opam invocations.
@samoht samoht Fix 'opam update' when a package suddendly become unavailable d6827fc
Commits on Feb 04, 2013
@oandrieu oandrieu check for camlp4 presence and version in configure
fixes issue #431
@samoht samoht Do not remove the lock when it has not been locked 55420a8
@samoht samoht Merge branch 'issue/431' of git:// 7d522fa
@samoht samoht Update generated configure file ea7b252
@avsm avsm autoconf: More helpful error message to indicate how to possibly fix …
…the camlp4 missing problem
@avsm avsm remove caml4boot from the test, as its not used and sometimes (on Deb…
…ian?) not installed.
@avsm avsm regenerate autoconf from 1465af9 b90ba46
@samoht samoht Merge pull request #433 from avsm/master
autoconf fixes for 3.12.1
@samoht samoht Expose Cudf.string_of_packages ed692c7
@samoht samoht Fix the solver when newer packages have bigger deps than old ones. 7017548
@samoht samoht Update CHANGES f90c18e
@samoht samoht Merge branch 'master' of 5ce274b
@samoht samoht Remove unused variable 10cec9f
@oandrieu oandrieu truncate `opam list' output w.r.t. the size of the current terminal
Terminal size is determined using the `tput' or `stty' external commands.
No truncation when stdout is not a terminal (ie redirected to a file).
@samoht samoht Merge pull request #436 from oandrieu/truncate-terminal-output
truncate `opam list` output w.r.t. the size of the current terminal
Commits on Feb 05, 2013
@samoht samoht Fix embarrasing #439 4f6495d
@samoht samoht Fix typo c29509a
@samoht samoht Remove duplicated message about cached metadata on 'opam init'. c8ea767
@samoht samoht Speed-up 'opam update'. 213e168
@samoht samoht Add a better error message in case of cyclic dependencies.
This should help debugging issues like #438
@samoht samoht Fix a nasty bug in the solver with possible cyclic dependencies (this…
… should fix #438)
@samoht samoht More generic fix to #438 ec2f8b7
@samoht samoht Again a more generic fix for #438
1/ we discard packages with cyclic dependencies
2/ we only keep the package P_k (name = P, version = k) iff reverse-deps(P_k) = U reverse-deps(P_j) for all other version j of P.
Commits on Feb 06, 2013
@samoht samoht Improve messages on update 380af12
@samoht samoht Improve the detection of cyclic dependencies.
This should improve 932e6b8
@samoht samoht Better error messages when something goes wrong in OpamFilename 0ad722a
@samoht samoht copy_dir actually does something different than its name could let th…
…ink of: rename into copy_unique_dir and add a real copy_dir function
@samoht samoht Fix #440 6239c1c
@samoht samoht Update CHANGES b857ef8
@samoht samoht Fix #435
For pinned packages, 'opam reinstall <pkg>` is now a shortcut to 'opam upgrade <pkg> && opam update <pkg>`.
@samoht samoht Fix unit-tests.
The cache handling is quite sensitive to change, need to put some big flashing warning around this I guess ...
@samoht samoht Improving again the messages on 'opam update' deeddb3
@samoht samoht Add unit-test for complex os filters e68121e
@samoht samoht Fix parsing of complex os constraints 00c0dc7
@diml diml Fix OpamFormula.eval 967e20f
@samoht samoht Don't remove installed roots on upgrade ... b16b5a3
@samoht samoht Consistant naming of dependencies / reverse-dependencies 6746877
@samoht samoht Try to improve partial upgrade 25a1b71
@samoht samoht Merge pull request #442 from diml/master
Fix OpamFormula.eval
Commits on Feb 07, 2013
@avsm avsm update CHANGES to be more changelog friendly 687127b
@samoht samoht Fix <git-path>#<revision> scheme when the revision is a tag (it was o…
…nly working with SHA1 of commits).
@samoht samoht Merge pull request #444 from avsm/master
fix changes for ocl-reporter
@samoht samoht Fix #405
We now uninstall all the packages before starting the installation process.

This means that we must be very carefull when error arise, or the user will be let in a state where everything is broken. I think I found some bugs in the previous attempt to recover from errors, so we are now much more conservative (and hopefully safer). The rule now is:
* try to install most of the packages (ie. a package is installed if none of its dependencies have an error)
* on error, try to install the previous version of the package. If it's not possible, do nothing. Ideally, we should run the solver again to find a consistent solution without the eror package but I guess it's a bit overkill.
@samoht samoht Merge branch 'master' of 637394a
Commits on Feb 08, 2013
@samoht samoht Improve OpamAction API to make clearer when metadata is updated or not.
Improve the display of 'opam install' as well.
@avsm avsm typo in CHANGES 594b1db
@samoht samoht Merge pull request #445 from avsm/master
another typo in changes
Commits on Feb 12, 2013
@chambart chambart Update bash completion 971e3e9
@samoht samoht Merge pull request #453 from chambart/master
Update bash completion
@cago cago Update zsh completion script f846a3b
@samoht samoht Merge pull request #454 from cago/master
Update zsh completion
@avsm avsm update jenkins 4e06a52
@avsm avsm jenkins: libglade 169e102
@avsm avsm jenkins: lzo 3183162
Commits on Feb 13, 2013
@avsm avsm jenkins: milter 9f57fed
@samoht samoht Merge pull request #458 from avsm/master
jenkins update
@avsm avsm jenkins: manual libsrs install (deb missing from wheezy) f82e73a
@avsm avsm Merge branch 'master' of 4c67054
@samoht samoht Merge pull request #460 from avsm/master
jenkins: srs
@avsm avsm jenkins: oqamldebug 3adba84
@avsm avsm jenkins: spf e78742a
@samoht samoht Rebuild the metadata cache when adding/removing/changing the priority…
… of repositories.
@samoht samoht Do not fail badly if opam-lib is not in list of available packages. 6a54731
@samoht samoht Fix both #463 and #446
The error messages are now much clearer:
* in case of a dependency is not available due to compiler/OS constraints
* in case the request deals with non-existing package/version
@samoht samoht Merge pull request #462 from avsm/master
jenkins: oqamldebug
@samoht samoht Merge branch 'master' of b384ec6
@samoht samoht Fix #455
We now have a more precise OPAM and OS versions in error messages
@samoht samoht Fix infinite loop introduced in the last commit 28bc173
@samoht samoht Rename OpamGlobals.default_switch and OpamCompiler.default to system …
…(as this is the name of the string anyway).
@samoht samoht Add a way to specify system compiler constraints.
The syntax is:

ocaml-version: [ !system ]
ocaml-version: [ "3.12.1" || system ]

Fix #461
@samoht samoht Update CHANGES c898594
Commits on Feb 14, 2013
@samoht samoht Fix build (I've updated the .ml instead of the ...) 248e2d7