some tweaks, some links, and mention JavaScript backend (as well as PIC programming)
This commit is contained in:
parent
816a7d3be3
commit
6bb11ba703
1 changed files with 10 additions and 6 deletions
16
Technology
16
Technology
|
@ -106,8 +106,8 @@ to a virtual machine using Linux and OpenSSL, measured in thousands of lines of
|
||||||
|
|
||||||
If a security flaw is discovered in a library, and there is a security update,
|
If a security flaw is discovered in a library, and there is a security update,
|
||||||
all unikernels depending on this library need to be updated as well.
|
all unikernels depending on this library need to be updated as well.
|
||||||
This can be done with the OCaml package manager.
|
This can be done with the [OCaml package manager](https://opam.ocaml.org).
|
||||||
It resolves dependencies and lets authors sign their releases,
|
It resolves dependencies and lets [authors sign their releases](https://github.com/hannesm/conex),
|
||||||
so there is no need for a central package repository server.
|
so there is no need for a central package repository server.
|
||||||
|
|
||||||
Central repository servers are known targets for attackers and have been breached in the past, amongst them
|
Central repository servers are known targets for attackers and have been breached in the past, amongst them
|
||||||
|
@ -126,10 +126,9 @@ This style allows us to reason about the possible states of a system.
|
||||||
|
|
||||||
### Performance
|
### Performance
|
||||||
|
|
||||||
OCaml code compiles to native code running in the OCaml runtime, which is
|
OCaml code compiles to native code, which is
|
||||||
as performant as compiled C++ code. The OCaml runtime is just used for
|
as performant as compiled C++ code. As
|
||||||
memory management, and very small compared to a JVM or Python runtime. As
|
an example, our [TLS library](https://usenix15.nqsb.io) has up to 85% of the bulk throughput of OpenSSL (using
|
||||||
an example, our TLS library has up to 85% of the bulk throughput of OpenSSL (using
|
|
||||||
AES128-CBC). The TLS handshake performance is comparable with OpenSSL.
|
AES128-CBC). The TLS handshake performance is comparable with OpenSSL.
|
||||||
|
|
||||||
### Dependency management
|
### Dependency management
|
||||||
|
@ -166,6 +165,11 @@ OCaml is a mature programming language that is used both in
|
||||||
industry (Facebook, Jane Street Capital, Docker, ahrefs,
|
industry (Facebook, Jane Street Capital, Docker, ahrefs,
|
||||||
simcorp, lexifi) and academia.
|
simcorp, lexifi) and academia.
|
||||||
|
|
||||||
|
The OCaml compiler generates native code for x86, arm, etc., and has a bytecode
|
||||||
|
backend, which can target microcontrollers (PIC18 family in the [OcaPIC project](http://www.algo-prog.info/ocapic/web/?id=OCAPIC:OCAPIC)).
|
||||||
|
OCaml can also be compiled to JavaScript, which allow to develop both client
|
||||||
|
and server side of a web application in a single language (more details at the [ocsigen project](http://ocsigen.org/)).
|
||||||
|
|
||||||
In 2016, Facebook developed [reason](https://reasonml.github.io/), a dialect of
|
In 2016, Facebook developed [reason](https://reasonml.github.io/), a dialect of
|
||||||
OCaml which syntax is closer to JavaScript, and easier to comprehend for
|
OCaml which syntax is closer to JavaScript, and easier to comprehend for
|
||||||
beginners. Reason and OCaml code can be easily combined in a single
|
beginners. Reason and OCaml code can be easily combined in a single
|
||||||
|
|
Loading…
Reference in a new issue