BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Pentabarf//Schedule 0.3//EN CALSCALE:GREGORIAN METHOD:PUBLISH X-WR-CALDESC;VALUE=TEXT:Declarative and Minimalistic Computing devroom X-WR-CALNAME;VALUE=TEXT:Declarative and Minimalistic Computing devroom X-WR-TIMEZONE;VALUE=TEXT:Europe/Brussels BEGIN:VEVENT METHOD:PUBLISH UID:10935@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T100000 DTEND:20210207T103000 SUMMARY:A few patterns (and one antipattern) you might see only in Raku DESCRIPTION:
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 hand, for a language where TIMTOWDI, there is more than one way to do it, talking about antipatterns might look paradoxical. So let's see how we get out of this catch-22 situation.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/rakupatterns/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Juan Julián Merelo":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11027@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T103000 DTEND:20210207T105000 SUMMARY:The Fuzion Language DESCRIPTION:Fuzion is a modern general purpose programming language that unifies conceptsfound in structured, functional and object-oriented programming languages intothe concept of a Fuzion feature. It combines a powerful syntax and safetyfeatures based on the design-by-contract principle with a simple intermediaterepresentation that enables powerful optimizing compilers and static analysistools to verify correctness aspects.
Fuzion was influenced by many other languages including Java, Python, Eiffel,Rust, Go, Lua, Kotlin, C#, F#, Nim, Julia, Clojure, C/C++, and many more. Thegoal of Fuzion is to define a language that has the expressive power present inthese languages and allow high-performance implementation and powerful analysistools. Furthermore, Fuzion addresses requirements for safety-criticalapplications by adding support for contracts that enable formal specification andenable detailed control over runtime checks.
The talk will explain Fuzion's motivation and present its main concepts, featuredeclarations and feature calls. It will not go into details of the syntax, butpresent Fuzion's approach to immutability, memory management and type inference.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/fuzionlang/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Fridtjof Siebert":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11323@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T105000 DTEND:20210207T112000 SUMMARY:What's next for Teal, the typed dialect of Lua DESCRIPTION: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 the language simple.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/teallua/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Hisham Muhammad":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10962@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T112000 DTEND:20210207T115000 SUMMARY:A Lisp REPL as my main shell DESCRIPTION: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 ofinteractivity, while the user interfaces are mostly poor and limiting.High time we moved on away from this cruft, starting with a top-notchinteractive language boasting full-fledged introspection and debugging.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/lisprepl/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Pierre Neidhardt":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11029@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T115000 DTEND:20210207T120500 SUMMARY:GNU Mes - the Full Source Bootstrap DESCRIPTION:Last year (FOSDEM'20) GNU Mes helped create a second reduction by 50% of the Guixbootstrap binaries, to about ~60MiB; 25% of its original size. This year we have removed thebinary seeds for MesCC-Tool and GNU Mes and replace them with Stage0and M2-Planet: the Full Source Bootstrap!
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/gnumes/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Jan Nieuwenhuizen (janneke)":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11231@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T120500 DTEND:20210207T122500 SUMMARY:Declarative and Minimalistic Computing DESCRIPTION: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.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/declarativeminimalistic/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Pjotr Prins":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11018@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T122500 DTEND:20210207T130500 SUMMARY:Compiling to WebAssembly DESCRIPTION: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.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/webassembly/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Andy Wingo":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11026@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T130500 DTEND:20210207T132500 SUMMARY:Semantically meaningful S-expression diff DESCRIPTION:Lisp has a wonderful minimal syntax that almost directly expresses theabstract syntax tree. Yet, diff and other tooling operate on the unixnewline ending model. When lisp prides itself for its minimalsyntax---code is data---that is easy to parse, why can't we do better?
Traditional diff implementations, such as GNU Diff, treat files as aflat list of lines. A tree-diff algorithm that can produce minimal andsemantically meaningful output is a surprisingly more difficult andcomplex problem. In fact, for unordered trees, the problem is NP-hard.
In this talk, I will demonstrate a very early working prototype of anS-expression diff program. The program can operate on two versions ofsome lisp source code and extract a meaningful tree-diff. The programaims to replace 'git diff' and related tools for lisp projects.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/sexpressiondiff/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Arun Isaac":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11000@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T132500 DTEND:20210207T135500 SUMMARY:Making a simple language is complicated DESCRIPTION:XL is a minimalistic, yet powerful programming language presented last year at FOSDEM. Keeping the language both simple and powerful is an extremely interesting challenge. In this talk, I will show problems that XL exposed over time, and contrast the solutions being proposed with what is common in mainstream programming languages.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/xllang/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christophe de Dinechin":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11034@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T135500 DTEND:20210207T145000 SUMMARY:Declaratively yours DESCRIPTION:GNU Guix is a software deployment tool that gives you what you declare. It provides abstractions to declare software packages, profiles containing several packages, operating systems and software services, and even fleets of machines.
Guix saw its 1.2.0 release in November 2020. In this talk I will present some of the latest features added to Guix or still cooking, showing how they all follow the same declarative pattern and how that eases the assembly of complex software pieces.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/gnuguix/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Ludovic Courtès":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10993@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T145000 DTEND:20210207T151500 SUMMARY:Is GNU Guix a minimal distribution, and what might that even mean? DESCRIPTION:Minimalism is a useful perspective in software projects, and this talk will explore how minimalism and the related concepts of scope, convergence and efficiency seem to apply to distributions. My current focus is GNU Guix, but in this talk I'll compare and contrast with other distributions as well.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/minimalismguix/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christopher Baines":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11232@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T151500 DTEND:20210207T160000 SUMMARY:Spritely Goblins: a distributed journey DESCRIPTION:Spritely is a project to level up the federated social web. In order to do that, we need a distributed programming system! Spritely Goblins is just that. Currently written in Racket, and maybe soon ported to Guile, it's an actor model library which incorporates greats idea from the E programming language and object capability security communities.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/spritelygoblins/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Christopher Webber":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11332@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T160000 DTEND:20210207T164500 SUMMARY:miniKanren: a minimal declarative language for relational programming DESCRIPTION:In this talk I will give an introduction to miniKanren, a minimalembedded domain-specific language for constraint logic programming.miniKanren is designed to support relational programming, in whichall code is written as mathematical relations, with no distinctionbetween inputs and outputs. miniKanren uses a complete interleavingsearch, combined with unification and other constraints, to solve forvariables representing unknown values. In effect, every miniKanrenquery is a program synthesis problem.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/minimalkanren/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="William Byrd":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:10980@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T164500 DTEND:20210207T171000 SUMMARY:Nyxt browser DESCRIPTION:Nyxt is the configurable web browser. It transforms the relationship between software and user by granting the user the same power as the developers. The user is able to manipulate and modify Nyxt with all of the same tools. This shift necessitates a number of changes in how source code is developed. If all source code is modifiable, what is public API? How do we expose functionality to the end-user in such a way that they can easily make it their own?
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/nyxtbrowser/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="John Mecouris":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11299@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T171000 DTEND:20210207T173000 SUMMARY:Ordered Key-Value Stores DESCRIPTION:One of the great strength of Scheme is how flexible it is to the extent where you feel at home whatever the Scheme, the system will adapt itself to your needs, making it possible to re-use your knowledge. The situation in the database space is more complicated. There is the SQL family of databases, but in so far the SQL standard is too limited. To be ready for every situation possible you need to re-invent yourself all the time, for each database system its idiosyncrasies. What about a database paradigm that builds upon existing knowledge, that you can re-use in many situations and program with your favorite Scheme?
After brief note on database history, we will dive into what is a database, and how to choose one. Then we will look into the particular case of Ordered Key-Value Stores (OKVS), explain and demonstrate how with a single interface they cover a large palette of use-cases, and a glimpse of it: so called relational, text and geometric with the help of a new representation. At last, we will see what are the downsides, and try to answer the question: will Ordered Key-Value remain a tool of the experts?
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/minimalistdb/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Amirouche BOUBEKKI":invalid:nomail END:VEVENT BEGIN:VEVENT METHOD:PUBLISH UID:11334@FOSDEM21@fosdem.org TZID:Europe-Brussels DTSTART:20210207T173000 DTEND:20210207T180000 SUMMARY:Optimising for humans DESCRIPTION:Nim is a statically typed language with a comprehensive meta-programming system. This makes it a really nice fit for micro-controllers, or otherwise hardware constrained environments (or to just use less resources in general). Based on my experiences with Nim and micro-controllers I'll dive into how meta-programming, DSLs, and Nims rich type system can be used to make nice readable code for micro-controllers without any added overhead compared to C. Both in terms of code-size, but also in terms of speed, in fact the code executed on the controller is pretty much the exact same thing, but with vastly improved ergonomics.
CLASS:PUBLIC STATUS:CONFIRMED CATEGORIES:Declarative and Minimalistic Computing URL:https:/fosdem.org/2021/schedule/2021/schedule/event/nimdsl/ LOCATION:D.declarative.minimalistic ATTENDEE;ROLE=REQ-PARTICIPANT;CUTYPE=INDIVIDUAL;CN="Peter Munch-Ellingsen":invalid:nomail END:VEVENT END:VCALENDAR