Declarative and Minimalistic Computing

Compiling to WebAssembly

Notes from the trenches
D.declarative.minimalistic
Andy Wingo
An introduction to compiling to WebAssembly, from a low-level perspective. Learn more about the nuts and bolts of targetting basic WebAssembly 1.0, as well as a look forward towards extensions that are still in development.
Let Andy guide you through the general shape and the low-level details of WebAssembly as a compiler target. As a significant contributor to Firefox's WebAssembly implementation, Andy is in a good position to know what you can ship in practice, as well as what you might expect to be able to ship in a year or in two years. He has also written compilers that exercise more experimental features, such as integration with host garbage collectors, tail calls, and more. His experience working on the WebAssembly backend of LLVM has also been illuminating in ways not limited to compiling C and C++ programs. Finally, we will touch on the most experimental and unresolved questions, such as JIT and linking of late-bound languages like Java.

Additional information

Type devroom

More sessions

2/7/21
Declarative and Minimalistic Computing
Juan Julián Merelo
D.declarative.minimalistic
Raku is a multi-paradigm language, that is able to do meta-programming, declarative, object-oriented programing as well as many other specific features. At 5 years, it's still a young language, but some patterns are emerging that make it quite suitable for practicing your programming chops, or embark in some side project. In this talk we will introduce some interesting programming patterns that are seen, possibly, nowhere else, from "grammaroles" through "piggybacking objects". On the other ...
2/7/21
Declarative and Minimalistic Computing
Fridtjof Siebert
D.declarative.minimalistic
Fuzion is a modern general purpose programming language that unifies concepts found in structured, functional and object-oriented programming languages into the concept of a Fuzion feature. It combines a powerful syntax and safety features based on the design-by-contract principle with a simple intermediate representation that enables powerful optimizing compilers and static analysis tools to verify correctness aspects. Fuzion was influenced by many other languages including Java, Python, ...
2/7/21
Declarative and Minimalistic Computing
Hisham Muhammad
D.declarative.minimalistic
This talk is the third part in a trilogy of talks hosted at this devroom that chronicles the birth of Teal, a new programming language that is a typed dialect of Lua. In this talk I will present an update on Teal: we'll talk about the current status of the language and its nascent community, and look forward at what lies ahead for its future. We will discuss a bit about the recent evolution of the project, and where it can go from here while adding more power to the type checking while keeping ...
2/7/21
Declarative and Minimalistic Computing
Pierre Neidhardt
D.declarative.minimalistic
The popular but aging shells (Bash and the like) suffer from many design flaws: lack of structured data, pipes are hard-to-debug blackboxes, lack of interactivity, while the user interfaces are mostly poor and limiting. High time we moved on away from this cruft, starting with a top-notch interactive language boasting full-fledged introspection and debugging.
2/7/21
Declarative and Minimalistic Computing
Jan Nieuwenhuizen (janneke)
D.declarative.minimalistic
Last year (FOSDEM'20) GNU Mes helped create a second reduction by 50% of the Guix bootstrap binaries, to about ~60MiB; 25% of its original size. This year we have removed the binary seeds for MesCC-Tool and GNU Mes and replace them with Stage0 and M2-Planet: the Full Source Bootstrap!
2/7/21
Declarative and Minimalistic Computing
Pjotr Prins
D.declarative.minimalistic
Declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow. Many languages that apply this style attempt to minimize or eliminate side effects by describing what the program must accomplish in terms of the problem domain, rather than describe how to accomplish it as a sequence of the programming language primitives. Declarative programming is the basis for functional programming, logic programming and dataflow.
2/7/21
Declarative and Minimalistic Computing
Arun Isaac
D.declarative.minimalistic
Lisp has a wonderful minimal syntax that almost directly expresses the abstract syntax tree. Yet, diff and other tooling operate on the unix newline ending model. When lisp prides itself for its minimal syntax---code is data---that is easy to parse, why can't we do better? Traditional diff implementations, such as GNU Diff, treat files as a flat list of lines. A tree-diff algorithm that can produce minimal and semantically meaningful output is a surprisingly more difficult and complex problem. ...