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

fixing conflicts

parents 6e41e853 4e6863cb
......@@ -51,7 +51,7 @@ Now this will turn into a generic timeline edition tool on the Web, stay tuned i
OCamlPro is proud to be working on Flambda2, an ambitious work on an OCaml optimizing compiler, in close collaboration with Mark Shinwell from our long-term partner and client Jane Street. Flambda focuses on reducing the runtime cost of abstractions and removing as many short-lived allocations as possible. In 2020, the Flambda team worked on a considerable number of fixes and improvements, transforming Flambda2 from an experimental prototype to a version ready for testing in production!
This year also marked the conclusion of our work on the pack rehabilitation (see our two recent posts [Part 1](https://www.ocamlpro.com/2020/09/24/rehabilitating-packs-using-functors-and-recursivity-part-1/) and [Part 2](https://www.ocamlpro.com/2020/09/30/rehabilitating-packs-using-functors-and-recursivity-part-2/), and a much simpler [Version](https://www.ocamlpro.com/2011/08/10/packing-and-functors/) in 2011). Our work aimed to give them a new youth and utility by adding the possibility to generate functors or recursive packs. This improvement allows programmers to define big functors, functors that are split among multiple files, resulting in what we can view as a way to implement some form of parameterized libraries.
This year also marked the conclusion of our work on the pack rehabilitation (see our two recent posts [Part 1](/blog/2020_09_24_rehabilitating_packs_using_functors_and_recursivity_part_1) and [Part 2](/blog/2020_09_30_rehabilitating_packs_using_functors_and_recursivity_part_2), and a much simpler [Version](/blog/2011_08_10_packing_and_functors) in 2011). Our work aimed to give them a new youth and utility by adding the possibility to generate functors or recursive packs. This improvement allows programmers to define big functors, functors that are split among multiple files, resulting in what we can view as a way to implement some form of parameterized libraries.
*This work is allowed thanks to Jane Street’s funding.*
......@@ -80,9 +80,9 @@ OCamlPro is also a training centre. We organise yearly training sessions for pro
We released a brand new version of TryOCaml, a tool born from our work on [Learn-OCaml](https://ocaml-sf.org/learn-ocaml/)!
[Try OCaml](https://try.ocamlpro.com) has been highly praised by professors at the beginning of the Covid lockdown. Even if it can be used as a personal sandbox, it’s also possible to adapt its usage for classes. TryOCaml is a hassle-free tool that lowers significantly the barriers to start coding in OCaml, as no installation is required.
We regularly release cheat sheets for developers: in 2020, we shared [the long-awaited Opam 2.0 cheat sheet](https://www.ocamlpro.com/2020/01/10/opam-2-0-cheatsheet/), with a new theme! In just two pages, you’ll have in one place the everyday commands you need as an Opam user. We also shine some light on unsung features which may just change your coding life.
We regularly release cheat sheets for developers: in 2020, we shared [the long-awaited Opam 2.0 cheat sheet](/blog/2020_01_10_opam_2.0_cheat_sheet), with a new theme! In just two pages, you’ll have in one place the everyday commands you need as an Opam user. We also shine some light on unsung features which may just change your coding life.
2020 was also an important year for the OCaml language itself: we were pleased to welcome [OCaml 4.10](https://ocaml.org/releases/4.10.0.html)! One of the highlights of the release was the “Best-fit” Garbage Collector Strategy. We had [an in-depth look](https://www.ocamlpro.com/2020/03/23/ocaml-new-best-fit-garbage-collector/) at this exciting change.
2020 was also an important year for the OCaml language itself: we were pleased to welcome [OCaml 4.10](https://ocaml.org/releases/4.10.0.html)! One of the highlights of the release was the “Best-fit” Garbage Collector Strategy. We had [an in-depth look](/blog/2020_03_23_in_depth_look_at_best_fit_gc) at this exciting change.
*This work is self-funded by OCamlPro as part of its effort to ease the adoption of OCaml.*
......@@ -118,7 +118,7 @@ Though the year took its toll on our usual tour of the world conferences and eve
![formal methods](assets/img/altergo-meeting.jpeg)
[Sylvain Conchon joined OCamlPro](https://www.ocamlpro.com/2020/06/05/interview-sylvain-conchon-joins-ocamlpro/) as Formal Methods Chief Scientific Officer in 2020!
[Sylvain Conchon joined OCamlPro](/blog/2020_06_05_interview_sylvain_conchon_joins_ocamlpro) as Formal Methods Chief Scientific Officer in 2020!
<h3 id="alt-ergo">Alt-Ergo Development <a href="#alt-ergo"></a></h3>
......@@ -156,7 +156,7 @@ This work needed a JavaScript compatible version of Alt-Ergo. We have made some
As OCaml-ians, we naturally saw in the Rust language a beautiful complement to our approach. One opportunity to explore this state-of-the art language has been to pursue our work on ocp-memprof and build [Memthol](https://github.com/OCamlPro/memthol), a visualizer and analyzer to profile OCaml programs. It works on memory dumps containing information about the size and (de)allocation date of part of the allocations performed by some execution of a program.
Between lockdowns, we’ve also been able to hold [our Rust training](https://www.ocamlpro.com/training-ocamlpro/). It’s designed as a highly-modular vocational course, from 1 to 4 days. The training covers a beginner introduction to Rust’s basics features, crucial features and libraries for real-life development and advanced features, all through complex use-cases one would find in real life.
Between lockdowns, we’ve also been able to hold [our Rust training](/training-ocamlpro). It’s designed as a highly-modular vocational course, from 1 to 4 days. The training covers a beginner introduction to Rust’s basics features, crucial features and libraries for real-life development and advanced features, all through complex use-cases one would find in real life.
*This work was self-funded by OCamlPro as part of our exploration of other statically and strongly typed functional languages.*
......
......@@ -43,4 +43,5 @@ $~ opam update; opam install opam-devel
We hope you enjoy this new minor 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/), and published in [discuss.ocaml.org](https://discuss.ocaml.org/t/ann-opam-2-0-8-release/7242).
> NOTE: this article is cross-posted on [opam.ocaml.org](https://opam.ocaml.org/blog/) and [ocamlpro.com](/blog), and published in [discuss.ocaml.org](https://discuss.ocaml.org/t/ann-opam-2-0-8-release/7242).
......@@ -6,11 +6,11 @@ tags=alt-ergo
![](/blog/assets/img/screenshot_ask_altergo.jpg)
Have you heard about our [Try-Alt-Ergo](https://alt-ergo.ocamlpro.com/try.html) website? Created in 2014 (see [our blogpost](https://www.ocamlpro.com/2014/07/15/try-alt-ergo-in-your-browser/)), the first objective was to facilitate access to our performant SMT Solver [Alt-Ergo](https://alt-ergo.ocamlpro.com/). *Try-Alt-Ergo allows you to write and run your problems in your browser without any server computation.*
Have you heard about our [Try-Alt-Ergo](https://alt-ergo.ocamlpro.com/try.html) website? Created in 2014 (see [our blogpost](/blog/2014_07_15_try_alt_ergo_in_your_browser)), the first objective was to facilitate access to our performant SMT Solver [Alt-Ergo](https://alt-ergo.ocamlpro.com/). *Try-Alt-Ergo allows you to write and run your problems in your browser without any server computation.*
This playground website has been maintained by OCamlPro for many years, and it's high time to bring it back to life with new updates. We are therefore pleased to announce the new version of the [Try-Alt-Ergo](https://try-alt-ergo.ocamlpro.com/) website! In this article, we will first explain what has changed in the back end, and what you can use if you are interested in running your own version of Alt-Ergo on a website, or in an application! And then we will focus on the new front-end of our website, from its interface to its features through its tutorial about the program.* *
## [Try-Alt-Ergo 2014](https://www.ocamlpro.com/2021/03/29/new-try-alt-ergo/#2014)
## [Try-Alt-Ergo 2014](/blog/2021_03_29_new_try_alt_ergo)
![](/blog/assets/img/screenshot_from_2021_03_29.png)
......@@ -18,7 +18,7 @@ This playground website has been maintained by OCamlPro for many years, and it's
Try-Alt-Ergo did not offer a proper editor (with syntax coloration), a way to save the file problem nor an option to limit the run of the solver with a time limit. Another issue was about the thread. When the solver was called the webpage froze, that behavior was problematic in case of the long run because there was no way to stop the solver.
## [Alt-Ergo 1.30](https://www.ocamlpro.com/2021/03/29/new-try-alt-ergo/#ae-1.30)
## [Alt-Ergo 1.30](/blog/2021_03_29_new_try_alt_ergo)
The 1.30 version of Alt-Ergo was the version used in the back-end to prove problems. Since this version, a lot of improvements have been done in Alt-Ergo. To learn more about these improvements, see our [changelog](https://ocamlpro.github.io/alt-ergo/About/changes.html) in the documentation.
......@@ -26,7 +26,7 @@ Over the years we encountered some difficulties to update the Alt-Ergo version u
In 2019 we switched our build system to [dune](https://dune.readthedocs.io/en/latest/overview.html) which opens the possibility to ease the cross-compilation of Alt-Ergo in JavaScript.
## [New back-end](https://www.ocamlpro.com/2021/03/29/new-try-alt-ergo/#backend)
## [New back-end](/blog/2021_03_29_new_try_alt_ergo)
With some simple modification, we were able to compile Alt-Ergo in JavaScript. This modification is simple enough that this process is now automated in our continuous integration. This will enable us to easily provide a JavaScript version of our Solver for each future version.
......@@ -38,7 +38,7 @@ Two ways of using our solver in JavaScript are available:
- Alt-Ergo answers can be composed with its results, debug information, errors, warnings …`{ "results": [ "File \"test-file\", line 1, characters 9-13: Valid (0.2070) (0 steps) (goal g) ] ,``"debugs": [ "[Debug][Sat_solver]", "use Tableaux-like solver"] }`like the options, a result value like `debugs` does not contains anything, `"debugs": [...]` is not returned.
- See the Alt-Ergo [web-worker documentation](https://ocamlpro.github.io/alt-ergo/Usage/index.html#js-worker) to learn more on how to use it.
## [New Front-end](https://www.ocamlpro.com/2021/03/29/new-try-alt-ergo/#frontend)
## [New Front-end](/blog/2021_03_29_new_try_alt_ergo)
![](/blog/assets/img/screenshot_new_altergo_interface.jpg)
......
......@@ -11,9 +11,9 @@ La troisième réunion annuelle du Club des utilisateurs d’Alt-Ergo a eu lieu
Notre Club a plusieurs objectifs. Son objectif principal est de garantir la pérennité d’Alt-Ergo en favorisant la collaboration entre les membres du Club et en tissant des liens avec les utilisateurs de méthodes formelles, telle que la communauté Why3. L’une de nos priorités est de définir les besoins des utilisateurs de solveurs de contraintes en étendant Alt-Ergo à de nouveaux domaines tels que le Model Checking, tout en concurrençant les autres solveurs de l’état de l’art au cours de compétitions internationales. Enfin, le dernier objectif du Club est de trouver de nouveaux projets ou contrats pour le développement de fonctionnalités à long terme.
Nous tenons à remercier tous nos membres pour leur soutien : Mitsubishi Electric R&amp;D Centre Europe, AdaCore et le CEA List. Nous souhaitons également mettre en lumière l’équipe de développement [Why3](http://why3.lri.fr/) avec laquelle nous travaillons pour améliorer nos outils.
Nous tenons à remercier tous nos membres pour leur soutien : Mitsubishi Electric R&D Centre Europe, AdaCore et le CEA List. Nous souhaitons également mettre en lumière l’équipe de développement [Why3](http://why3.lri.fr/) avec laquelle nous travaillons pour améliorer nos outils.
Cette année, de nouveaux points d’intérêts ont été soulevés par nos membres. Dans un premier temps, la génération de modèles, ajoutée à Alt-Ergo suite à la dernière édition, a été utile à la majorité des membres du club. Les points techniques souhaités à présent sont de pouvoir raffiner les contraintes et étudier comment les propager. Dans un second temps a eu lieu la présentation de Dolmen, le parseur/typer qui permettra de ne typer qu’une seule fois les fichiers SMT2 et d’être prêt pour le SMT3. Son intégration à Alt-Ergo est en cours, l’avis des membres du club est enthousiaste sur les apports futurs de l’outil Dolmen à la communauté des solveurs SMT !
Ces fonctionnalités sont désormais nos principales priorités, retrouvez [les planches](https://gitlab.ocamlpro.com/OCamlPro/club-alt-ergo_ext/-/blob/master/Planche_Club_Alt-Ergo_Edition2021.pdf?inline=false) présentées à la réunion du Club édition 2021. Pour suivre nos avancement et les nouveautés, n’hésitez pas à lire nos [articles](https://www.ocamlpro.com/category/alt-ergo/) sur notre blog.
Ces fonctionnalités sont désormais nos principales priorités, retrouvez [les planches](https://gitlab.ocamlpro.com/OCamlPro/club-alt-ergo_ext/-/blob/master/Planche_Club_Alt-Ergo_Edition2021.pdf?inline=false) présentées à la réunion du Club édition 2021. Pour suivre nos avancement et les nouveautés, n’hésitez pas à lire nos [articles](/blog/category/formal_methods) sur notre blog.
......@@ -50,13 +50,15 @@
Software
</a>
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="navbarDarkDropdownMenuLink">
<li><a class="dropdown-item" href="https://github.com/ocaml/opam">OPAM</a></li>
<li><a class="dropdown-item" href="https://github.com/OCamlPro/digodoc">Digodoc</a></li>
<li><a class="dropdown-item" href="https://github.com/ocaml-sf/learn-ocaml">Learn-OCaml</a></li>
<li><a class="dropdown-item" href="https://github.com/ocaml/opam" target="_blank">OPAM</a></li>
<li><a class="dropdown-item" href="https://github.com/OCamlPro/digodoc" target="_blank">Digodoc</a></li>
<li><a class="dropdown-item" href="https://github.com/ocaml-sf/learn-ocaml"
target="_blank">Learn-OCaml</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li><a class="dropdown-item" href="https://ocamlpro.github.io">OCamlPro on Github!</a></li>
<li><a class="dropdown-item" href="https://ocamlpro.github.io" target="_blank">OCamlPro on Github!</a>
</li>
</ul>
</li>
<li class="nav-item dropdown">
......
......@@ -4,18 +4,23 @@
(* (OLD URL, NEW URL) *)
let old_to_new =
(* NO EQUIVALENT *)
[ ("/fr/recrutement-ocamlpro/", "/internships")
; ("/fr/recrutement-ocamlpro/", "/jobs")
; ( "https://www.ocamlpro.com/pre-inscription-a-une-session-de-formation-inter-entreprises/"
[ ( "https://www.ocamlpro.com/pre-inscription-a-une-session-de-formation-inter-entreprises/"
, "/" )
; ("https://www.ocamlpro.com/fr/preinscription-aux-formations-ocamlpro/", "/")
]
(* LEAD TO 404 *)
@ [ ("https://www.ocamlpro.com/2017/05/04/opam-build", "404")
; ("https://www.ocamlpro.com/2018/07/26/opam-2-0-0-rc3", "404")
; ("https://files.ocamlpro.com/pub/opam-full-latest.tar.gz", "404")
; ("https://files.ocamlpro.com/pub/opam-full-1.1.0.tar.gz", "404")
; ("https://www.ocamlpro.com/blog/2013/03/14/opam-1.0.0.html", "404")
; ("https://files.ocamlpro.com/files/tuareg-mode-with-ppx.el", "404")
; ("http://ocamlpro.com/pub/ny-meetup.pdf", "404" )
]
(* PAGES STATIQUES FR *)
@ [ ("/fr/accueil/", "/index")
; ("/fr/accueil/#equipe/", "/team")
; ("/fr/recrutement-ocamlpro/", "/index")
; ("/fr/lequipe-ocamlpro", "/team")
; ("/fr/lequipe-ocamlpro/", "/team")
; ("/fr/accueil/#expertise/", "/index")
......@@ -68,6 +73,21 @@ let old_to_new =
; ("/fr/author/vincent/", "?")
; ("/fr/author/alain/", "?")
]
(*CATEGORIES*)
@ [ ("/category/ocaml-opam-tooling/", "/blog/category/tooling")
; ("/category/alt-ergo/", "/blog/category/formal_methods")
; ("/category/trainings/", "/blog/category/trainings")
; ("/category/ocamlpro/", "/blog/category/ocamlpro")
; ("/category/blockchains/", "/blog/category/blockchains")
; ("/category/blog", "")
; ("/category/flambda/", "/blog/category/ocaml")
; ("/category/highlights/", "/blog/category/ocamlpro")
; ("/category/opam/", "/blog/category/tooling")
; ("/category/rust/", "/blog/category/rust")
; ("/category/ocaml/", "/blog/category/ocaml")
]
(*TAGS*)
@ []
(* BLOG *)
@ [ ("/blog/", "/blog")
; ("/fr/blog-fr/", "/blog")
......@@ -268,9 +288,25 @@ let old_to_new =
; ( "/2021/09/02/generating-static-and-portable-executables-with-ocaml/"
, "/blog/2021_09_02_generating_static_and_portable_executables_with_ocaml"
)
; ("/", "/")
; ("/", "/")
; ("/", "/")
; ("/", "/")
; ("/", "/")
]
@
(* FILES *)
(* WP-CONTENT *)
[
( "/wp-content/uploads/2019/11/ocaml-opam.pdf"
, "https://ocamlpro.github.io/ocaml-cheat-sheets/ocaml-opam.pdf" )
; ( "/wp-content/uploads/2020/01/ocaml-opam-bw.pdf"
, "https://ocamlpro.github.io/ocaml-cheat-sheets/ocaml-opam-bw.pdf" )
]
@ (* PUB *)
[
( "/pub/opam_installer.sh"
, "https://github.com/ocaml/opam/blob/master/shell/opam_installer.sh" )
; ( "/pub/liquidity_slides.en_.pdf"
, "https://files.ocamlpro.com/pub/liquidity_slides.en_.pdf" )
]
@ (* FILES *)
[
("https:/files.ocamlpro.com/files/tuareg-mode.pdf", "/")
; ("/files/try-alt-ergo.why", "/")
]
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