Commit 674aeb6e authored by Elias2049's avatar Elias2049
Browse files

fixing conflicts

parents 6e41e853 4e6863cb
...@@ -11,7 +11,7 @@ When you are beginning in a new programming language, it is sometimes helpful to ...@@ -11,7 +11,7 @@ When you are beginning in a new programming language, it is sometimes helpful to
Beware, these documents are drafts, that we plan to improve in the next months. In the meantime, feel free to tell us how we could improve them, what is missing, and where the focus should be ! Beware, these documents are drafts, that we plan to improve in the next months. In the meantime, feel free to tell us how we could improve them, what is missing, and where the focus should be !
- [The OCaml Language](https://www.ocamlpro.com/files/ocaml-lang.pdf) (June 8, 2011) - [The OCaml Language](https://ocamlpro.github.io/ocaml-cheat-sheets/ocaml-lang.pdf) (June 8, 2011)
- [OCaml Standard Tools](https://www.ocamlpro.com/files/ocaml-tools.pdf) (June 7, 2011) - [OCaml Standard Tools](https://ocamlpro.github.io/ocaml-cheat-sheets/ocaml-tools.pdf) (June 7, 2011)
- [OCaml Standard Library](https://www.ocamlpro.com/files/ocaml-stdlib.pdf) (June 7, 2011) - [OCaml Standard Library](https://ocamlpro.github.io/ocaml-cheat-sheets/ocaml-stdlib.pdf) (June 7, 2011)
- [OCaml Emacs Mode (Tuareg)](https://www.ocamlpro.com/files/tuareg-mode.pdf) (June 27, 2011) - [OCaml Emacs Mode (Tuareg)](https://ocamlpro.github.io/ocaml-cheat-sheets/tuareg-mode.pdf) (June 27, 2011)
...@@ -2,7 +2,7 @@ title=Beta Release of OPAM ...@@ -2,7 +2,7 @@ title=Beta Release of OPAM
authors=Louis Gesbert authors=Louis Gesbert
date=2013-01-17 date=2013-01-17
category=Tooling category=Tooling
tags=beta,release, tags=beta,release
OPAM is a source-based package manager for OCaml. It supports OPAM is a source-based package manager for OCaml. It supports
multiple simultaneous compiler installations, flexible package multiple simultaneous compiler installations, flexible package
...@@ -27,7 +27,7 @@ effort finally gave birth to OPAM! ...@@ -27,7 +27,7 @@ effort finally gave birth to OPAM!
### Installing OPAM ### Installing OPAM
OPAM packages are already available for homebrew, macports and OPAM packages are already available for homebrew, macports and
arch-linux. Debian and Ubuntu packages should be available quite soon. arch-linux. Debian and Ubuntu packages should be available quite soon.
In any cases, you can either use a [binary installer](https://ocamlpro.com/pub/opam_installer.sh) or simply install it from [sources](https://github.com/OCamlPro/opam/archive/0.9.1.tar.gz). To learn more about the installation process, read the [installation instructions](https://opam.ocamlpro.com/doc/Quick_Install.html). In any cases, you can either use a [binary installer](https://github.com/ocaml/opam/blob/master/shell/opam_installer.sh) or simply install it from [sources](https://github.com/OCamlPro/opam/archive/0.9.1.tar.gz). To learn more about the installation process, read the [installation instructions](https://opam.ocamlpro.com/doc/Quick_Install.html).
### Initializing OPAM ### Initializing OPAM
Once you’ve installed OPAM, you have to initialize it. OPAM will store all its state under `~/.opam`, Once you’ve installed OPAM, you have to initialize it. OPAM will store all its state under `~/.opam`,
......
...@@ -7,7 +7,7 @@ tags=opam ...@@ -7,7 +7,7 @@ tags=opam
I am *very* happy to announce the first official release of OPAM! I am *very* happy to announce the first official release of OPAM!
Many of you already know and use OPAM so I won't be long. Please read Many of you already know and use OPAM so I won't be long. Please read
[http://www.ocamlpro.com/blog/2013/01/17/opam-beta.html][opam-beta] for a [beta-release-of-opam][opam-beta] for a
longer description. longer description.
1.0.0 fixes many bugs and add few new features to the previously announced 1.0.0 fixes many bugs and add few new features to the previously announced
...@@ -25,10 +25,10 @@ files, use `opam init --no-setup`. If you trust the tool blindly, use ...@@ -25,10 +25,10 @@ files, use `opam init --no-setup`. If you trust the tool blindly, use
users), ~/.ocamlinit and ~/.opam/opam-init/*). users), ~/.ocamlinit and ~/.opam/opam-init/*).
Please report: Please report:
- Bug reports and feature requests for the OPAM tool: http://github.com/OCamlPro/opam/issues - Bug reports and feature requests for the OPAM tool: `https://github.com/OCamlPro/opam/issues`
- Packaging issues or requests for a new packages: http://github.com/OCamlPro/opam-repository/issues - Packaging issues or requests for a new packages: `https://github.com/OCamlPro/opam-repository/issues`
- General queries to: http://lists.ocaml.org/listinfo/platform - General queries to: `https://lists.ocaml.org/listinfo/platform`
- More specific queries about the internals of OPAM to: http://lists.ocaml.org/listinfo/opam-devel - More specific queries about the internals of OPAM to: `https://lists.ocaml.org/listinfo/opam-devel`
## Install ## ## Install ##
...@@ -40,7 +40,7 @@ installer is up-to-date for Linux and Darwin 64-bit architectures, the ...@@ -40,7 +40,7 @@ installer is up-to-date for Linux and Darwin 64-bit architectures, the
If you want to build from sources, the full archive (including dependencies) If you want to build from sources, the full archive (including dependencies)
is available here: is available here:
http://www.ocamlpro.com/pub/opam-full-latest.tar.gz `https://github.com/ocaml/opam/releases/tag/2.1.0`
### Upgrade ### ### Upgrade ###
...@@ -60,10 +60,10 @@ start again from scratch. ...@@ -60,10 +60,10 @@ start again from scratch.
Great success on github. Thanks everybody for the great contributions! Great success on github. Thanks everybody for the great contributions!
https://github.com/OCamlPro/opam: +2000 commits, 26 contributors `https://github.com/OCamlPro/opam`: +2000 commits, 26 contributors
https://github.com/OCamlPro/opam-repository: +1700 commits, 75 contributors, 370+ packages `https://github.com/OCamlPro/opam-repository`: +1700 commits, 75 contributors, 370+ packages
on http://opam.ocamlpro.com/ on `http://opam.ocamlpro.com/`
+400 unique visitor per week, 15k 'opam update' per week +400 unique visitor per week, 15k 'opam update' per week
+1300 unique visitor per month, 55k 'opam update' per month +1300 unique visitor per month, 55k 'opam update' per month
3815 unique visitor since the alpha release 3815 unique visitor since the alpha release
...@@ -131,4 +131,4 @@ The full change-log since the beta release in January: ...@@ -131,4 +131,4 @@ The full change-log since the beta release in January:
0.9.1 \[Jan 2013\] 0.9.1 \[Jan 2013\]
* Use ocaml-re 1.2.0 * Use ocaml-re 1.2.0
[opam-beta]: http://www.ocamlpro.com/blog/2013/01/17/opam-beta.html [opam-beta]: /blog/2013_01_17_beta_release_of_opam
...@@ -4,7 +4,7 @@ date=2013-03-18 ...@@ -4,7 +4,7 @@ date=2013-03-18
category=Tooling category=Tooling
tags=indentation,ocp-indent tags=indentation,ocp-indent
Since our last [activity report](https://ocamlpro.com/2013/02/18/an-overview-of-our-current-activities/) we have released the first stable versions of two projects: [OPAM](https://opam.ocamlpro.com/), an installation manager for OCaml source packages, and [ocp-indent](https://github.com/OCamlPro/ocp-indent), an indentation tool. Since our last [activity report](/blog/2013_02_18_overview_of_current_activities) we have released the first stable versions of two projects: [OPAM](https://opam.ocamlpro.com/), an installation manager for OCaml source packages, and [ocp-indent](https://github.com/OCamlPro/ocp-indent), an indentation tool.
We have already described the basics of OPAM in two precedent [blog](/blog/2013_01_17_beta_release_of_opam) [posts](/blog/2013_03_15_opam_1.0.0_released), so today we will focus on the release of `ocp-indent`. We have already described the basics of OPAM in two precedent [blog](/blog/2013_01_17_beta_release_of_opam) [posts](/blog/2013_03_15_opam_1.0.0_released), so today we will focus on the release of `ocp-indent`.
......
...@@ -17,7 +17,7 @@ Following the ideas he announced in his recent [blog post](http://ocamlpro.com/2 ...@@ -17,7 +17,7 @@ Following the ideas he announced in his recent [blog post](http://ocamlpro.com/2
We also continue to work on our profiling tool and start to separate the different parts of the project. We have [patched](https://github.com/cago/ocaml) the compiler and runtime, for both bytecode and native code, to generate : `.prof` files which contain the id-loc information and allow us to recover the location from the identifiers in the header of the block; and to dump a program heap in a file on demand or to monitor a running program without memory and performance overhead. [Çagdas Bozman](http://cagdas.bozman.fr/) has presented the work he has done so far regarding his PhD to members of the [Bware](http://bware.lri.fr/index.php/Presentation) project and we started to test our prototype on industrial use-cases using the [why3](http://why3.lri.fr/) platform. We also continue to work on our profiling tool and start to separate the different parts of the project. We have [patched](https://github.com/cago/ocaml) the compiler and runtime, for both bytecode and native code, to generate : `.prof` files which contain the id-loc information and allow us to recover the location from the identifiers in the header of the block; and to dump a program heap in a file on demand or to monitor a running program without memory and performance overhead. [Çagdas Bozman](http://cagdas.bozman.fr/) has presented the work he has done so far regarding his PhD to members of the [Bware](http://bware.lri.fr/index.php/Presentation) project and we started to test our prototype on industrial use-cases using the [why3](http://why3.lri.fr/) platform.
On the multi-core front, [Luca Saiu](http://ageinghacker.net/) is continuing his post-doc with [Fabrice le Fessant](http://fabrice.lefessant.net/) and is modifying the OCaml runtime to support parallel programming on multi-core computers. Their version of the “multi-runtime” OCaml provides a message-passing abstraction in which a running OCaml program is “split” into independent OCaml programs, one per thread (if possible running on its separate core) with a separate instance of the runtime library in order to reduce resource contention both at the software and at the hardware level. Luca is now debugging the support for OCaml multi-threading running on top of a multi-context parallel program. A recent presentation covering this work and its challenges is available [online](http://ocamlpro.com/pub/multi-runtime.pdf). On the multi-core front, [Luca Saiu](http://ageinghacker.net/) is continuing his post-doc with [Fabrice le Fessant](http://fabrice.lefessant.net/) and is modifying the OCaml runtime to support parallel programming on multi-core computers. Their version of the “multi-runtime” OCaml provides a message-passing abstraction in which a running OCaml program is “split” into independent OCaml programs, one per thread (if possible running on its separate core) with a separate instance of the runtime library in order to reduce resource contention both at the software and at the hardware level. Luca is now debugging the support for OCaml multi-threading running on top of a multi-context parallel program. A recent presentation covering this work and its challenges is available [online](http://ageinghacker.net/talks/ocaml-multiruntime-presentation.pdf).
A new intern from [ENS Cachan](http://www.ens-cachan.fr/), [Thomas Blanc](https://github.com/thomasblanc) is working on a whole program analysis system. His internship’s final goal is to provide a good hint of exceptions that may be left uncaught by the program, resulting a failure. It is quite interesting as exceptions are pretty much the part of the program “hard to foresee”. The main difficulty comes from higher-order functions (like `List.iter`). Because of them, a simple local analysis becomes impossible. So the first task is to take the whole program in the form of separated `.cmt` files, [merge](https://github.com/thomasblanc/ocaml-typedtree-mapper) it, and remove every higher-order functions (either by direct inlining if possible or by a very big pattern matching). The merging as already been done through a deep browsing of the compiler’s typedtrees. Thomas is now focusing in reordering the code so that higher-order functions can be safely removed. A new intern from [ENS Cachan](http://www.ens-cachan.fr/), [Thomas Blanc](https://github.com/thomasblanc) is working on a whole program analysis system. His internship’s final goal is to provide a good hint of exceptions that may be left uncaught by the program, resulting a failure. It is quite interesting as exceptions are pretty much the part of the program “hard to foresee”. The main difficulty comes from higher-order functions (like `List.iter`). Because of them, a simple local analysis becomes impossible. So the first task is to take the whole program in the form of separated `.cmt` files, [merge](https://github.com/thomasblanc/ocaml-typedtree-mapper) it, and remove every higher-order functions (either by direct inlining if possible or by a very big pattern matching). The merging as already been done through a deep browsing of the compiler’s typedtrees. Thomas is now focusing in reordering the code so that higher-order functions can be safely removed.
......
...@@ -8,7 +8,7 @@ Here is a short report on the different projects we have been working on in Augu ...@@ -8,7 +8,7 @@ Here is a short report on the different projects we have been working on in Augu
### News from OCamlPro ### News from OCamlPro
#### Compiler Optimizations #### Compiler Optimizations
After our reports on [better inlining](https://ocamlpro.com/2013/07/11/better-inlining-progress-report/) After our reports on [better inlining](/blog/2013_07_11_better_inlining_progress_report)
have raised big expectations, we have been working hard on fixing the have raised big expectations, we have been working hard on fixing the
few remaining bugs. An enhanced alias/constant analysis was added, to few remaining bugs. An enhanced alias/constant analysis was added, to
provide the information needed to lift some constraints on the provide the information needed to lift some constraints on the
......
...@@ -31,7 +31,7 @@ underline our committment to OPAM, we are rehousing it at ...@@ -31,7 +31,7 @@ underline our committment to OPAM, we are rehousing it at
where 85 people are commenting on the thread). where 85 people are commenting on the thread).
The binary installer has been updated for OSX and x86_64: The binary installer has been updated for OSX and x86_64:
- http://www.ocamlpro.com/pub/opam_installer.sh - `https://github.com/ocaml/opam/blob/master/shell/opam_installer.sh`
You can also get the new version either from Anil's unstable PPA: You can also get the new version either from Anil's unstable PPA:
add-apt-repository ppa:avsm/ppa-testing add-apt-repository ppa:avsm/ppa-testing
...@@ -39,8 +39,7 @@ You can also get the new version either from Anil's unstable PPA: ...@@ -39,8 +39,7 @@ You can also get the new version either from Anil's unstable PPA:
sudo apt-get install opam sudo apt-get install opam
or build it from sources at : or build it from sources at :
- http://www.ocamlpro.com/pub/opam-full-1.1.0-beta.tar.gz - `https://github.com/OCamlPro/opam/releases/tag/1.1.0-beta`
- https://github.com/OCamlPro/opam/releases/tag/1.1.0-beta
NOTE: If you upgrade from OPAM 1.0, the first time you will run the NOTE: If you upgrade from OPAM 1.0, the first time you will run the
new `opam` binary it will upgrade its internal state in an incompatible new `opam` binary it will upgrade its internal state in an incompatible
...@@ -49,7 +48,7 @@ process fault-resistant, but failures might happen. In case you have ...@@ -49,7 +48,7 @@ process fault-resistant, but failures might happen. In case you have
precious data in your `~/.opam` folder, it is advised to **backup that precious data in your `~/.opam` folder, it is advised to **backup that
folder before you upgrade to 1.1**. folder before you upgrade to 1.1**.
[1]: http://www.ocamlpro.com/blog/2013/03/14/opam-1.0.0.html [1]: /blog/2013_03_15_opam_1.0.0_released
[2]: https://github.com/OCamlPro/opam/issues?milestone=17&page=1&state=closed [2]: https://github.com/OCamlPro/opam/issues?milestone=17&page=1&state=closed
[3]: https://github.com/vouillon/opam-android-repository [3]: https://github.com/vouillon/opam-android-repository
[4]: https://github.com/vouillon/opam-windows-repository [4]: https://github.com/vouillon/opam-windows-repository
......
...@@ -35,16 +35,18 @@ resistant, but failures might happen. In case you have precious data in your ...@@ -35,16 +35,18 @@ resistant, but failures might happen. In case you have precious data in your
### Installing ### Installing
Using the binary installer: Using the binary installer:
- download and run http://www.ocamlpro.com/pub/opam_installer.sh - download and run `https://github.com/ocaml/opam/blob/master/shell/opam_installer.sh`
You can also get the new version either from Anil's unstable PPA: You can also get the new version either from Anil's unstable PPA:
add-apt-repository ppa:avsm/ppa-testing
apt-get update ```shell-session
sudo apt-get install opam add-apt-repository ppa:avsm/ppa-testing
apt-get update
sudo apt-get install opam
```
or build it from sources at : or build it from sources at :
- http://www.ocamlpro.com/pub/opam-full-1.1.0.tar.gz - `https://github.com/OCamlPro/opam/releases/tag/1.1.0-RC`
- https://github.com/OCamlPro/opam/releases/tag/1.1.0-RC
### Changes ### Changes
......
...@@ -26,7 +26,7 @@ September. Another talk, [Ocamlot: OCaml Online Testing](https://ocaml.org/meeti ...@@ -26,7 +26,7 @@ September. Another talk, [Ocamlot: OCaml Online Testing](https://ocaml.org/meeti
presented how sets of packages will now be automatically tested, to presented how sets of packages will now be automatically tested, to
give immediate feedback to contributors, and an evaluation of packages give immediate feedback to contributors, and an evaluation of packages
quality to users. quality to users.
- Pierre presented his work on [Improving OCaml high level optimisations](https://ocaml.org/meetings/ocaml/2013/slides/chambart.pdf) that he also presented in a recent [blog post](https://ocamlpro.com/2013/05/24/optimisations-you-shouldnt-do/). - Pierre presented his work on [Improving OCaml high level optimisations](https://ocaml.org/meetings/ocaml/2013/slides/chambart.pdf) that he also presented in a recent [blog post](/blog/2013_05_24_optimisations_you_shouldnt_do).
- Grégoire presented his work with Jacques Garrigue on [Runtime types in OCaml](https://ocaml.org/meetings/ocaml/2013/proposals/runtime-types.pdf). - Grégoire presented his work with Jacques Garrigue on [Runtime types in OCaml](https://ocaml.org/meetings/ocaml/2013/proposals/runtime-types.pdf).
In particular, he showed how abstraction is hard to deal with, as there In particular, he showed how abstraction is hard to deal with, as there
is a dilemma between the ability to write powerful polytipic functions is a dilemma between the ability to write powerful polytipic functions
...@@ -84,7 +84,7 @@ of Alt-Ergo. In addition, we started the integration of a new SAT-solver ...@@ -84,7 +84,7 @@ of Alt-Ergo. In addition, we started the integration of a new SAT-solver
based on miniSAT (implemented as a plug-in) and the development of a based on miniSAT (implemented as a plug-in) and the development of a
new tool, called Ctrl-Alt-Ergo, that automates the most interesting new tool, called Ctrl-Alt-Ergo, that automates the most interesting
strategies of Alt-Ergo. The experiments we made during October are very strategies of Alt-Ergo. The experiments we made during October are very
encouraging as shown by [our previous blog post](https://ocamlpro.com/2013/10/02/alt-ergo-ocamlpro-two-months-later/). encouraging as shown by [our previous blog post](/blog/2013_10_02_alt_ergo_ocamlpro_two_months_later).
#### Multi-runtime #### Multi-runtime
Luca Saiu completed his work at Inria and on the multi-runtime Luca Saiu completed his work at Inria and on the multi-runtime
......
...@@ -31,7 +31,7 @@ resistant, but failures might happen. In case you have precious data in your ...@@ -31,7 +31,7 @@ resistant, but failures might happen. In case you have precious data in your
to 1.1.0**. to 1.1.0**.
Using the binary installer: Using the binary installer:
- download and run http://www.ocamlpro.com/pub/opam_installer.sh - download and run `https://github.com/ocaml/opam/blob/master/shell/opam_installer.sh`
Using the .deb packages from Anil's PPA (binaries are [currently syncing][1]): Using the .deb packages from Anil's PPA (binaries are [currently syncing][1]):
add-apt-repository ppa:avsm/ppa add-apt-repository ppa:avsm/ppa
...@@ -41,8 +41,7 @@ Using the .deb packages from Anil's PPA (binaries are [currently syncing][1]): ...@@ -41,8 +41,7 @@ Using the .deb packages from Anil's PPA (binaries are [currently syncing][1]):
For OSX users, the homebrew package will be updated shortly. For OSX users, the homebrew package will be updated shortly.
or build it from sources at : or build it from sources at :
- http://www.ocamlpro.com/pub/opam-full-1.1.0.tar.gz - `https://github.com/ocaml/opam/releases/tag/1.1.0`
- https://github.com/ocaml/opam/releases/tag/1.1.0
## For those who haven't been paying attention ## ## For those who haven't been paying attention ##
...@@ -78,7 +77,8 @@ Also, we have integrated the main package repository with Travis, which will ...@@ -78,7 +77,8 @@ Also, we have integrated the main package repository with Travis, which will
help us to improve the quality of contributions (see [Anil's post][2]). help us to improve the quality of contributions (see [Anil's post][2]).
[opam.ocaml.org]: https://opam.ocaml.org [opam.ocaml.org]: https://opam.ocaml.org
[opam.ocamlpro.com]: http://opam.ocamlpro.com [opam.ocamlpro.com]: https://opam.ocamlpro.com
[repo]: http://github.com/ocaml/opam-repository [repo]: https://github.com/ocaml/opam-repository
[1]: https://launchpad.net/~avsm/+archive/ppa/+builds?build_state=pending [1]: https://launchpad.net/~avsm/+archive/ppa/+builds?build_state=pending
[2]: http://anil.recoil.org/2013/09/30/travis-and-ocaml.html [2]: https://anil.recoil.org/2013/09/30/travis-and-ocaml.html
...@@ -18,7 +18,7 @@ Last month, we presented an [online service](https://cudf-solvers.irill.org/) fo ...@@ -18,7 +18,7 @@ Last month, we presented an [online service](https://cudf-solvers.irill.org/) fo
This month, we are happy to introduce a new service, that we helped them put online: the [OPAM Weather Service](https://ows.irill.org/), an instantiation for OPAM of a [service](https://qa.debian.org/dose/debcheck.html) they also provide for Debian. It shows the evolution of the installability of all packages in the official OPAM repository, for [three stable versions](https://ows.irill.org/table.html) of OCaml (3.12.1, 4.00.1 and 4.01.0). It should help maintainers track dependency problems with their packages, when old packages are removed or new conflicting dependencies are introduced. This month, we are happy to introduce a new service, that we helped them put online: the [OPAM Weather Service](https://ows.irill.org/), an instantiation for OPAM of a [service](https://qa.debian.org/dose/debcheck.html) they also provide for Debian. It shows the evolution of the installability of all packages in the official OPAM repository, for [three stable versions](https://ows.irill.org/table.html) of OCaml (3.12.1, 4.00.1 and 4.01.0). It should help maintainers track dependency problems with their packages, when old packages are removed or new conflicting dependencies are introduced.
### An Internship on OCaml Namespaces ### An Internship on OCaml Namespaces
This month, we welcomed Pierrick Couderc for an internship in our lab. He is going to work on adding namespaces to OCaml. His goal is to design a kind of namespaces that extend the current module mechanism in a consistent but powerful way. One challenge of his job will be to make these namespaces also extend our [big functors](https://ocamlpro.com/2011/08/10/packing-and-functors/) to provide functors at the namespace level. This month, we welcomed Pierrick Couderc for an internship in our lab. He is going to work on adding namespaces to OCaml. His goal is to design a kind of namespaces that extend the current module mechanism in a consistent but powerful way. One challenge of his job will be to make these namespaces also extend our [big functors](/blog/2011_08_10_packing_and_functors) to provide functors at the namespace level.
Pierrick is not a complete newcomer in our team: last year, he already worked for us with David Maison (now working at TrustInSoft) on an online service to [edit and compile](https://edit.ocamlpro.com/) OCaml code for students. Pierrick is not a complete newcomer in our team: last year, he already worked for us with David Maison (now working at TrustInSoft) on an online service to [edit and compile](https://edit.ocamlpro.com/) OCaml code for students.
......
...@@ -31,7 +31,7 @@ The HTML interface is made of four panels: ...@@ -31,7 +31,7 @@ The HTML interface is made of four panels:
Let us see how "Try Alt-Ergo" works on a formula translated from Atelier-B in the context of the BWare project: Let us see how "Try Alt-Ergo" works on a formula translated from Atelier-B in the context of the BWare project:
- First, open [Try Alt-Ergo](https://alt-ergo.ocamlpro.com/try.php) in a new tab/window. - First, open [Try Alt-Ergo](https://alt-ergo.ocamlpro.com/try.php) in a new tab/window.
- Download the formula [try-alt-ergo.why](https://ocamlpro.com//files/try-alt-ergo.why). This formula contains 177 quantified axioms and 132 predicates. - Download the formula [try-alt-ergo.why](https://www.ocamlpro.com/files/try-alt-ergo.why). This formula contains 177 quantified axioms and 132 predicates.
- Click on the "Load a Local File" button of Try alt-ergo's interface and load the example into the left panel. - Click on the "Load a Local File" button of Try alt-ergo's interface and load the example into the left panel.
- Go to "Options" panel and set the `maximum number of steps` to 1000, the `maximum number of triggers` to 1, and deactivate `E-matching` - Go to "Options" panel and set the `maximum number of steps` to 1000, the `maximum number of triggers` to 1, and deactivate `E-matching`
- Click on "Ask Alt-Ergo" button and wait approximately 60 seconds (depending on your computer). On my laptop, Alt-Ergo given the following answer after, approximately, 40 seconds. - Click on "Ask Alt-Ergo" button and wait approximately 60 seconds (depending on your computer). On my laptop, Alt-Ergo given the following answer after, approximately, 40 seconds.
......
...@@ -16,14 +16,14 @@ We participated in the first OCaml hacking session in Paris organized by Thomas ...@@ -16,14 +16,14 @@ We participated in the first OCaml hacking session in Paris organized by Thomas
It was the first event of this kind for the OCaml Users in Paris ([OUPS](https://www.meetup.com/ocaml-paris/)) meetup group. It was a success since everybody enjoyed it and some work has actually been achieved. We'll have to wait for the next one to confirm that ! It was the first event of this kind for the OCaml Users in Paris ([OUPS](https://www.meetup.com/ocaml-paris/)) meetup group. It was a success since everybody enjoyed it and some work has actually been achieved. We'll have to wait for the next one to confirm that !
On our front, Fabrice started working (with others) on a good, consensual Emacs profile; Pierre worked on building cross-compilers using Makefile templates; Benjamin wanted to evaluate the feasibility of handling ppx extension nodes correctly inside Emacs, and it turns out that elisp tools exist for the task! You can see a first experiment running in the following screen capture, or even [try the code](https://ocamlpro.com//files/tuareg-mode-with-ppx.el) (just open it in emacs, do a `M-x eval-buffer` on it and then a `M-x tuareg-mode-with-ppx` on an OCaml file). But beware, it's not yet very mainstream and can make your Emacs crash. On our front, Fabrice started working (with others) on a good, consensual Emacs profile; Pierre worked on building cross-compilers using Makefile templates; Benjamin wanted to evaluate the feasibility of handling ppx extension nodes correctly inside Emacs, and it turns out that elisp tools exist for the task! You can see a first experiment running in the following screen capture, or even [try the code](https://files.ocamlpro.com/files/tuareg-mode-with-ppx.el) (just open it in emacs, do a `M-x eval-buffer` on it and then a `M-x tuareg-mode-with-ppx` on an OCaml file). But beware, it's not yet very mainstream and can make your Emacs crash.
![polymode-tuareg.png](/blog/assets/img/screenshot_polymode_tuareg.png) ![polymode-tuareg.png](/blog/assets/img/screenshot_polymode_tuareg.png)
### Alt-Ergo Development ### Alt-Ergo Development
During the last two months, we participated in the supervision of an intern, Albin Coquereau - a graduted student at University Paris-Sud - in the VALS team who worked on a conservative extension of the [SMT2 standard input language](https://smtlib.cs.uiowa.edu/language.shtml) with prenex polymorphism a la ML and overloading. First results are promising. In the future, we plan to replace Alt-Ergo's input language with our extension of SMT2 in order to get advantage from SMT2's features and [polymorphism's expressiveness](https://www.lri.fr/%7Econchon/publis/conchon-smt08.pdf). During the last two months, we participated in the supervision of an intern, Albin Coquereau - a graduted student at University Paris-Sud - in the VALS team who worked on a conservative extension of the [SMT2 standard input language](https://smtlib.cs.uiowa.edu/language.shtml) with prenex polymorphism a la ML and overloading. First results are promising. In the future, we plan to replace Alt-Ergo's input language with our extension of SMT2 in order to get advantage from SMT2's features and [polymorphism's expressiveness](https://www.lri.fr/%7Econchon/publis/conchon-smt08.pdf).
Recenlty, we have also published an [online Javascript-based version of Alt-Ergo](https://ocamlpro.com/2014/07/15/try-alt-ergo-in-your-browser/) (based on private release 0.99). Recenlty, we have also published an [online Javascript-based version of Alt-Ergo](/blog/2014_07_15_try_alt_ergo_in_your_browser/) (based on private release 0.99).
### OCaml Adventures in Scilab Land ### OCaml Adventures in Scilab Land
We are currently working on the proper integration of our Scilab tools in the Scilab world, respecting its ways and conventions. For this, we built a Scilab module respecting the standard ATOMS interface. This module can embed an OCaml program inside the run-time environment of Scilab, so that OCaml functions can be called as external primitives. (Dyn)linking Scilab's various components, LLVM's and the OCaml run-time together was not that easy. We are currently working on the proper integration of our Scilab tools in the Scilab world, respecting its ways and conventions. For this, we built a Scilab module respecting the standard ATOMS interface. This module can embed an OCaml program inside the run-time environment of Scilab, so that OCaml functions can be called as external primitives. (Dyn)linking Scilab's various components, LLVM's and the OCaml run-time together was not that easy.
......
...@@ -84,10 +84,10 @@ Major points: ...@@ -84,10 +84,10 @@ Major points:
[utop]: https://github.com/diml/utop [utop]: https://github.com/diml/utop
[IOCaml]: https://github.com/andrewray/iocaml [IOCaml]: https://github.com/andrewray/iocaml
[Merlin]: https://github.com/the-lambda-church/merlin [Merlin]: https://github.com/the-lambda-church/merlin
[ocl-www]: http://www.cl.cam.ac.uk/projects/ocamllabs/ [ocl-www]: https://www.cl.cam.ac.uk/projects/ocamllabs/
[ocp-www]: http://www.ocamlpro.com [ocp-www]: /
[opam.ocaml.org]: https://opam.ocaml.org [opam.ocaml.org]: https://opam.ocaml.org
[platform-list]: http://lists.ocaml.org/listinfo/platform [platform-list]: https://lists.ocaml.org/listinfo/platform
## Releasing the OPAM 1.2 beta4 ## Releasing the OPAM 1.2 beta4
...@@ -279,11 +279,11 @@ benefit from the new features. ...@@ -279,11 +279,11 @@ benefit from the new features.
[opam12-beta]: https://github.com/ocaml/opam/releases/tag/1.2.0-beta4 "Opam 1.2-beta4 release" [opam12-beta]: https://github.com/ocaml/opam/releases/tag/1.2.0-beta4 "Opam 1.2-beta4 release"
[gh-features-12]: https://github.com/ocaml/opam/issues?q=label%3A%22Feature+Wish%22+milestone%3A1.2+is%3Aclosed "Features added in 1.2 from the tracker on Github" [gh-features-12]: https://github.com/ocaml/opam/issues?q=label%3A%22Feature+Wish%22+milestone%3A1.2+is%3Aclosed "Features added in 1.2 from the tracker on Github"
[irill]: http://www.irill.org "IRILL" [irill]: https://www.irill.org "IRILL"
[debian-weather]: https://qa.debian.org/dose/debcheck/testing_main/ "Debian Weather Service" [debian-weather]: https://qa.debian.org/dose/debcheck/testing_main/ "Debian Weather Service"
[ows]: http://ows.irill.org "The OPAM Weather Service" [ows]: http://ows.irill.org "The OPAM Weather Service"
[features-pr]: https://github.com/ocaml/opam/pull/1325 "PR for preliminary 'features' feature on Github" [features-pr]: https://github.com/ocaml/opam/pull/1325 "PR for preliminary 'features' feature on Github"
[opam12-doc]: http://opam.ocaml.org/doc "Preview of documentation for OPAM 1.2" [opam12-doc]: https://opam.ocaml.org/doc "Preview of documentation for OPAM 1.2"
[opam-admin-scripts]: https://github.com/ocaml/opam/tree/master/admin-scripts "Opam admin scripts directory on Github" [opam-admin-scripts]: https://github.com/ocaml/opam/tree/master/admin-scripts "Opam admin scripts directory on Github"
[opam200]: https://github.com/ocaml/opam/issues/200 [opam200]: https://github.com/ocaml/opam/issues/200
[opam-1-2-pin]: ../opam-1-2-pin "Blog post on OPAM Pin" [opam-1-2-pin]: /blog/2014_08_19_opam_1.2_repository_pinning "Blog post on OPAM Pin"
...@@ -5,7 +5,7 @@ category=Tooling ...@@ -5,7 +5,7 @@ category=Tooling
tags=opam tags=opam
> UPDATE: after discussions following this post, this feature was abandoned with > UPDATE: after discussions following this post, this feature was abandoned with
> the interface presented below. See [this post](../opam-install-dir) for > the interface presented below. See [this post](/blog/2017_05_04_new_opam_features_opam_install_dir) for
> the details and the new interface! > the details and the new interface!
The new opam 2.0 release, currently in beta, introduces several new features. The new opam 2.0 release, currently in beta, introduces several new features.
...@@ -128,5 +128,5 @@ way still relies on the default opam repository; a way to define specific ...@@ -128,5 +128,5 @@ way still relies on the default opam repository; a way to define specific
options for the switch that is implicitely created on `opam build` is in the options for the switch that is implicitely created on `opam build` is in the
works. works.
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog).
...@@ -106,5 +106,5 @@ still need to install tools that are tightly bound to a compiler version, like ...@@ -106,5 +106,5 @@ still need to install tools that are tightly bound to a compiler version, like
> NOTE: this article is cross-posted on > NOTE: this article is cross-posted on
> [opam.ocaml.org](https://opam.ocaml.org/blog/) and > [opam.ocaml.org](https://opam.ocaml.org/blog/) and
> [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > [ocamlpro.com](/blog).
...@@ -4,7 +4,7 @@ date=2017-05-04 ...@@ -4,7 +4,7 @@ date=2017-05-04
category=Tooling category=Tooling
tags=opam tags=opam
After the [opam build](../opam-build) feature was announced followed a lot of discussions, mainly having to do with its interface, and misleading name. The base features it offered, though, were still widely asked for: After the [opam build](/blog/2017_03_16_new_opam_features_opam_build) feature was announced followed a lot of discussions, mainly having to do with its interface, and misleading name. The base features it offered, though, were still widely asked for:
- a way to work directly with the project in the current directory, assuming it contains definitions for one or more packages - a way to work directly with the project in the current directory, assuming it contains definitions for one or more packages
- a way to copy the installed files of a package below a specified `destdir` - a way to copy the installed files of a package below a specified `destdir`
...@@ -12,7 +12,7 @@ After the [opam build](../opam-build) feature was announced followed a lot of di ...@@ -12,7 +12,7 @@ After the [opam build](../opam-build) feature was announced followed a lot of di
### Status of `opam build` ### Status of `opam build`
`opam build`, as described in a [previous post](../opam-build) has been dropped. It will be absent from the next Beta, where the following replaces it. `opam build`, as described in a [previous post](/blog/2017_03_16_new_opam_features_opam_build) has been dropped. It will be absent from the next Beta, where the following replaces it.
### Handling a local project ### Handling a local project
...@@ -70,4 +70,4 @@ A few other new options have been added to `opam install` and related commands, ...@@ -70,4 +70,4 @@ A few other new options have been added to `opam install` and related commands,
- `opam install --inplace-build` runs the scripts directly within the source dir instead of a dedicated copy. If multiple packages are pinned to the same directory, this disables parallel builds of these packages. - `opam install --inplace-build` runs the scripts directly within the source dir instead of a dedicated copy. If multiple packages are pinned to the same directory, this disables parallel builds of these packages.
- `opam install --working-dir` uses the working directory state of your project, instead of the state registered in the version control system. Don't worry, opam will warn you if you have uncommitted changes and forgot to specify `--working-dir`. - `opam install --working-dir` uses the working directory state of your project, instead of the state registered in the version control system. Don't worry, opam will warn you if you have uncommitted changes and forgot to specify `--working-dir`.
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog).
...@@ -145,5 +145,5 @@ Hopefully this extension to expressivity in dependencies will make the life of p ...@@ -145,5 +145,5 @@ Hopefully this extension to expressivity in dependencies will make the life of p
Note that the official repository is still in 1.2 format (served as 2.0 at `https://opam.ocaml.org/2.0`, through automatic conversion), and will only be migrated a little while after opam 2.0 is finally released. You are welcome to experiment on custom repositories or pinned packages already, but will need a little more patience before you can contribute package definitions making use of the above to the [official repository](https://github.com/ocaml/opam-repository). Note that the official repository is still in 1.2 format (served as 2.0 at `https://opam.ocaml.org/2.0`, through automatic conversion), and will only be migrated a little while after opam 2.0 is finally released. You are welcome to experiment on custom repositories or pinned packages already, but will need a little more patience before you can contribute package definitions making use of the above to the [official repository](https://github.com/ocaml/opam-repository).
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog).
...@@ -40,5 +40,5 @@ opam update; opam install opam-devel ...@@ -40,5 +40,5 @@ opam update; opam install opam-devel
Thanks a lot for testing out this new RC and [reporting](https://github.com/ocaml/opam/issues) any issues you may find. Thanks a lot for testing out this new RC and [reporting](https://github.com/ocaml/opam/issues) any issues you may find.
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog).
...@@ -6,11 +6,11 @@ tags=opam ...@@ -6,11 +6,11 @@ tags=opam
We are happy to announce the [opam 2.0.0 final release candidate](https://github.com/ocaml/opam/releases/tag/2.0.0-rc4)! 🍾 We are happy to announce the [opam 2.0.0 final release candidate](https://github.com/ocaml/opam/releases/tag/2.0.0-rc4)! 🍾
This release features a few bugfixes over [Release Candidate 3](../opam-2-0-0-rc3). **It will be promoted to 2.0.0 proper within a few weeks, when the [official repository](https://github.com/ocaml/opam-repository) format switches from 1.2.0 to 2.0.0.** After that date, updates to the 1.2.0 repository may become limited, as new features are getting used in packages. This release features a few bugfixes over [Release Candidate 3](/2018/07/26/opam-2-0-0-rc3). **It will be promoted to 2.0.0 proper within a few weeks, when the [official repository](https://github.com/ocaml/opam-repository) format switches from 1.2.0 to 2.0.0.** After that date, updates to the 1.2.0 repository may become limited, as new features are getting used in packages.
It is safe to update as soon as you see fit, since opam 2.0.0 supports the older formats. See the [Upgrade Guide](http://opam.ocaml.org/2.0-preview/doc/Upgrade_guide.html) for details about the new features and changes. If you are a package maintainer, you should keep publishing as before for now: the [roadmap](https://opam.ocaml.org/blog/opam-2-0-0-repo-upgrade-roadmap) for the repository upgrade will be detailed shortly. It is safe to update as soon as you see fit, since opam 2.0.0 supports the older formats. See the [Upgrade Guide](https://opam.ocaml.org/2.0-preview/doc/Upgrade_guide.html) for details about the new features and changes. If you are a package maintainer, you should keep publishing as before for now: the [roadmap](https://opam.ocaml.org/blog/opam-2-0-0-repo-upgrade-roadmap) for the repository upgrade will be detailed shortly.
The opam.ocaml.org pages have also been refreshed a bit, and the new version showing the 2.0.0 branch of the repository is already online at [http://opam.ocaml.org/2.0-preview/](http://opam.ocaml.org/2.0-preview/) (report any issues [here](https://github.com/ocaml/opam2web/issues)). The opam.ocaml.org pages have also been refreshed a bit, and the new version showing the 2.0.0 branch of the repository is already online at [https://opam.ocaml.org/2.0-preview/](https://opam.ocaml.org/2.0-preview/) (report any issues [here](https://github.com/ocaml/opam2web/issues)).
--- ---
...@@ -37,5 +37,5 @@ opam update; opam install opam-devel ...@@ -37,5 +37,5 @@ opam update; opam install opam-devel
We hope you enjoy this new version, and remain open to [bug reports](https://github.com/ocaml/opam/issues) and [suggestions](https://github.com/ocaml/opam/issues). We hope you enjoy this new version, and remain open to [bug reports](https://github.com/ocaml/opam/issues) and [suggestions](https://github.com/ocaml/opam/issues).
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](http://www.ocamlpro.com/category/blog/). > NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog).
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment