EuroTcl Logo
Currently selected Program
Past Events
ICT Logo


General information

There will be a come-together on Friday evening for those arriving in Eindhoven the day before the meeting.
We will meet in the Cafe Usine, which is in walking distance from the main station for eating, drinking and talking.
It will start at 17:00 and you can join anytime depending on your arrival time.

The social event will start at 18:30 in Restaurant Carrousel.
From 20:30 to 22:00 there will be a guided tour in the city center of Eindhoven.
Interesting stories will be told about WW II and Anton Philips (for example) and much more.

Photos and Videos

Photos from EuroTcl 2016
Videos from EuroTcl 2016

Program Schedule

17:00 Come Together
09:00 09:45 On-site registration, Meet and Greet
09:45 10:00 Welcome
Session: Tcl in the Wild
10:00 10:30 René Zaumseil Tcl/Tk in power plant simulation
10:30 11:00 Alexandru Dadalau Mechanical Simulations with Tcl/Tk (Withdrawn)
11:00 11:30 Coffee break
11:30 12:00 Paul Bloembergen & Frans van der Have Visualization of microscopic images with Tk
12:00 12:30 Thomas Lang Cascading Dict Args
12:30 14:00 Lunch
Session: Environments for Tcl
14:00 14:30 Steve Landers A Tcl-based Kanban board for Fossil tickets
14:30 15:00 Jan Nijtmans Semantic Versioning
15:00 15:30 Jos Decoster & Steve Landers The evolution of the Tcler’s Wiki
15:30 16:00 Coffee break
Session: Work in Progress
16:00 16:30 Martyn Smith Session management library
16:30 17:00 Paul Obermeier BAWT - Build Automation with Tcl
17:00 All State and Future of Tcl. Discussion with 5 TCT members
18:30 Social Event
09:00 09:30 Meet and Greet
Session: Tcl Core Related
09:30 10:00 Richard Hipp Enhancing The Performance Of The TCL Core Using Micro-optimizations
10:00 10:30 Christian Gollwitzer Reflecting on EIAS
10:30 11:00 Coffee break
11:00 11:30 Nathan Coulter coroutine is the new main
11:30 12:00 Schelte Bron D-Bus bindings for Tcl
12:00 13:30 Lunch
Session: Tcl on non-PC Hardware
13:30 14:00 Christian Werner AndroWish - 963 days later
14:00 14:30 Koen Breugelmans A Tcl based toolchain for the Cortex-M3
14:30 15:00 Conclusion, Goodbye

Talks and Presentations

Steve Landers
Jan Nijtmans
René Zaumseil
Christian Werner
Christian Gollwitzer
Richard Hipp
Jos Decoster and Steve Landers
Nathan Coulter
Alexandru Dadalau
Paul Bloembergen & Frans van der Have
Koen Breugelmans
Thomas Lang
Martyn Smith
Paul Obermeier
Schelte Bron
Steve Landers
A Tcl-based Kanban board for Fossil tickets

Kanban is a scheduling technique originally developed at Toyota in the 1950s to support lean and just-in-time manufacturing.
The word Kanban means signboard or billboard in Japanese, and Kanban has become popular in so-called agile or lean development as a way to provide flexible visual planning with continuous delivery.
The Fossil Distributed Version Control System contains an integrated ticket system for tracking bugs and feature requests.

This talk describes the marriage of the two: a Kanban board built on the Fossil ticket system along with a set of conventions to allow visual monitoring and management of tasks within a software development team and an interface to the Slack messaging application for team communication.

Jan Nijtmans
Semantic Versioning

The current supported versions of Tcl are 8.6.5 and 8.5.19. But what do those numbers mean? The answer: Nothing.
Intuitively some could say that 8.6.5 has more features than 8.5.19, and that 8.5.19 was 19 releases after 8.5.0, but it doesn't say anything on whether some particular script which ran fine with Tcl 8.5.0 will still run fine on Tcl 8.5.19 and/or 8.6.5.

