* Devroom name: GNU Guile — the official extension language for the GNU Project * Devroom description: The [[https://www.gnu.org/software/guile/][GNU Guile]] programming language is dynamically typed and multi-paradigm. Guile allows for functional approaches, object-oriented programming using GOOPs (a CLOS-like object system), logic programming, and system scripting. Guile is suited for meta-programming and has a powerful macro-system which allows users to change the language on the fly. Guile features a growing set of bindings and libraries for libssh, git, json, sdl, opengl, cairo, gtk, redis, SQL, etc. GNU Guile is the preferred extension system for the GNU Project which features an implementation of the Scheme programming language, a dialect of Lisp with a mature community. GNU Guile is continually improved where recent milestones were a new compiler infrastructure, a virtual machine implementation, a switch to the Boehm-Demers-Weiser garbage collector and many improvements to the Guile Scheme language itself. Major performance improvements were demonstrated at FOSDEM with a new optimizing compiler which is now part of the recent 2.2 release. Other recent additions are a "sandbox" facility that can run code from untrusted users and improved support for immutable data. The use of GNU Guile is growing. Amongst the current applications written in Guile, there are AO, a new 3D CAD engine; Skribilo, Artanis and Haunt, (web) templating engines; Sly, a gaming engine; and (of course) GNU Guix, a functional software deployment manager for the GNU Project which also underpins GuixSD a new functional GNU/Linux Distribution. GNU Guix is a rapidly growing project that distinguishes itself by creating 100% reproducible software installations generated by a hackable system. GNU Guix is an important driver for GNU Guile development because the massive project puts large demands on GNU Guile. In the last year GNU Guix has grown 40% from approx. 200K to 280K lines of source code whereof an amazing 260K lines are written in GNU Guile! GNU Guix has great support for developers, including the GNU Emacs eco-system and GNU Guile (of course), but also for Java, Clojure, Perl, Ruby, Python, Haskell, GO, D, Erlang, and Elixir. Interesting spin-offs of Guix are a Guile make replacement, virtualization of development environments, the Shepherd and a new approach to system service integration; and the bootstrappable.org effort with Mes and Nyacc, a project for creating bootstrapped build systems from source only (also presented at FOSDEM last year) which tries to revert the current trend of bootstrapping build systems with binaries. Bootstrapping from source is crucial to free software distribution. Other noteworthy GNU Guile applications include GNU Lilypond, GnuCash, and GNU Mcron a cron-compatible task scheduler. More GNU Guile projects can be found at https://en.wikipedia.org/wiki/GNU_Guile and https://www.gnu.org/software/guile/libraries/. The devroom will provide at least the following content with a focus on software development: - An introduction to GNU Guile - Guile Next: Latest developments in GNU Guile - Concurrent programming with Fibers and 8sync - Compiler implementation in Guile - Web frameworks with GNU Guile - Shepherd the systemd replacement - GNU Guix + Latest GNU Guix developments + Tooling for development environments + Whole-system deployment, and distributed deployment - Guile and network programming + Dealing with concurrency in networking applications + Application performance - The Guile community + Freedom can be expressed in multiple ways + Encouraging and mentoring newbies; encourage diversity + Tutorials and documentation A complete list of currently considered talks can be found at https://libreplanet.org/wiki/Group:Guix/TalkProposals. The purpose of the dev room is to present latest developments in Guile itself, to share exciting news about, and demo applications using Guile, to provide a space to meet with fellow hackers and enthusiasts, and to grow the Guile community. * Related URLs - GNU Project: http://www.gnu.org - GNU Guile: https://www.gnu.org/software/guile/ - GNU Guile libs: https://www.gnu.org/software/guile/libraries/ - GNU Guix: http://www.gnu.org/software/guix - MES and bootstrappable: https://gitlab.com/janneke/mes and http://bootstrappable.org * Why should FOSDEM accept this proposal? GNU Guile is a core component of the successful and long running GNU project, and today the fresh Lisp language is being discovered by a new generation of programmers. In 2016 we had our first half day Guile devroom at FOSDEM and it was a great success: the devroom was full for every talk! In 2017 we were lucky to get a full day which was also full all day. FOSDEM gives a great impulse by getting developers together and projects like MES started there. Both years, together with the LUA devroom we overlapped a session where we discussed the future of small languages (we are interested in sharing the devroom with LUA again if we can not have a full day). This would be the second opportunity for GNU Guile related projects world-wide to meet at FOSDEM. Similar to last year, we will invite speakers from other projects that are loosely coupled to the Guile environment (e.g. projects that use Guile purely as an extension language, such as gdb and Lilypond). In short, having this devroom will allow us to dig deeper into the details of language design and reproducible software in particular, whilst giving back to the free software community as a whole. * Devroom organisers - Ludovic Courtès (address@hidden) - GNU Guile project leader - Ricardo Wurmus (address@hidden) - Pjotr Prins (address@hidden) - Alex Sassmannshausen (address@hidden) - Tobias Geerinckx-Rice - Manolis Ragkousis