[Tcl9-colibri] ANNOUNCE: Picolibri version 0.1, a minimalist Tcl interpreter built on Colibri
Status: Alpha
Brought to you by:
fbonnet
From: Frédéric B. <fre...@fr...> - 2011-11-30 14:04:33
|
ANNOUNCE: Picolibri version 0.1 =============================== As part of my ongoing work on the Cloverfield project, I am pleased to announce the first version of Picolibri, a port of Picol 0.1.22 to the Colibri library (currently at version 0.12) WHAT IS CLOVERFIELD? ==================== Wiki page: http://wiki.tcl.tk/Cloverfield WHAT IS PICOL? ============== Picolibri started as a minimalist Tcl interpreter written by Salvatore Sanfilippo, written in 550 lines and code. It was further enhanced by Richard Suchenwirth to include modern Tcl features such as apply. Wiki page: http://wiki.tcl.tk/Picol " SS: Picol (http://antirez.com/page/picol) is a Tcl interpreter in 500 lines of C code! If you like it vote my entry on reddit here http://programming.reddit.com/info/1aft9/comments (the reddit url changed because of a reddit bug). RS Since 2007-04-01, I'm playing with Picol at home - it's been a long while that I prefer to do a breakfast fun project in C :) Basically I'm adding features to bring it closer to Tcl (7.x - everything is a string really). Linecount is at about 1700 now. Latest additions focused on 8.5 features like apply (see below), {*}, in/ni etc. DISCLAIMER: This is an educational toy model only, it is weaker and slower that real Tcl. I'm not planning to add regexp, Unicode, full expr parsing etc... But it's great for experimenting with C, I've had weeks of fun with it. " See also the provided README.txt for complete details about Salvatore & Richard work. WHAT IS COLIBRI? ================ Wiki page: http://wiki.tcl.tk/Colibri (outdated) SF.net project page: https://sourceforge.net/projects/tcl9/files/colibri/ " Colibri is an abstract data type infrastructure. It features: - Extensible data type sytem dubbed "words" - Fast and efficient cell-based allocator - Automatic memory management thanks to an exact (AKA accurate or precise), generational, copying, mark-and-sweep, garbage collector " WHAT IS PICOLIBRI? ================== Picolibri is a straight port of Picol (in its current version 0.1.22) to the Colibri library (version 0.12), replacing plain C strings with Colibri ropes, and malloc'd memory management with automatic garbage collection. The modified source is about 50 lines longer than the original (1735 vs 1701 for picol.c, and 147 vs. 127 for picol.h). Most changes involve replacing C calls such as strlen by their Colibri counterparts, mostly through macros for readability, and also providing string to Colibri structure conversions (ropes, lists, maps...). Picolibri is mostly an experiment to demonstrate and evaluate the usability of Colibri in real word applications, and especially in the context of interpreted languages. It greatly helped identify weaknesses and lacks of feature in the Colibri interface (especially regarding high level string handling). However it is quite usable as such (and no less usable than the original Picol); it provides a fairly complete Tcl interpreter in a very small footprint and with minimal code: source code is about 1900 lines of C code in two files, and the resulting Windows binary is 57 KB along with the 70 KB Colibri DLL. While not production quality, it proved a serious enough educational toy to play & experiment with. WHERE CAN IT BE FOUND? ====================== The modified Picol source is part of the Colibri source distribution here: http://sourceforge.net/projects/tcl9/files/colibri/colibri0.12/colibri0.12.src.zip/download A pre-compiled Windows library is available here, it includes the command-line executable along with Colibri DLL and the original Picol scripts: http://sourceforge.net/projects/tcl9/files/colibri/colibri0.12/picolibri0.1.win32.zip/download LICENSE ======= The license is the same as for Tcl. |