This presentation will explain the concept of "Semantic Versioning", which is an attempt to give a more precise meaning to version numbers.
What would be the consequences if Tcl would adopt that idea? What would be gained by that, and what would be lost? A TIP is currently in progress (TIP #439) outlining this. Feedback on this presentation will be used to finalize the TIP and prepare it for a vote.

René Zaumseil
Testing the limits - tcl/tk in power plant simulation

The talk will give a short overview of the simulator and then present the software structure and the used packages of the newly developed tcl applications.
Additionally will be a live presentation of the simulator and of some key applications.

Christian Werner
AndroWish - 963 days later

Since last year's EuroTcl AndroWish learned to use the camera found in many devices, to deal with Emojis, and to output tkpath canvas items as PDF with alpha blending.

It's source code base spawned another experimental project named undroidwish reusing parts of AndroWish's components on common desktop platforms.

The talk will present some of the newer AndroWish and undroidwish features.

Christian Gollwitzer
Reflecting on EIAS

Everything is a string (EIAS) is one of the fundamental rules of the Tcl programming language.
Even though a value in Tcl can have an internal representation that differs from a pure string value since Tcl 8, a pure script program cannot decide between values that are stored as strings and others, leaving aside the debug APIs in tcl::unsupported. At the C level, the set of representations stored in a Tcl_Obj can be extended, which is widely used within the Tcl core itself.

In this talk, an extension is presented which reflects the Tcl_Obj API into the script level [1]. While this extension itself deliberately breaks EIAS, the scripted Tcl_Obj types can be implemented in a fully EIAS conforming way.
A number of applications is shown, comprising ordered sets, automatic garbage collection and generators, which could not be implemented efficiently at the script level without this extension. It is shown that breaking EIAS in a controlled way coud pave the way for interesting features in Tcl 9.

Richard Hipp
Enhancing The Performance Of The TCL Core Using Micro-optimizations

Over the past 3 years, the SQLite developers have more than doubled the performance of SQLite using microoptimizations of the underlying C code. Each microoptimization might only improve the performance by an unmeasurable amount, say 0.1%. But if enough of these tiny optimizations are implemented, they add up, and collectively provide significant performance gains. The same techniques are now being applied to the TCL core.

This deeply technical talk will describe methods and techniques for extracting more performance from a large C program such as TCL. The goal of this talk is to equip listeners to become active participates in the on-going effort to double the speed of TCL.

Jos Decoster and Steve Landers
The evolution of the Tcler’s Wiki

The Tclers Wiki has been around since 1999 and is arguably the second oldest wiki still running. During that time it evolved from a simple built-in web server using the Metakit database, to deploying as a starkit, to using the SQLite database via TDBC, to using the Wub web server. It has also had a couple of makeovers, the most recent being in 2008. The one constant during that time has been the markup language. Although it has itself evolved, a page authored in 1999 will still render today.

But the wiki is in serious need of improvement: it looks dated and doesn’t support the workflow needed to curate the contents. This has to be done without breaking any of the approximately 20,000 pages of content.

This presentation introduces Nikit, the system behind the next generation Tclers Wiki. It covers the architectural design, the choice of web server and database engine, the markup language, the performance features, the "look and feel" and the spam mitigation techniques designed to allow the Tclers Wiki to remain "open".

Nathan Coulter
coroutine is the new main

Since their introduction in Tcl 8.5, coroutines have slowly but surely worked their way into the standard repertoire of the modern Tcl script author. New patterns for the effective use of coroutines continue to evolve. One exciting prospect is a number of coroutines operating cooperatively using a client-server strategy.

{ycl coro relay} provides two commands, [order] and [receive], for clients, and two more commands, [accept] and [deliver], for servers. The Tcl event loop doubles as a sort of transport mechanism, with [accept] and [receive] functioning as synchronization points. Any main script that is written as a coroutine can take full advantage of this system and of the brave new world it portends.

Alexandru Dadalau
Mechanical Simulations with Tcl/Tk (Withdrawn)

No abstract

Paul Bloembergen & Frans van der Have
Visualization of microscopic images with Tk

The Huygens Suite by Scientific Volume Imaging (SVI, is a software package for high-performance restoration, visualization and analysis of microscopic images.
The Huygens compute engine is written in C, OpenMP and CUDA while the software's high level code is programmed in Tcl/Tk.
An extension to Tcl known as 'Huygens Scripting' offers dedicated commands for processing 4D multichannel images. While the Tk-based UI allows for intuitive interaction a faster method for streaming images from the compute engine to the Tk canvas is being searched for.

Koen Breugelmans
A Tcl based toolchain for the Cortex-M3 (a 32-bit ARM v7-Microcontroller)

There are lots of powerful ARM based goodies around nowadays. We take an interactive programming approach with Riscy Pygness, a tethered Forth for small ARM v7-M targets, which uses Tcl on the host side. Some other parts of the toolchain are also based on Tcl.

Thomas Lang
Cascading Dict Args

No abstract

Martyn Smith
Session management library

No abstract

Paul Obermeier
BAWT - Build Automation with Tcl

BAWT is a configurable framework for building C/C++ based software libraries from source code without user interaction.
Its main usage is for the Windows operating system, where different build environments (ex. configure/make via MSYS/MinGW, nmake, CMake, Visual Studio Solutions) and compiler (gcc via MSYS/MinGW, different Visual Studio versions) are needed to build these libraries.
Due to the portable nature of Tcl the framework can be used on Linux and Darwin as well.

The Work-in-Progress talk explains the intention to develop this framework and shows examples demonstrating the current possibilities of BAWT.

Schelte Bron
D-Bus bindings for Tcl

No abstract