Vlerq and Ratcl

Jean-Claude Wippler delivered his talk on Vlerq & Ratcl after lunch. Unfortunately the group I went to lunch with got a bit turned around by some road work/detours in Naperville and I missed the first fiteen minutes or so of Jean-Claude's talk. (Update: Jean-Claude emailed me to let me know that his slides are available online at http://www.vlerq.org/vlerq/346. Thanks jcw!)

Why views? Relational and set and vector operations. Loop-less programming ("think `wham'"). A million-row join is sub-second operation on even an average machine. Persistence for free (views can be on disk). Scales far beyond available memory(!).

Dataflow: changes propagate across view operations. Selections, joins and sorts all become dynamic. Tcl traces can be tied to view changes. View-aware widgets could auto-update the GUI(!). Implication: views automatically track remote changes.

Vlerq is a C (not C++) extension for Tcl. Ratcl is a Tcl wrapper. Data files are compatible with Metakit. MIT-license. Vlerq 3 out now, vlerq 4 in progress (adding dataflow).

A view is a value, not a reference. Can be passed around as arguments (like a dict, not an array). Massive internal data sharing (including disk—memory-mapped files). Makes very efficient use of Tcl_Obj's dual representation. Values clean up automatically. No side-effects (copy-on-write). Views tied to variables are mutable.

You could treat any view as a string (but not usually the most efficient approach). A view is not a result. It is a description of how to get that result. Lazily evaluated. (Very cool!)

Geared for what is fast. Performance tests show that sorting is up to 50x 15x faster than Metakit (which is already quite fast).


—Michael A. Cleverly

Permanent URL for this post: http://blog.cleverly.com/permalinks/258.html