forked from ocaml/ocaml.org
-
Notifications
You must be signed in to change notification settings - Fork 0
/
videos.yml
235 lines (233 loc) · 12.3 KB
/
videos.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
videos:
- paper: A Declarative Syntax Definition for OCaml
people: []
kind: conference
title: A Declarative Syntax Definition for OCaml
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/a5b86864-8e43-4138-b6d6-ed48d2d4b63d
link: https://watch.ocaml.org/videos/watch/a5b86864-8e43-4138-b6d6-ed48d2d4b63d
description: In this talk, we present our work on a syntax definition for the
OCaml language in the syntax definition formalism SDF3. SDF3 supports the
high-level definition of concrete and abstract syntax through declarative
disambiguation and definition of constructors, enabling a direct mapping
to abstract syntax. Based on the SDF3 syntax definition, the Spoofax
language workbench produces a complete syntax aware editor with a parser,
syntax checking, parse error recovery, syntax highlighting, formatting
with correct parenthesis insertion, and syntactic completion. The syntax
definition should provide a good basis for experiments with the design of
OCaml and the development of further tooling. In the talk, we will
highlight interesting aspects of the syntax definition, discuss issues we
encountered in the syntax of OCaml, and demonstrate the editor.
year: 2020
- paper: The Final Pieces of the OCaml Documentation Puzzle
people: []
kind: conference
title: The Final Pieces of the OCaml Documentation Puzzle
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/2acebff9-25fa-4733-83cc-620a65b12251
link: https://watch.ocaml.org/videos/watch/2acebff9-25fa-4733-83cc-620a65b12251
description: "Rendering OCaml document is widely known as a very difficult task:
The ever-evolving OCaml module system is extremely rich and can include
complex set of inter-dependencies that are both difficult to compute and
to render in a concise document. Its tasks are even harder than the
typechecker as it also needs to keep track of documentation comments
precisely and efficiently. As an example, signatures such as include
F(X).T and destructive substitutions were never handled properly by any
documentation generator."
year: 2020
- paper: "OCaml-CI: A Zero-Configuration CI"
people: []
kind: conference
title: "OCaml-CI: A Zero-Configuration CI"
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/0fee79e8-715a-400b-bfcc-34c3610f4890
link: https://watch.ocaml.org/videos/watch/0fee79e8-715a-400b-bfcc-34c3610f4890
description: OCaml-CI is a CI service for OCaml projects. It uses metadata from
the project’s Opam and Dune files to work out what to build, and uses
caching to make builds fast. It automatically tests projects against
multiple OCaml versions and OS platforms. The CI has been deployed on
around 50 projects so far on GitHub, and many of them see response times
an order of magnitude quicker than with less integrated CI solutions. This
talk will introduce the CI service and then look at some of the
technologies used to build it.
year: 2020
- people: []
description: "This talk covers: integrated development environments, next steps
for the OCaml Platform and plans for 2020-2021"
title: State of the OCaml Platform 2020
kind: conference
tags:
- ocaml-workshop
- ocaml-platform
year: 2020
link: https://watch.ocaml.org/videos/watch/0e2070fd-798b-47f7-8e69-ef75e967e516
embed: https://watch.ocaml.org/videos/embed/0e2070fd-798b-47f7-8e69-ef75e967e516
- paper: Parallelising Your OCaml Code with Multicore OCaml
people: []
kind: conference
title: Parallelising Your OCaml Code with Multicore OCaml
tags:
- ocaml-workshop
- multicore-ocaml
embed: https://watch.ocaml.org/videos/embed/ce20839e-4bfc-4d74-925b-485a6b052ddf
link: https://watch.ocaml.org/videos/watch/ce20839e-4bfc-4d74-925b-485a6b052ddf
description: "This presentation will take the attendees through the following
steps aimed at developing parallel programs with Multicore OCaml:
installing the latest Multicore OCaml compiler, brief overview of the
low-level API for parallel programming, a tour of domainslib – a
high-level parallel programming library for Multicore OCaml, common
pitfalls when parallelising and tools for diagnosing Multicore OCaml
performance."
year: 2020
- paper: Types in Amber
people: []
kind: conference
title: Types in Amber
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/99b3dc75-9f93-4677-9f8b-076546725512
link: https://watch.ocaml.org/videos/watch/99b3dc75-9f93-4677-9f8b-076546725512
description: Coda is a new cryptocurrency that uses zk-SNARKs to dramatically
reduce the size of data needed by nodes running its protocol. Nodes
communicate in a format automatically derived from type definitions in
OCaml source files. As the Coda software evolves, these formats for sent
data may change. We wish to allow nodes running older versions of the
software to communicate with newer versions. To achieve that, we identify
stable types that must not change over time, so that their serializations
also do not change.
year: 2020
- paper: "OCaml Under the Hood: SmartPy"
people: []
kind: conference
title: "OCaml under the Hood: SmartPy"
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/7446ad4d-4ae2-4e1a-bc38-af8f71e8ebd8
link: https://watch.ocaml.org/videos/watch/7446ad4d-4ae2-4e1a-bc38-af8f71e8ebd8
description: SmartPy is a complete system to develop smart-contracts for the
Tezos blockchain. It is an embedded EDSL in python to write contracts and
their test scenarios. It includes an online IDE, a chain explorer, and a
command-line interface. Python is used to generate programs in an
imperative, type-inferred, intermediate language called SmartML. SmartML
is also the name of the OCaml library which provides an interpreter, a
compiler to Michelson (the smart-contract language of Tezos), as well as a
scenario “on-chain” interpreter. The IDE uses a mix of OCaml built with
js_of_ocaml and pure Javascript. The command-line interface also builds
with js_of_ocaml to run on Node.js.
year: 2020
- paper: LexiFi Runtime Types
people: []
kind: conference
title: LexiFi Runtime Types
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/cc7e3242-0bef-448a-aa13-8827bba933e3
link: https://watch.ocaml.org/videos/watch/cc7e3242-0bef-448a-aa13-8827bba933e3
description: OCaml programmers make deliberate use of abstract data types for
composing safe and reliable software systems. The OCaml compiler relies on
the invariants imposed by the type system to produce efficient and compact
runtime data representations. Being no longer relevant, the type
information is discarded after compilation. The resulting performance is a
key feature of the OCaml language.
year: 2020
- paper: The ImpFS Filesystem
people: []
kind: conference
title: The ImpFS Filesystem
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/28545b27-4637-47a5-8edd-6b904daef19c
link: https://watch.ocaml.org/videos/watch/28545b27-4637-47a5-8edd-6b904daef19c
description: This proposal describes a presentation to be given at the OCaml’20
workshop. The presentation will cover a new OCaml filesystem, ImpFS, and
the related libraries. The filesystem makes use of a B-tree library
presented at OCaml’17, and a key-value store presented at ML’19. In
addition, there are a number of other support libraries that may be of
interest to the community. ImpFS represents a single point in the
filesystem design space, but we hope that the libraries we have developed
will enable others to build further filesystems with novel features.
year: 2020
- paper: Irmin v2
people: []
kind: conference
title: Irmin v2
tags:
- ocaml-workshop
- irmin
embed: https://watch.ocaml.org/videos/embed/53e497b0-898f-4c85-8da9-39f65ef0e0b1
link: https://watch.ocaml.org/videos/watch/53e497b0-898f-4c85-8da9-39f65ef0e0b1
description: "Irmin is an OCaml library for building distributed databases with
the same design principles as Git. Existing Git users will find many
familiar features: branching/merging, immutable causal history for all
changes, and the ability to restore to any previous state. It has been
extensively used by major software projects over the past few years such
as Docker for Mac/Windows, and noticeably through DataKit, which powers
hundreds of thousands monthly builds on the `opam-repository` CI
contributors may be familiar with."
year: 2020
- people: []
title: Why OCaml
description: A summary of why Jane Street uses OCaml, including a discussion of
how OCaml fits into the broader space of programming languages. Given to
our summer interns.
kind: lecture
tags:
- jane-street
year: 2015
link: https://watch.ocaml.org/videos/watch/3abacf08-a3a1-405c-975b-a4efb54f0dd0
embed: https://watch.ocaml.org/videos/embed/3abacf08-a3a1-405c-975b-a4efb54f0dd0
- paper: "AD-OCaml: Algorithmic Differentiation for OCaml"
people: []
kind: conference
title: "AD-OCaml: Algorithmic Differentiation for OCaml"
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/c9e85690-732f-4b03-836f-2ee0fd8f0658
link: https://watch.ocaml.org/videos/watch/c9e85690-732f-4b03-836f-2ee0fd8f0658
description: >-
AD-OCaml is a library framework for calculating mathematically exact
derivatives and deep power series approximations of almost arbitrary OCaml
programs via algorithmic differentiation. Unlike similar frameworks, this
includes programs with side effects, aliasing, and programs with nested
derivative operators. The framework also offers implicit parallelization
of both user programs and their transformations.
The presentation will provide a short introduction to the mathematical problem, the difficulties of implementing a solution, the design of the library, and a demonstration of its capabilities.
year: 2020
- paper: "API Migration: Compare Transformed"
people: []
kind: conference
title: "API Migration: Compare Transformed"
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/c46b925b-bd77-404f-ac5d-5dab65047529
link: https://watch.ocaml.org/videos/watch/c46b925b-bd77-404f-ac5d-5dab65047529
description: In this talk we describe our experience in using an automatic
API-migration strategy dedicated at changing the signatures of OCaml
functions, using the Rotor refactoring tool for OCaml. We perform a case
study on open source Jane Street libraries by using Rotor to refactor
comparison functions so that they return a more precise variant type
rather than an integer. We discuss the difficulties of refactoring the
Jane Street code base, which makes extensive use of ppx macros, and
ongoing work implementing new refactorings.
year: 2020
- paper: A Simple State-Machine Framework for Property-Based Testing in OCaml
people: []
kind: conference
title: A Simple State-Machine Framework for Property-Based Testing in OCaml
tags:
- ocaml-workshop
embed: https://watch.ocaml.org/videos/embed/08b429ea-2eb8-427d-a625-5495f4ee0fef
link: https://watch.ocaml.org/videos/watch/08b429ea-2eb8-427d-a625-5495f4ee0fef
description: "Since their inception, state-machine frameworks have proven their
worth by finding defects in everything from the underlying AUTOSAR
components of Volvo cars to digital invoicing systems. These case studies
were carried out with Erlang’s commercial QuickCheck state-machine
framework from Quviq, but such frameworks are now also available for
Haskell, F#, Scala, Elixir, Java, etc. We present a typed state-machine
framework for OCaml based on the QCheck library and illustrate a number of
concepts common to all such frameworks: state modeling, commands,
interpreting commands, preconditions, and agreement checking."
year: 2020